Как перевести плагин wordpress?

wordpress
сайты

(Bilberry) #1

Здравствуйте читатели этого сайта.
Не знаю по теме ли, и сможет ли кто помочь.
Но возникла такая вот проблемка.
Возможно ли создать файл .pot для плагина, который не приспособлен для перевода?
чтобы потом создать ru_RU.po и ru_RU.mo файлы

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


(Виталий) #2

Вам понадобится программа Poedit, бесплатная версия вполне подойдет.

  1. Открываем ее и переходим Файл > Создать.
  2. Указываем язык перевода, в нашем случае будет русский.

1

  1. Переходим Каталог > Свойства, после чего у нас открывается три вкладки.
  2. Вкладка «Свойства перевода». Каких-либо особых требований к ее заполнению нет, главное, чтобы кодировка была UTF-8. Вот как получилось у меня:

2

  1. Вкладка «Папки с исходными файлами». Не обращая внимания на уведомление, нажимаем кнопку «Новый элемент» Новый элемент, Poedit и добавляем точку . , что означает искать во всех php-файлах, которые будут находиться в той же директории, что и наш файл перевода.

  1. Вкладка «Ключевые слова исходных файлов». Указываем здесь функции __() и _e(). Затем нажимаем ОК.

Если вы работаете над переводом готовой темы или плагина, я рекомендую в ключевые слова добавить как минимум следующие выражения (на самом деле их больше, но по моим наблюдениям эти чаще всего используются):

1 2 3 4 5 6 7 __ e n:1,2 esc_attr esc_attr_e esc_html__ esc_html_e

Описание каждой из этих функций вы можете найти, например тут.

В 3-й строке листинга у функции _n() есть дополнение в виде :1,2 , это означает, что первый параметр функции — форма единственного числа, второй параметр — форма множественного числа. Подробнее про множественного число читайте далее в этой статье.

  1. Осталось всё это дело сохранить. Файл > Сохранить, там где тип файла указываем все файлы, расширение ставим .pot . Сохраняем прямо в директорию своего плагина или темы.
  2. Заходим в папку, куда вы только что сохранили файл перевода и удаляем из нее ненужный пока что файл с расширением .mo .
  3. В Poedit нажимаем кнопку «Обновить» либо Каталог > Обновить из исходного кода. Та-дам, в окне программы должны появиться все строки, доступные для перевода.
  4. Переводим, сохраняем.

Можно подойти так, но это проще программистам.


(Bilberry) #3

основной код который не переводится и не содержит вид gettext типа__(), esc_html__() невозможно перевести . он выглядит так pastebin.com/WRVcgBpN


(Bilberry) #4

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


(Евгений) #5

См. на логи ошибок. Если файлы конвертируются, то на что “ругается”. Строка и т.д.

Я сам мало знаком в WP. У меня на ПК есть WP архив. Открыл и смотрю русский файл .po. Вижу, что это текстовый файл. Открытый файл.

#. translators: %s: User who is customizing the changeset in customizer.
#: wp-includes/class-wp-customize-manager.php:3952
msgid "%s is already customizing this changeset. Do you want take over?"
msgstr "%s уже редактирует этот набор изменений. Хотите перехватить?"

Т.е. может быть взять англ. файл, перевести его? А .po, не знаю, надо или нет, а если надо, то конвертировать в .mo, например:

http://po2mo.ru/

Или каким-то другим способом. Например: