Русификация Wordpress или зачем нужны файлы mo po, часть 2

Автор yuriki. Дата публикации Май 20, 2009

Это продолжение (вторая часть) статьи о правильном процессе русификации WordPress (тем или плагинов).

04.

Запускай Poedit.exe. Заходи в меню Файл --> Создать каталог... --> поочередно заполняй там все три закладки по примеру скриншота.
Создание шаблона ru_RU.po с нуля в редакторе файлов .mo

05.

На первой закладке в поле Формы множественного числа можешь вставить вот это (но я пока не знаю, что это значит - такой текст был в официальной локализации темы Wordpress по умолчанию): nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2

06.

На закладке Пути добавляешь точку и две точки. Они указывают, что файлы нужно искать в папке, где будет лежать твой .po файл;

07.

На закладке Ключевые слова указать нужно те символы, после которых берется текст для перевода.

08.

Жмакаем OK. В открывшемся окне выбираешь ту же папку, куда забросил все .php файлы и сохраняем под именем ru_RU.po.

09.

После сохранения выскакивает окношечко Сводка об обновлении. Здесь ты можешь видеть все строки, которые нашла программа и которые можно перевести. Опять жмакаем ОК. И сохраняемся еще раз.
Обновление фраз для перевода из файлов .php и .pot

10.

Приступаем к переводу. Кликаем на нужную Исходную строку. Текст из нее появляется внизу интерфейса. Там есть два поля: в одном оригинальный текст, в другом перевод (тот, который ты сделаешь). Для начала кликаешь по нужной Исходной строке правой кнопкой мышки и выбираешь «Скопировать исходный текст в поле перевода». Теперь ты можешь его править. Если смысл текста не особо понятен, то по правому клику есть подсказка, откуда взят оригинальный текст - можно кликнуть - файл откроется, и туман неизвестности рассеется.
Процесс перевода файла локализации ru_RU.po

11.

Все переменные (обозначаются символами %s) должны остаться. Но если они действительно не нужны (у меня такое случалось), то их можно удалить и оставить только текст. При сохранении программа ругнется, но ты смело нажимай ОК - перевод все равно будет отлично работать.

12.

После окончания перевода жми последний раз «Сохранить» (каждый раз, когда ты сохраняешся в poedit'оре, то компилируется бинарный файл ru_RU.mo) и заливаешь новоиспеченный ru_RU.mo в папку с темой или плагином. Движок Wordpress'a должен сам его подхватить если ты в файле настроек wp-config.php добавил (или подизменил) такую строку define ('WPLANG', 'ru_RU');.

Недостаток данного метода в том, что если автор плагина или темы не предусмотрел локализации, то все равно придется использовать тот способ, что я критиковал вначале статьи. Т.е. попросту открывать исходный файл, искать нужный текст и ручками его исправлять на русский.

Напутственный совет :)

Как часто тебе хотелось выпендриться своим знанием английского? И неважно, что ты его не знаешь. Главное уметь пользоваться словарем. Теперь у тебя будет такая возможность. Как только ты перевел тему - можешь сразу отсылать ее разработчику. Он с удовольствием включит ее в состав программы. И тогда на всех сайтах с этой локализацией в самом низу будет красоваться подпись: «Перевод Вася Пупкин» со ссылкой на тебя. Главное не забыть добавить эту строку со ссылкой на себя в файл локализации (обычно, в то же поле, где стоит подпись создателя плагина или темы).

Кстати, вот пример русификации темы для wordpress, которую перевел я (та тема, что стоит на этом блоге).


GD Star Rating
loading...
Русификация Wordpress или зачем нужны файлы mo po, часть 2, 8.2 out of 10 based on 40 ratings

Похожие статьи:

  1. Русификация Wordpress или зачем нужны файлы .mo и po, часть 1
  2. Скачать бесплатно русскую тему Titan для Wordpress

Вам понравилась статья? Хочешь отблагодарить автора? Расскажи о ней друзьям.
Или подпишись на обновление блога по E-Mail.
(via FeedBurner)

