Как перевести тему WordPress на русский язык, часть 1

Публикуется без сокращений и изменений, поскольку считаю, что это пока лучшая инструкция по переводу тем. Очень помогла на этапе становления.  Спасибо автору на http://domservisa.com.

Из статьи ты узнаешь, как русифицировать твою любимую тему или новый, но очень зашибенный англоязычный плагин к WordPress (чтобы пользователи на твоем блоге особо не напрягались с английским). Причем сделать это так, чтобы после обновления этой темы или того плагина не пришлось его переводить заново. Статья также поможет тебе, если нужно ТОЛЬКО ОБНОВИТЬ перевод темы или плагина. Такое бывает, если плагин кардинально переделался, а переводчик забил на обновление и некоторые новые или обновленные фразы остались на английском.

Как я подозреваю, этот способ работает не только с WordPress’ом, но и с другими CMS и программами с открытым исходным кодом.

В инете есть куча статей с советами типа: «Открываем файл footer.php и заменяем все тексты, которые там нашли, на русский эквивалент (не забудьте про кодировку). Повторить для всех файлов в папке твоей темы». И как только ты послушался этого совета, а тема взяла и обновилась, и тебе придется переводить все заново.

Что же предлагаю я?

Я предлагаю создать (или отредактировать уже существующий) файл локализации. Тогда при обновлении плагина или WordPress темы перевод никуда не денется.

Что это за файл локализации .po (.mo)? Теория.

Ты, наверное, часто видел файлы с расширением .po или .mo в папке с темой для WordPress’а или в папке зашибенного_плагина? Если не нашел сразу, то они еще могут прятаться в папке Languages. Ну а если не видел, то сейчас услышишь о них впервые (очень полезные и бесплатные файлы, между прочим).

.po файлы — это файлы локализации. Многие популярные языки программирования (C, C++, сценарии sh, Python, Perl, PHP, Java, Паскаль и куча других) имеют функцию gettextngettext или подобные, которыми размечают текст для будущего перевода. Но ты скажешь, что ничего подобного не видели в файлах footer.phpheader.php или зашибенный_плагин.php и будешь прав. Поскольку эти функции, для удобочитаемости кода, заменяют коротким синонимом __ (два символа подчёркивания) или _e или _c или еще чем-то.

В итоге код:

printf(gettext(«My name is %s.»), my_name)

выглядит так:

printf(__(«My name is %s.»), my_name)

Потом специальным экстрактором извлекают все такие строчки в специальный файл-шаблон с расширением .pot. Эта же строка в .pot файле будет выглядеть так:

#: header.php:19
msgid «My name is %s.»
msgstr «»

где header.php — это тот файл, из которого извлекли строку "My name is %s.", а число 19 — это номер этой строки.

Потом переводчик создает из этого файла-шаблона файл локализации с расширением .po. И вот в этот файл ты можешь вписать перевод строки. Выглядеть это будет так:

#: header.php:19
msgid «My name is %s.»
msgstr «А зовут меня %s.»

Но это еще не конец. Но уже и не начало.

Как последний, штрих программа переводчик создает бинарный файл (откомпилированный) с расширением .mo, который и скармливается движку WordPress’а. Вот почему те, кто пробывали не смогли редактировать файл .mo. Как его создать (редактировать) ты узнаешь дальше.

Последовательность действий для перевода.

Теперь пошагово расскажу как нужно действовать если у тебя ни с того ни с сего появилось непредсказуемое желание перевести плагин или тему под любимыйCMS.

01.

Качай редактор .po файлов Poedit. Устанавливай его. При первом запуске он что-то спросит — заполняй, как посчитаешь нужным, потом если что подправишь. Чтобы было проще работать, можно поставить русский язык в настройках программы. Для этого тыкай мышкой File —> Preferences —> Change UI Language —> Ищи Russian.
Выбор русского меню в редакторе файлов .po - Poedit

02.

Если .po файлы уже существуют, то можно открыть любой из них (если нету русского ru_RU.po) и отредактировать (заменить фразы другого языка на русские). Но я, для универсальности метода, расскажу о создании этого файла с нуля.

03.

Создай где-нибудь папку (называй как хочешь) и закачивай (или копируй) туда все .php файлы твоей темы, которые нужно русифицировать;

Продолжение читайте во второй части статьи о Переводе плагинов и тем под WordPress, где продолжаются пошаговые инструкции.

Trackbacks/Pingbacks

  1. Как перевести тему Wordpress на русский язык, часть 2 | Savatop.ru - 01.04.2013

    […] (вторая часть) статьи о правильном процессе русификации WordPress (тем или […]

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