Перевод плагинов и тем WordPress

Веб-сайты на WordPress посещают миллионы людей во всем мире. Для многих из них, английский язык не родной. Цель данной статьи является показать вам, как правильно переводить любую тему или плагин с помощью методов интернационализации и локализации.

Оглавление:
  1. Приступая к работе
  2. Использование функций локализации
  3. Создание файлов с переводами
  4. Заключение

Озеро Самарцы - Отдых в Крыму для всей семьи!
Адрес: Россия, Республика Крым, Белогорский район, с. Зуя
http://samartsy.ru/

Короче говоря, интернационализации (i18n) — это строки текста завернуты в конкретные функций вызова. Это практика делает текст готовым к локализации, в то время как сам процесс локализации (l10n) перевода текста для определенного региона. WordPress обрабатывает процесс локализации проверки конкретных файлов перевода, а затем выполняет перевод.

Приступая к работе

Первое, что вам нужно сделать, это решить, где хранить переводы. Обычно перевод файлов кладут в корневом каталоге темы или плагина. Процесс перевода состоит из трех этапов. Первый этап, создать тему или плагин, перевод заключается в использовании специальной функции, которая говорит WordPress, чтобы он загрузил файл перевода, если он существует на языке пользователя. Вы можете поместить вызов этой функции в файл functions.php вашей темы код:

[php]<?php
$domain = "myplugin";
$path = "myplugin/languages/";
load_theme_textdomain($domain, $path);[/php]

$domain представляет собой уникальную строку, которая идентифицирует текст в теме, который был подготовлен для перевода. В организационных целях, вы должны назвать это значение, как и название директории темы. $path это путь к файлам перевода в теме.

Вот пример из файла functions.php темы twentyeleven:

[php]<?php
load_theme_textdomain( ‘twentyeleven’, TEMPLATEPATH.’/languages’ );

$locale = get_locale();
$locale_file = TEMPLATEPATH."/languages/$locale.php";
if ( is_readable( $locale_file ) )
require_once( $locale_file );[/php]

Здесь «twentyeleven» является областью, которая соответствует названию каталога темы. Вы можете использовать все, что хотите, но это лучший вариант. В качестве второго параметра, TemplatePath константа используется для того, чтобы получить корневой каталог темы, а затем объединить строку «/languages» и путь к файлам, для получения перевода файлов из папки языков.

В случае, если функция плагина используется аналогично, и использует три параметра:

[php]<?php load_plugin_textdomain($domain, $abs_rel_path, $plugin_rel_path);[/php]

$ Abs_rel_path — старый параметр, лучше не использовать, просто установить false или null. $ plugin_rel_path — это относительный путь к файлу перевода. Вы должны поместить его в файл плагина, а не в functions.php:

[php]<?php
add_action("init", "pluginname_init");

function pluginname_init() {
load_plugin_textdomain("имя плгина", false, "myplugin/languages/");
}[/php]

К началу

Использование функций локализации

Далее вам необходимо определить, какие текстовые строки будут переведены. Это можно сделать, заключив содержание текста с функциями, которые определяются типом локализации. Существует много функции локализации, но мы используем только два.

Первая функция готовит что ваш текст для перевода и возвращает его для использования в PHP. Вот два примера:

[php]<?php
$text = "Привет мир!";
$domain = "название плагина";
__($text, $domain); // начинается с двойного подчеркивания[/php]

и

[php]<?php edit_post_link(__("Edit", "twentyeleven"), ‘<span class="edit-link">’, "</span>");[/php]

__ () Функция принимает текстовую строку в качестве параметра, и смотрит на переведенную версию $text в указанном файле с переводом, и возвращает результат, если таковой имеется. Он используется для управления отображением текста, и уже содержится внутри тегов PHP. При отсутствии файлов локализации, отличающихся от русского, то текст останется прежним. Значение переменной $domain позволяет WordPress признать его как часть вашей темы или файлы перевода плагина.

Вторая функция, которую вы будете использовать делает ваш текст готовым к переводу и выводит его прямо в браузере. Он принимает те же параметры, как вы только что видели:

[php]<?php
_e($text, $domain);[/php]

_e () функция ищет переведенную версию $text и отображает результат на экран. Это может быть использовано для заголовков, которые будет отображаться на экране, которые еще не содержатся в тегах PHP.

В некоторых случаях вы будете использовать заполнители для вставки динамических данных в текстовые строки во время выполнения. Заполнители полезны, поскольку они позволяют переводить строки, не путая их друг от друга. Функций перевода в WordPress заполнители не выходят сами по себе, так что вам нужно использовать соответствующую функцию PHP, такую как printf() или sprintf().

[php]<?php printf(__("About %s", "twentyeleven"), get_the_author());[/php]

Здесь get_the_author () возвращает автора, который заменяет заполнитель на printf().

Иногда нужно несколько заполнителей в одной строке printf() и sprintf() справиться с этим замечательно. Лучше всего использовать пронумерованные заполнители, потому что порядок слов в одном языке может быть разный.

