Как локализировать свои плагины WordPress и подготовить их переводу

Локализация своих плагинов имеет смысл, если вы хотите охватить как можно большую аудиторию. Нужно лишь немного потрудиться, чтобы сделать ваш плагин translation ready (готовым к переводу), и это намного проще, чем вы думаете. В сегодняшней статье мы покажем вам как локализировать свои плагины и подготовить их переводу.

feature-image-world-700x288[1]

WordPress для локализации использует фреймфорк GNU gettext и существует три типа файлов, используемых в этом фреймворке: файлы POT (Portable Object Template), которые содержат готовый текст для перевода, PO (Portable Object) файлы, которые содержат уже переведенный текст; и файлы MO (Machine Object), которые являются по сути файлами PO, однако переведены в удобный для машинной обработки формат.

Понимание того, что это за файлы и каким образом они работают важно для осознания процесса перевода.

Добавляем Text Domain

Локализация плагинов подобна локализации тем, и в этом случае также необходимо сообщить WordPress, где ему искать языковые файлы, путем добавления text domain.

Нужно добавить следующую функцию в основной файл вашего плагина:

load_plugin_textdomain('yourplugin', false, basename( dirname( __FILE__ ) ) . '/languages' );

Изменяем “yourplugin” на название вашего плагина, а “basename” — на расположение папки вашего плагина, где вы хотите хранить языковые файлы. Мы рекомендуем создавать папку “Languages” в папке вашей темы и хранить файлы там.

Но этот код не нужно добавлять повсеместно — функцию load_plugin_textdomain нужно вызвать в хуке WordPress init, вот так:

function ap_action_init()
{
// Локализация
load_plugin_textdomain('domain', false, dirname(plugin_basename(__FILE__)));
}

// Add actions
add_action('init', 'ap_action_init');

Локализируем свой плагин

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

<?php echo '<h4>Привет, Мир!</h4>'; ?>

превращается в

<?php echo '<h4>' . __('Привет, Мир!', 'yourplugin') . '</h4>'; ?>

Если ваш код использует функцию echo для браузера, тогда нужно использовать функцию e_():

<?php echo 'Привет, Мир!'; ?>

становится

<?php _e('Привет, Мир!', 'yourplugin'); ?>

Также можно обернуть обычный текст:

Привет, Мир!

превращается в

<?php _e('Привет, Мир!','yourplugin'); ?>

Не забудьте заменить “yourplugin” на название вашего плагина.

Создаем файл POT

Следующим шагом будет создание файла POT. POT-файлы обычно создаются авторами плагинов и поставляются вместе с темами, чтобы переводчики могли перевести плагин.

Мы будем использовать программу Poedit, простое опенсорсное решение, доступное для Mac OS X, Windows и UNIX/Linux, служащая для создания POT-файлов.

1. Установить Poedit.

2. Открыть Poedit и перейти в File > New Catalog.

3. В окне свойств Catalog указать информацию о вашем проекте.

poedit-plugin[1]

4. Далее, переходим на вкладку Sources paths, где нужно указать путь к той папке, которую Poedit будет использовать для поиска исходных файлов, содержащих текст для перевода. Ранее, в этой статье, мы рекомендовали создать папку “Languages” в директории вашего плагина и сохранять ваши файлы туда. Поэтому в данном случае путь должен быть “../”

5. Выбираем вкладку Sources keywords. Здесь нам нужно определить функции, которые мы используем для локализации текста в наших плагинах: __() и _e().

poedit-sources[1]

6. После того, как вы кликните на “OK”, у вас запросят название файла POT. По-умолчанию, Poedit захочет сохранить ваш файл как .po файл, однако, в виду того, что эти два типа файлов идентичны, вы можете выбрать сохранение .po файла как .pot файл. Назовите файл так же как и плагин, задайте ему расширение .pot и сохраните в папке под названием “Languages” в директории вашего плагина.

7. Когда вы нажмете на “OK”, Poedit просканирует папки, указанные вами на вкладке Sources paths, и выведет список текста, доступного для перевода.

8. Последний шаг – сохраните ваш файл POT.

Теперь ваш плагин готов к переводу, он «translation ready».

Надеемся, что эта статья внесла ясность в вопрос о подготовке плагинов к переводу.

По всем вопросам и отзывам просьба писать в комментарии ниже.

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

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)

Об авторе ADv

Занимаюсь разработкой сайтов и магазинов на WordPress. Оказываю платные помощь и консультации. Skype: advokat_b
  • summ3r

    Если Вы заинтересованы в локализации ПО с помощью gettext, я рекомендую Вам использовать этот инструмент на базе web https://poeditor.com/

    • ADv

      В чем преимущества перед десктоп версией?

Scroll To Top