Я уже писала о том, как сделать перевод слова "Распродажа" в плагине WooCommerce на CMS WordPress и благополучно уберечь его от обновлений. Однако, Вордпресс не тоит на месте и придумывает всё новые проблемы! Если у плагина Вукоммерц (WooCommerce) переводы опять слетели и предыдущая инструкция уже не помогает восстановить файлы русификации, предлагаю ещё один способ для тех, кто полон решимости побороть упрямство системы...
Хочу заметить, что сама я, в таком случае, просто отказываюсь от обновлений WP и пусть меня заклюют апологеты кодекса WordPress. Дело в том, что тенденции в дизайне и юзабилити сайтов не стоят на месте, постоянно меняются и развиваются. И рано или поздно вы придёте к решению сделать редизайн своего сайта, а заодно и усовершенствовать его функционал. Вот тогда и установите последнюю версию WP, шаблона и плагинов. Слишком уж много неожиданных неприятностей приносят обновления и СЛИШКОМ уж много времени и сил тратится на устранение этих неприятностей...
Как сохранить перевод (локализацию) плагинов и тем в WordPress
Итак, ещё один способ сохранить актуальный перевод (русификацию) плагина или шаблона в Вордпресс:
-
-
Для начала следует запретить автоматическое обновление Вордпресс. Дело в том, что начиная с версии 3.7 WordPress обновляется автоматически, без уведомления администратора сайта. Лично мне очень не нравится когда кто-то или что-то делает на моих сайтах без моего участия... Поэтому добавим в файл wp-config.php две константы:
define('WP_AUTO_UPDATE_CORE', false); define('AUTOMATIC_UPDATER_DISABLED', true );
-
Правдами и неправдами в интернете вы уже нашли необходимые вам файлы локализации или сделали нужный перевод самостоятельно в программе Poedit и сохранили файлы .po и .mo у себя на компе. Если нет - здесь я описала, как это сделать. Можно скачать готовые файлы русификации у меня здесь.
-
Теперь закачиваем эти файлы в директорию: /httpdocs/wp-content/languages/plugins. И обязательно повторить эту же процедуру в директории: /httpdocs/wp-content/plugins/woocommerce/i18n/languages.
-
Следующий шаг: в файле functions.php прописать функцию на запрет автоматического обновления переводов плагина вукоммерц. Однако имейте ввиду - переводы других плагинов тоже не будут обновляться. Поэтому, если вам потребуется обновление, не забудьте удалить эту функцию из файла.
add_filter( 'auto_update_translation', '__return_false' );
-
Если не помогают вышеописанные процедуры, а такое бывает в платных шаблонах, то можно попробовать усилить все действия ещё одним способом:
-
Устанавливаем запрет на обновление перевода плагина. Для этого нужно создать новую (свою) директорию с переводом в папке wp-content/languages/ например папку woocommerce и поместить отредактированные переводы в нее. А в файл functions.php поместить следующий код, переопределяющий откуда брать перевод:
add_filter( 'load_textdomain_mofile', 'load_custom_plugin_translation_file', 10, 2 ); function load_custom_plugin_translation_file( $mofile, $domain ) { if ( 'woocommerce' === $domain ) { $mofile = WP_LANG_DIR . '/woocommerce/woocommerce-' . get_locale() . '.mo'; } return $mofile; }
Файлы перевода должны быть названы также как и были в папке /plugins/ (woocommerce-ru_RU.po, woocommerce-ru_RU.mo).
-
По такому же принципу можно локализовать перевод шаблона (темы) для вашего сайта. Для этого надо создать в папке темы папку local-translate (с переводами) и прописать к ней путь в файле functions.php:
add_filter( 'load_textdomain_mofile', 'load_custom_plugin_translation_file', 10, 2 ); function load_custom_plugin_translation_file( $mofile, $domain ) { if ( 'woocommerce' === $domain ) { $mofile = get_template_directory() . '/local-translate/woocommerce-' . get_locale() . '.mo'; } return $mofile; }
Спасибо, очень помогли! Я уже голову сломал, постоянно слетали переводы. Буквально на следующий день после замены… Теперь держаться уже второй месяц. Как ни странно, тема адаптированная под woocommerce — storefront