[php]<?php
$site_name = get_bloginfo("name");
$comments_count = wp_count_comments();
$mod_comments = $comments_count->moderated
$appr_comments = $comments_count->approved
$all_comments = $comments_count->total_comments

printf(__(‘There are %3$s comments on %4$s. %2$s approved and %1$s in moderation.’, $domain), $mod_comments, $appr_comments, $all_comments, $site_name);[/php]

К началу

Создание файлов с переводами

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

Вам нужно создать первый файл POT (Portable Template Object) — в этом файле перечислены все переведённые строки текста, которые можно найти в приложении, и служит в качестве шаблона для отдельных файлов PO. PO (Portable Object) — это файл отображает текстовые строки с фактическим переводом. Переводчики работают с этим файлом, чтобы сделать перевод. POT и PO файлы не являются необходимыми для выполнения перевода вашего плагина, но хорошо упаковав его с помощью плагина для использования другими пользователями, что может понадобиться для обновления переводов в соответствии с их потребностями. И, наконец, файл PO компилируются в МО (Machine Object) — этот файл является готовым файлом перевода, который WordPress использует для перевода интернационализации текстовых строк для вашей темы или плагина.

Когда переводчики создают переводы в вашу тему или плагин они используют POT файл, чтобы создать два файла, $locale.po и $locale.mo. моменты для темы, а pluginname-$locale.po и pluginname-$locale.mo моменты для плагина. >$locale здесь представляет собой сочетание кода языка и страны, указанный на GNU Gettext, вы можете увидеть сокращение язык и страну в руководстве Gettext. Например, WordPress использует «en_US» в качестве языка по умолчанию. «EN» представляет английский язык, и США представляет страну и диалект (country/dialect).

Разнообразие средств для перевода, которые доступны с открытым исходным кодом их можно скачать бесплатно. Однако одним из наиболее распространенных инструментов является Poedit который прост и удобен в использовании. Вот шаги для создания POT файл, используя Poedit:

Откройте редактор Poedit, выберите Файл > Новый каталог. Настройки окна с тремя вкладками. На вкладке Название проекта и версия, нужно заполнить все поля ввода, которые имеют отношение к вашему плагину или теме. В строке Команда пишем имя плагина или темы в нашем примере тема twentyeleven. Формы множественного числа можно использовать такие:

[php]nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;[/php]

перевод WordPress тем и плагинов
Свойства каталога с переводом

В закладке Пути исходных файлов, изменить путь к базе .. / и добавить дополнительные пути . если перевод в папке плагина languages. Если нет, то оставьте это по умолчанию.

перевод WordPress тем и плагинов
Пути исходных файлов

На вкладке Ключевые слова исходных файлов, введите функций, которые вы узнали выше, в качестве ключевых слов.

перевод WordPress тем и плагинов
Ключевые слова исходных файлов

Нажмите кнопку ОК и сохраните файл в themename.po или pluginname.po в каталог c языком. Poedit будет сканировать файлы PHP __ () и _e() завернутые строки и автоматически выводить их в диалоговом окне.

перевод WordPress тем и плагинов

Нажмите кнопку ОК. Теперь вы увидите окно с строками.

перевод WordPress тем и плагинов
Тема или плагин готовы к переводу

Сохраните файл снова и закройте его. В вашем каталоге languages вы увидите PO и MO файлы, созданные Poedit. Удалите файл MO и переименуйте файл PО в расширение .pot вот и все. Теперь ваша тема или плагин готовы к переводу.

Если у вас есть необходимые навыки, вы можете сделать перевод файлов. Для этого, выберите Файл > Создать каталог из POT файла… Найдите POT файл, откройте его и нажмите кнопку ОК для последующей настройки каталога (они точно такие же). Poedit спросит вас, вы хотите сохранить ваш новый файл PO без изменений — дать ему соответствующее имя, например ru_RU.po или pluginname-ru_RU.po и сохранить его в каталоге с языком.

Теперь достаточно нажать на строку, которую Вы хотели бы перевести в Poedit и введите перевод в поле в нижней части окна Poedit.

перевод WordPress тем и плагинов
Перевод текста файлов PO, MO

Последнее, что вам нужно сделать, чтобы увидеть вашу тему или плагин с переводом редактируйте config.php файл. WordPress ищет любые переводы с языком и загрузит их. Если вы установите ru_RU (русский), WordPress будет подключать файл под названием ru_RU.mo для темы, или pluginname-ru_ru.mo для плагина.

Файл config.php

[php]<?php
define(‘WPLANG’, »); // это значение установлено по умолчанию для свежей установки WordPress
define(‘WPLANG’, ‘ru_RU’) // значение второго параметра вашей локализации[/php]

К началу

Заключение

Перевод тем и плагинов WordPress довольно простой процесс. Не нужно быть гуру в PHP, это всего лишь несколько простых шагов, в логической последовательности.