Как русифицировать англоязычные темы под WordPress

Ноябрь 28th, 2009 по Perlover Оставить ответ »

Захотелось мне избавиться от английских фраз в своей теме WordPress-а. Тема изначальна не работала для русского языка — автор ее не русифицировал, так как пока никто на возжелал в этом ему помочь (я ему отправил файлы переводя для этой темы, посмотрим, как оперативно он добавит).

Я, не зная изначально, как это делается, правил исходные коды темы на PHP. Все бы ничего, но меня это достало, и я решил разобраться, как же это делается цивилизованно. Итак, мои инструкции, скорее всего, помогут русифицировать любую тему, которую вы себе поставили («скорее всего» потому, что не знаю я всю кухню русификации пока)

Технические тонкости

Этот параграф вы можете пропустить, если технические детали вам не интересны. Но я решил о них упомянуть, чтобы было более понятно, как все работает изнутри. Итак, грамотно запрограммированная тема (например, применение ‘__’ и ‘_e’ функций PHP везде, где надо иметь мульти-языковую поддержу) имеет языковую поддержку на уровне стандарта gettext. Что это значит? Изнутри это выглядит так: программист пишет программу, а там, где он использует фразы интерфейса, он вставляет строки через вызов определенных функций. Например, __(«Read more …»). Фразы на английском. А потом натравливает на свои исходные коды программку, которая формирует файл с расширением PO. В этом файле есть фраза «Read more…», а под ней можно указать фразу для другого языка. Потом файл PO с помощью специальной программы преобразуется в бинарный (расширение MO), понятный специальной библиотеке, а та в свою очередь используется той самой функцией ‘__()’. И тогда, когда идет вызов __(«Read more …»), на самом деле идет подмена этого текста на переведенный, который был в файлике PO, для того языка, который установлен в WordPress.

Где расположены файлы перевода…

Для каждого языка существуют два файлика — *.PO & *.MO. Например, для русского это ru_RU.po & ru_RU.mo. Итак, темы храняться в папке /wwws/директория_вашего_сайта/wp-content/themes/имя_темы, а директория с файлами перевода хранятся в подпапке languages/. Если ваш WordPress настроен на русский язык (файлик wp-config.php в корне блога имеет установку «define (‘WPLANG’, ‘ru_RU’);»), а вы видите свою тему не в русском исполнении, значит этих файликов нет (ru_RU.po & ru_RU.mo в директории /wwws/директория_вашего_сайта/wp-content/themes/имя_темы/languages). Для руссификации — ваша задача создать их. Как это сделать?

Как сделать перевод?

Вам нужен файл *.PO для английской темы (default.po). Скорее всего, в этой папке будут файлы default.po & default.mo. Ваша задача — сделать копии default.* файлов, но с именем ru_RU.*, затем отредактировать файл ru_RU.po, скомпилировать его с помощью специальной программы в ru_RU.mo и залить их в папку languages. И все!

Где взять софт?

Но как отредактировать и скомпилировать? Поскольку gettext стандарт, как я сам понял, это целый стандарт для open-source разработок, он широко распространен. Для него разработано много инструментов, но я попробовал и вам рекомендую Poedit. Эта простая оболочка для редактирования PO файлов и их компилирования сразу в MO файлы. Она есть и под Windows, и под Linux.

Итак, скачиваем Poedit, ставим, открываем ru_RU.po (копию default.po), редактируем часть строк или все, если у вас хватит терпения, сохраняем и заливаем в директорию, указанную выше. После этого у вас должна работать ваша тема на русском языке.

Рекомендуется для прочтения:

  1. Стандарт gettext (GNU проект)
  2. Локализация WordPress изнутри (англ. версия)
  3. Английская статья Translating WordPress и инструменты для PO файлов
  4. 20 лучших свежих тем для WordPress
QR-Code этой страницы:

1 комментарий

  1. Сколько может стоить русифицировать такой шаблон?