Введи свой e-mail (используется только для отправления обновлений блога):

Статья из рубрики Улучшение ВИРТУАЛЬНОЙ жизни

Комментариев 24
  1. недовольный Январь 7, 2011 в 20:14

    Афигенно блин, нет слов! А как компилить из po в mo? Может быть с этого следовало бы начать рассказ?

    GD Star Rating
    loading...
    • Так все ж описано в первой части. Просто в poedit.exe нужно нажать «Сохранить» (Ctrl+S) и автоматически создается компилированный вариант – mo.

      GD Star Rating
      loading...
  2. Отлично! Большое спасибо за обе статьи! а то целый день правил *.ро в блокноте и не понимал почему ничего не работает >__<

    GD Star Rating
    loading...
  3. Подскажите, как поступить, если файлы ru_RU.mo и ru_RU.po уже существуют в папке wp-content/languages? Т.е. насколько я понимаю, то файлы темы .php надо добавить в уже существующий ru_RU.po для перевода – это возможно? Т.к. при формировании нового файла только из .php из переводимой темы исчезают много русифицированных данных. Как поступить в этом случае?

    GD Star Rating
    loading...
  4. спасибо, хороший материал, и стиль написания, даже не говоря о практической пользе, а то я тоже в блокноте пытался редактировать. интересно то, что можно послать разработчикам перевод :) я как то об єтом даже и не думал.

    GD Star Rating
    loading...
  5. Здравствуйте!

    Неоходимо локализовать тему bokeh.photocrati.com
    Сделал перевод с помощью редактора Poedit, скомпелировал файлы ru_RU.po и ru_RU.mo. Согласно коду в файле misc-functions.php, раположенному в директории \themes\photocrati-theme\functions\

    Код:
    load_theme_textdomain( ‘photocrati-framework’, TEMPLATEPATH . ‘/languages’ );

    $locale = get_locale();
    $locale_file = TEMPLATEPATH . «/languages/$locale.php»;
    if ( is_readable($locale_file) )
    require_once($locale_file);

    помещал файл ru_RU.mo и в папку темы, и в подпапку /languages. Тема не переводится. В wp-config.php константа WPLANG определена ru_RU.

    Тема на локальном хостинге. Win 7 x64

    Очень важны толковые советы! Спасибо!

    GD Star Rating
    loading...
    • Ты комментарии из первой части статьи читал/использовал? Там есть толковые дополнения к статье.

      GD Star Rating
      loading...
  6. Всё достаточно внимательно прочитал. Думаю, в моём случае есть следующий фокус. Базово тема называется photocrati-theme. Но через админку можно настроить один из многих вариантов дизайна, которые представлены здесь photocrati.com/photography-wordpress-themes/ Раньше каждая из эих тем была отдельно платная, а теперь можно выбрать по дизайн желанию. И это, видимо, отображено в строке load_theme_textdomain( ‘photocrati-framework’, TEMPLATEPATH . ‘/languages’ );
    где ‘photocrati-framework’ так называемый возможный вариант дизайна. В реали файлы перевода должны лежать в каталоге themes\photocrati-theme\languages но путь-то через photocrati-framework! как я только не пробовал и переименовывал папку темы из photocrati-theme в photocrati-framework (при этом тема вообще не отображается в броузере). Создавал отдельный каталог photocrati-framework\languages и клал туда файл photocrati-framework-ru_RU.mo и просто ru_RU.mo. Короче всевозможные варианты. Я логически понимаю, что во фразе load_theme_textdomain( ‘photocrati-framework’, TEMPLATEPATH . ‘/languages’ ); имеется ввиду, что файл перевода лежит в директории themes\photocrati-theme\languages и должен называться photocrati-framework-ru_RU.mo. Т.к. в коде конструкция такая __( ‘Что-то ‘ , ‘photocrati-framework’) Но раз photocrati-framework, значит и тема так должна называться? Короче абсурд для непосвящённого. Так ничего и не работает пока. (((

    GD Star Rating
    loading...
    • Попробуй на реальном хостинге, а не на локальном.

      GD Star Rating
      loading...
    • load_theme_textdomain( ‘photocrati-framework’, TEMPLATEPATH . ‘/languages’ );
      Означает, что текстовый домен photocrati-framework, будет искать .mo в каталоге «каталог темы/languages», а текстовый домен, это просто уникальное имя, которое потом используется в __(), _е() и тп
      например _e(’stroka, kotoruju perevodim’, ‘photocrati-framework’). Обозвать текстовый домен можно как угодно, в функции load_theme_textdomain();
      Почти всегда он совпадает с названием темы (просто для удобства и уникальности), а к дизайну никакого отношения 100% не имеет :)

      GD Star Rating
      loading...
    • А, совсем забыл, текстовие домены ещё используются в плагинах для локализации тем, например WPML.
      Там можно для каждого текст. домена присвоить свой перевод строке, _e(‘Doors’, ‘first-text-domain’) будет выводить Двери, а _e(‘Door’, ’second-text-domain’) выведет: Группа ‘The Doors’

      GD Star Rating
      loading...
  7. а у меня вот в теме были файлы us_US.po и .mo. Я блокнотом перевел файл .po и сохранил в ru_RU.po. Закинул на хост но ничего не произошло. Я так понял надо и файл ru_RU.mo (переименован из us_US.mo) редактировать? но как? proedit вс время выдает какие то ошибки

    GD Star Rating
    loading...
  8. я уже читал… тяжело повториться ?

    GD Star Rating
    loading...
    • Редактировать твой переименованный ru_RU.po нужно в poedit’оре. Когда ты нажмишь «Сохранить», то поэдитор создаст рядом с файлом ru_RU.po еще и файл ru_RU.mo. Так вот копировать в папку темы нужно только mo-файл.

      GD Star Rating
      loading...
  9. блин, беда, при сохранении все время 4 ошибки какихто, сохраняет только po без mo

    GD Star Rating
    loading...
  10. msgfmt: found 4 fatal error

    GD Star Rating
    loading...
  11. Юра спасибо тебе ОГРОМНОЕ!!! Просто НЕРЕАЛЬНО помог!!!!!

    GD Star Rating
    loading...
  12. Хорошая материал. У меня вопрос: я перевел все ок закидываю файлы вордпресс подхватывает ставит русский все ок , но на сайте все так же осталось. Может есть какое-то время при котором перевод начинает действовать ?

    GD Star Rating
    loading...
  13. Здравствуйте. Хорошая статья, одно не понятно, открываю меню «файл», а там только создание нового проекта, с этого места все криво, программа берет за основу существующий файл. Да и дело-то не в этом, у меня вся тема русифицирована, однако не работает. Если вручную переводить – кириллица кубиками. Поставил плагин WP-cufon, он шрифт заменяет, а с кириллицей та-же история. Файлов со шрифтами в теме нет. Есть мысли? Буду признателен. Спасибо.

    GD Star Rating
    loading...
    • Нет, программа может работать как на основе существующего файла *.pot или *.po, так и создавать эти файлы на основе ваших *.php-файлов темы или плагина.

      Кириллица кубиками из-за того, что вы в php-файле указали неверную кодировку. Обычно, нужно выбирать UTF-8, а там по умолчанию ANSI.
      Если вы для правки файлов используете Notepad++, то нужно зайти в меню Кодировки и выбрать пункт Преобразовать в UTF-8.
      Всё! кубики в тебе заменяться на кириллицу (ну это если они у вас в самом php файле не были кубиками).

      GD Star Rating
      loading...
  14. Большое Спасибо! Я вообще в блокноте ковырялся, скоро стану программистом…))

    GD Star Rating
    loading...
  15. Виктор Андреевич Январь 5, 2014 в 20:20

    Спасибо автору за содержательную статью. Так держать!)

    GD Star Rating
    loading...

Напишите комментарий

Примечание: Включена поддержка XHTML - можно использовать теги