SOFT
SPRINT

softsprint.net Shop

Перевод темы WordPress: _e функция и .mo, .po файлы

Эта заметка посвящена переводу тем WordPress без подключения плагинов, например, qTranslate X.

Краткий алгоритм такой:

1) В файлах PHP применяем функцию такого вида (пример для тега h1):


‘title’ – это текст, который мы будем переводить. Он и будет отображаться в теге h1 нашей темы.
‘softsprint’ – название папки темы, которую подвергаем переводу. В нашем случае папка называется softsprint.
Подробнее о функции _e можете прочитать здесь:
https://codex.wordpress.org/Function_Reference/_e
http://wp-kama.ru/function/_e

2) Вытягиваем значения для перевода из файла PHP с помощью онлайн-сервисов, например, http://www.icanlocalize.com/tools/php_scanner и получаем файл .po

3) Открываем полученный файл .po в софте Poedit и прописываем переводы для каждого значения. Там же определяем локаль (задаём язык): например, ru_RU:
poedit-ru_ru

4) Сохраняем наш .po файл и компилируем его в .mo файл. Скомпилированный .mo файл переименовываем в ru_RU.mo (или иначе, согласно локации нужного нам языка).
Список языков и стран:
http://www.gnu.org/software/gettext/manual/html_chapter/gettext_16.html#Language-Codes
http://www.gnu.org/software/gettext/manual/html_chapter/gettext_16.html#Country-Codes

5) Помещаем файл ru_RU.mo в папку languages, расположенную в папке нашей темы (в нашем случае это – softsprint). Файл .po необязательно помещать в папку, но сохранить его себе нужно для возможных редактирований/добавлений переводов, которые могут понадобиться в будущем

6) В файле functions.php нашей темы прописываем:


‘softsprint’ – название папки нашей темы;
‘/languages’ – папка, в которой размещён файл ru_RU.mo

Детальнее о функции load_theme_textdomain здесь: http://wp-kama.ru/function/load_theme_textdomain
В результате получаем лаконичный код в файлах PHP без лишних плагинов (например, qTranslate X ) и конструкций такого вида:

Кроме того, редактирование перевода становится централизованным (с одного файла .po) и не требует открывать и редактировать каждый файл php отдельно.

CONTACT US
Cookies | Privacy Policy | Terms and ConditionsSoftSprint ©