Русификация Wordpress или зачем нужны файлы mo po, часть 2
Это продолжение (вторая часть) статьи о правильном процессе русификации WordPress (тем или плагинов).
04.
Запускай Poedit.exe. Заходи в меню Файл --> Создать каталог... --> поочередно заполняй там все три закладки по примеру скриншота.
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.
После сохранения выскакивает окношечко Сводка об обновлении. Здесь ты можешь видеть все строки, которые нашла программа и которые можно перевести. Опять жмакаем ОК. И сохраняемся еще раз.
10.
Приступаем к переводу. Кликаем на нужную Исходную строку. Текст из нее появляется внизу интерфейса. Там есть два поля: в одном оригинальный текст, в другом перевод (тот, который ты сделаешь). Для начала кликаешь по нужной Исходной строке правой кнопкой мышки и выбираешь «Скопировать исходный текст в поле перевода». Теперь ты можешь его править. Если смысл текста не особо понятен, то по правому клику есть подсказка, откуда взят оригинальный текст - можно кликнуть - файл откроется, и туман неизвестности рассеется.
11.
Все переменные (обозначаются символами %s) должны остаться. Но если они действительно не нужны (у меня такое случалось), то их можно удалить и оставить только текст. При сохранении программа ругнется, но ты смело нажимай ОК - перевод все равно будет отлично работать.
12.
После окончания перевода жми последний раз «Сохранить» (каждый раз, когда ты сохраняешся в poedit'оре, то компилируется бинарный файл ru_RU.mo) и заливаешь новоиспеченный ru_RU.mo в папку с темой или плагином. Движок Wordpress'a должен сам его подхватить если ты в файле настроек wp-config.php добавил (или подизменил) такую строку define ('WPLANG', 'ru_RU');
.
Недостаток данного метода в том, что если автор плагина или темы не предусмотрел локализации, то все равно придется использовать тот способ, что я критиковал вначале статьи. Т.е. попросту открывать исходный файл, искать нужный текст и ручками его исправлять на русский.
Напутственный совет
Как часто тебе хотелось выпендриться своим знанием английского? И неважно, что ты его не знаешь. Главное уметь пользоваться словарем. Теперь у тебя будет такая возможность. Как только ты перевел тему - можешь сразу отсылать ее разработчику. Он с удовольствием включит ее в состав программы. И тогда на всех сайтах с этой локализацией в самом низу будет красоваться подпись: «Перевод Вася Пупкин» со ссылкой на тебя. Главное не забыть добавить эту строку со ссылкой на себя в файл локализации (обычно, в то же поле, где стоит подпись создателя плагина или темы).
Кстати, вот пример русификации темы для wordpress, которую перевел я (та тема, что стоит на этом блоге).

loading...
Похожие статьи:
- Русификация Wordpress или зачем нужны файлы .mo и po, часть 1
- Скачать бесплатно русскую тему Titan для Wordpress
Вам понравилась статья? Хочешь отблагодарить автора? Расскажи о ней друзьям.
Или подпишись на обновление блога по E-Mail. (via FeedBurner)
Афигенно блин, нет слов! А как компилить из po в mo? Может быть с этого следовало бы начать рассказ?
loading...
Так все ж описано в первой части. Просто в poedit.exe нужно нажать «Сохранить» (Ctrl+S) и автоматически создается компилированный вариант – mo.
loading...
Отлично! Большое спасибо за обе статьи! а то целый день правил *.ро в блокноте и не понимал почему ничего не работает >__<
loading...
Подскажите, как поступить, если файлы ru_RU.mo и ru_RU.po уже существуют в папке wp-content/languages? Т.е. насколько я понимаю, то файлы темы .php надо добавить в уже существующий ru_RU.po для перевода – это возможно? Т.к. при формировании нового файла только из .php из переводимой темы исчезают много русифицированных данных. Как поступить в этом случае?
loading...
спасибо, хороший материал, и стиль написания, даже не говоря о практической пользе, а то я тоже в блокноте пытался редактировать. интересно то, что можно послать разработчикам перевод
я как то об єтом даже и не думал.
loading...
Здравствуйте!
Неоходимо локализовать тему 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
Очень важны толковые советы! Спасибо!
loading...
Ты комментарии из первой части статьи читал/использовал? Там есть толковые дополнения к статье.
loading...
Всё достаточно внимательно прочитал. Думаю, в моём случае есть следующий фокус. Базово тема называется 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, значит и тема так должна называться? Короче абсурд для непосвящённого. Так ничего и не работает пока. (((
loading...
Попробуй на реальном хостинге, а не на локальном.
loading...
load_theme_textdomain( ‘photocrati-framework’, TEMPLATEPATH . ‘/languages’ );
Означает, что текстовый домен photocrati-framework, будет искать .mo в каталоге «каталог темы/languages», а текстовый домен, это просто уникальное имя, которое потом используется в __(), _е() и тп
например _e(’stroka, kotoruju perevodim’, ‘photocrati-framework’). Обозвать текстовый домен можно как угодно, в функции load_theme_textdomain();
Почти всегда он совпадает с названием темы (просто для удобства и уникальности), а к дизайну никакого отношения 100% не имеет
loading...
А, совсем забыл, текстовие домены ещё используются в плагинах для локализации тем, например WPML.
Там можно для каждого текст. домена присвоить свой перевод строке, _e(‘Doors’, ‘first-text-domain’) будет выводить Двери, а _e(‘Door’, ’second-text-domain’) выведет: Группа ‘The Doors’
loading...
а у меня вот в теме были файлы us_US.po и .mo. Я блокнотом перевел файл .po и сохранил в ru_RU.po. Закинул на хост но ничего не произошло. Я так понял надо и файл ru_RU.mo (переименован из us_US.mo) редактировать? но как? proedit вс время выдает какие то ошибки
loading...
Прочитай статью сначала – всё станет ясно.
loading...
я уже читал… тяжело повториться ?
loading...
Редактировать твой переименованный ru_RU.po нужно в poedit’оре. Когда ты нажмишь «Сохранить», то поэдитор создаст рядом с файлом ru_RU.po еще и файл ru_RU.mo. Так вот копировать в папку темы нужно только mo-файл.
loading...
блин, беда, при сохранении все время 4 ошибки какихто, сохраняет только po без mo
loading...
Попробуй открыть исходный po, а лучше pot-файл.
loading...
msgfmt: found 4 fatal error
loading...
Юра спасибо тебе ОГРОМНОЕ!!! Просто НЕРЕАЛЬНО помог!!!!!
loading...
Хорошая материал. У меня вопрос: я перевел все ок закидываю файлы вордпресс подхватывает ставит русский все ок , но на сайте все так же осталось. Может есть какое-то время при котором перевод начинает действовать ?
loading...
Здравствуйте. Хорошая статья, одно не понятно, открываю меню «файл», а там только создание нового проекта, с этого места все криво, программа берет за основу существующий файл. Да и дело-то не в этом, у меня вся тема русифицирована, однако не работает. Если вручную переводить – кириллица кубиками. Поставил плагин WP-cufon, он шрифт заменяет, а с кириллицей та-же история. Файлов со шрифтами в теме нет. Есть мысли? Буду признателен. Спасибо.
loading...
Нет, программа может работать как на основе существующего файла *.pot или *.po, так и создавать эти файлы на основе ваших *.php-файлов темы или плагина.
Кириллица кубиками из-за того, что вы в php-файле указали неверную кодировку. Обычно, нужно выбирать UTF-8, а там по умолчанию ANSI.
Если вы для правки файлов используете Notepad++, то нужно зайти в меню Кодировки и выбрать пункт Преобразовать в UTF-8.
Всё! кубики в тебе заменяться на кириллицу (ну это если они у вас в самом php файле не были кубиками).
loading...
Большое Спасибо! Я вообще в блокноте ковырялся, скоро стану программистом…))
loading...
Спасибо автору за содержательную статью. Так держать!)
loading...