Владельцы и разработчики сайтов на WordPress часто сталкиваются с необходимостью обновлять языковые файлы переводов для плагинов и тем. Однако автоматическое обновление переводов может приводить к ошибкам, если не учитывать особенности процесса и не использовать правильные методы. В этой статье подробно разберём, как грамотно реализовать автоматическое обновление переводов, избежать проблем с перезаписью и конфликтами, а также рассмотрим примеры кода и полезные плагины.
Почему важно правильно обновлять переводы в WordPress
Языковые файлы в WordPress обычно представлены в формате .po и .mo. Они отвечают за локализацию интерфейса плагинов и тем. Если переводы устарели, пользователи могут видеть некорректные или незавершённые тексты, что ухудшает пользовательский опыт.
Автоматическое обновление позволяет поддерживать актуальность переводов без ручного вмешательства. Однако если обновления выполняются неправильно, можно потерять кастомные переводы или получить конфликты в файлах.
Особенно это актуально для сайтов с мультиязычной поддержкой, где каждый файл перевода имеет большое значение. Поэтому важно знать, как грамотно управлять обновлениями.
Как работает система обновления переводов в WordPress
WordPress автоматически проверяет обновления языковых файлов через API translate.wordpress.org. При наличии новых версий файлов .mo они скачиваются и заменяют старые.
Обновления происходят при запуске cron-задач или при заходе в админку. Но для того, чтобы не перезаписывать пользовательские переводы (например, если вы редактировали .po и .mo вручную), нужны дополнительные меры.
Основные проблемы с автоматическим обновлением:
- Перезапись кастомных переводов, сделанных вручную.
- Несовместимость версий перевода и плагина/темы.
- Отсутствие уведомлений об ошибках обновления.
Практические способы безопасного обновления переводов
1. Использование дочерних тем и папки lang в wp-content
Чтобы избежать потери кастомных переводов при обновлении темы или плагина, рекомендуется размещать свои переводы в отдельной папке wp-content/languages или использовать дочерние темы с локализацией.
WordPress приоритетно загружает переводы из wp-content/languages, что позволяет обновлять исходные файлы без потери ваших изменений.
2. Фильтрация обновления переводов через хуки
Можно использовать фильтр auto_update_translation, чтобы контролировать, какие переводы обновлять автоматически. Например, можно запретить обновление кастомных языковых файлов.
add_filter('auto_update_translation', 'wplang_auto_update_translation_filter', 10, 2);
function wplang_auto_update_translation_filter($update, $item) {
// Отключаем обновление переводов для кастомных языков
if (strpos($item->language, 'custom_') === 0) {
return false;
}
return $update;
}
3. Плагин Clearfy Pro для управления обновлениями
Если вы используете плагин Clearfy Pro, там есть удобные настройки для управления автоматическими обновлениями, включая переводы. Это позволяет гибко настраивать, какие обновления применять, а какие нет.
Пример кода для безопасного обновления переводов в WordPress
Ниже пример функции, которая позволяет обновлять только системные переводы WordPress и переводы официальных плагинов, исключая кастомные и локальные файлы:
add_filter('auto_update_translation', 'wplang_restrict_translation_updates', 10, 2);
function wplang_restrict_translation_updates($update, $item) {
// Разрешаем обновлять только переводы WordPress и официальных плагинов/тем
$allowed_prefixes = ['core', 'plugin', 'theme'];
foreach ($allowed_prefixes as $prefix) {
if (strpos($item->language, $prefix) === 0) {
return true;
}
}
return false;
}
Этот код добавьте в файл functions.php вашей дочерней темы или в кастомный плагин.
Дополнительные советы и лучшие практики
Регулярно делайте резервные копии переводов
Перед обновлением языковых файлов всегда создавайте резервные копии, чтобы быстро восстановить кастомные переводы в случае ошибок.
Используйте специализированные плагины для перевода
Плагины, такие как WPGPT, помогают создавать и управлять переводами внутри админки, снижая риски ошибок при обновлении.
Проверяйте совместимость версий плагинов и переводов
Обновляйте переводы только после обновления самих плагинов или тем, чтобы избежать несовместимости строк перевода.
Итоговые рекомендации по обновлению переводов
Автоматическое обновление переводов — полезная функция, но требует контроля. Используйте отдельные папки для кастомных переводов, фильтруйте обновления через хук auto_update_translation и применяйте плагины для тонкой настройки.
Если хотите максимально упростить процесс, рассмотрите использование плагина Clearfy Pro с его опциями управления обновлениями. Это позволит автоматизировать обновления без опасений потерять важные переводы.