Как сохранить перевод (локализацию) плагинов и тем в WordPress

Я уже писала о том, как сделать перевод слова «Распродажа» в плагине WooCommerce на CMS WordPress и благополучно уберечь его от обновлений. Однако, Вордпресс не тоит на месте и придумывает всё новые проблемы! Если у плагина Вукоммерц (WooCommerce) переводы опять слетели и предыдущая инструкция уже не помогает восстановить файлы русификации, предлагаю ещё один способ для тех, кто полон решимости побороть упрямство системы…

Хочу заметить, что сама я, в таком случае, просто отказываюсь от обновлений WP и пусть меня заклюют апологеты кодекса WordPress. Дело в том, что тенденции в дизайне и юзабилити сайтов не стоят на месте, постоянно меняются и развиваются. И рано или поздно вы придёте к решению сделать редизайн своего сайта, а заодно и усовершенствовать его функционал. Вот тогда и установите последнюю версию WP, шаблона и плагинов. Слишком уж много неожиданных неприятностей приносят обновления и СЛИШКОМ уж много времени и сил тратится на устранение этих неприятностей…

Итак, ещё один способ сохранить актуальный перевод (русификацию) плагина или шаблона в Вордпресс:

    • Для начала следует запретить автоматическое обновление Вордпресс. Дело в том, что начиная с версии 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;
    }

1 thought on “Как сохранить перевод (локализацию) плагинов и тем в WordPress”

  1. Спасибо, очень помогли! Я уже голову сломал, постоянно слетали переводы. Буквально на следующий день после замены… Теперь держаться уже второй месяц. Как ни странно, тема адаптированная под woocommerce — storefront

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Докажи, что не бот! *