Как локализовать и перевести плагин WordPress — подробное руководство для разработчиков плагинов
Опубликовано: 2020-01-20При разработке плагина всегда полезно подготовить его к переводу, поскольку он может дополнительно охватить аудиторию, для которой английский не является родным языком. Если вам интересно, насколько важен параметр перевода, вы можете проверить репозиторий и увидеть, что каждый популярный плагин доступен для языковой локализации. Вы обнаружите, что эта опция доступна в UpdraftPlus, MetaSlider, WP-Optimize, Contact Form 7 и WooCommerce, а также во многих других. Это одни из самых популярных доступных плагинов, и они закодированы таким образом, что любой может легко перевести их на свой родной язык.
Цель этого блога — продемонстрировать нашим читателям, как они могут кодировать плагин, чтобы он был локализован и переведен на любой поддерживаемый язык WordPress. Например, если мы хотим перевести плагин на французский язык, следующие шаги позволят перевести плагин, а также подготовят его для всех поддерживаемых языков WordPress.
Начиная
При создании плагина мы должны убедиться, что мы загружаем текстовый домен плагина. WordPress предоставляет эту функцию:
load_plugin_textdomain()
Этот код загрузит переведенные строки плагина. Это может показаться немного запутанным, но продолжайте читать, и мы вскоре объясним, как это работает.
Во-первых, давайте посмотрим, как добавить эту функцию в код нашего плагина. В папке вашего плагина создайте каталог под названием «языки». Затем добавьте приведенный ниже код в основной файл вашего плагина.
* Load plugin textdomain. */ function plugin_load_textdomain() { load_plugin_textdomain( 'udp', false, basename( dirname( __FILE__ ) ) . '/languages/' ); } add_action( 'init', 'plugin_load_textdomain' );
В приведенном выше коде мы сохраняем первый параметр (домен) как «udp». Мы должны сохранить это доменное имя в соответствии с нашим именем плагина. Второй параметр по умолчанию имеет значение false. Третий параметр — это путь к нашему каталогу «languages». Этот код поддерживает готовность наших файлов перевода при инициализации WordPress.
Использование методов __() и _e()
Поскольку мы стремимся сделать наш плагин доступным на всех языках, мы должны обернуть весь текст нашего плагина внутри:
__()
или _e()
.
Использовать эти методы очень легко. Оба метода работают одинаково, но есть правило использования обоих.
В нашем коде плагина у нас обычно есть два типа текста. Первый обернут непосредственно в HTML, а второй отображается с помощью функции эха PHP. Ниже приведены примеры обоих типов:
Тип 1
<h2>My Plugin Title</h2>
Тип 2
<?php echo 'Мои настройки плагина'; ?>
Общее правило заключается в том, что если вы печатаете текст с помощью эха PHP, вы должны обернуть текст следующим кодом:
<code>__()</code>
Если это HTML, используйте код: <code>_e()</code>.
Приведенный выше код должен быть написан следующим образом:
<h2><?php _e('Название моего плагина', 'udp'); ?></h2>
а также
<?php echo __('Мои настройки плагина', 'udp'); ?>
Как видно из приведенных выше примеров, второй параметр был записан как «udp», что является нашим текстовым доменом плагина. Использование этого домена позволит нам позже перевести наш текст на любой язык. Вот как другие плагины готовят перевод своих плагинов.
Если хотите, можете проверить наш плагин:
UpdraftPlus
Если вы выполните поиск по текстовому домену «updraftplus», вы увидите, как текст нашего плагина заключен в функции __()
и _e()
.
Создайте образец плагина
Следующим этапом является создание образца плагина с текстом, чтобы мы могли протестировать наши переводы. Сначала создайте папку «udp» в каталоге вашего плагина. Внутри этой папки создайте файл: udp.php
и папку languages
. Затем добавьте приведенный ниже код в файл плагина.
udp.php
<?php /* Имя плагина: UDP Описание: Это пример плагина для тестирования текстового домена плагина. Автор: Редакция Версия: 1.0 Лицензия: GPLv3 или выше Текстовый домен: udp Путь к домену: /languages */ if (!defined('ABSPATH')) die('Прямой доступ запрещен');/** * Загрузить плагин textdomain. */ функция udp_load_textdomain() { load_plugin_textdomain('udp', false, basename(dirname( __FILE__)). '/languages/'); } add_action('init', 'udp_load_textdomain'); функция udp_menu_page() { add_menu_page( __('Страница настроек UDP', 'udp'), __('Страница настроек UDP', 'udp'), 'управление_параметрами', 'udp_setting_page', 'udp_setting_page', '', 6 ); } add_action('admin_menu', 'udp_menu_page'); функция udp_setting_page() { ?> <h2><?php _e('Название моего плагина', 'udp'); ?></h2> <?php }
Создайте файлы перевода
Для создания наших файлов перевода мы будем использовать следующее программное обеспечение для редактирования перевода:
ПОЭДИТ
Файлы перевода (.po и .mo) содержат строку для перевода и переведенную строку. При создании файла .po нам нужно сохранить его в формате «{domain}-language code». В этом примере это будет файл udp-fr_FR.po .
Затем установите программное обеспечение POEDIT в вашей системе. Это программное обеспечение доступно для всех платформ и может быть установлено на Windows, Linux или Mac.
После установки откройте POEDIT и перейдите в File->New , где мы введем код нашего языка в приглашении окна.
Нажмите на значок «Сохранить», после чего откроется файловый менеджер. Перейдите в каталог языков плагинов и сохраните его как следующее: udp-fr_FR.po .
Теперь мы можем добавить французский перевод для текста нашего плагина. Для этого нажмите на раздел «Извлечь из источников».
Откроется всплывающее окно свойств каталога. Теперь нам нужно настроить три следующие вкладки: «Свойства перевода», «Исходные пути» и «Исходные ключевые слова». На вкладке «Свойства перевода» добавьте наш домен «udp» в качестве имени проекта. Исходные пути будут нашей папкой плагина, и мы добавим «__ и _e» внутри исходных ключевых слов.
Если у вас внутри плагина несколько папок, то нам нужно будет выбрать каждую директорию по отдельности.
После выбора папки плагина вы должны увидеть '.' в разделе Пути. При необходимости повторите тот же процесс для других папок в каталоге вашего плагина.
В разделе «Ключевые слова источника» щелкните значок «+», добавьте «__» и «_e» в качестве ключевого слова и нажмите кнопку «ОК».
В следующем окне в разделе «Исходный текст» у вас будут все строки, доступные для перевода из вашего плагина. Выберите строку одну за другой и добавьте к строке свой французский перевод.
Как только вы добавите все переводы, нажмите на значок Сохранить. Это автоматически сохранит все ваши переводы строк в файле udp-ft_FR.po
. Теперь ваш файл .po будет содержать следующий код:
#: udp.php:24 udp.php:25 msgstr "Страница настроек UDP" msgstr "Страница конфигурации UDP" #: udp.php:37 msgstr "Название моего плагина" msgstr "Плагин Titre de mon"
Протестируйте перевод нашего плагина
Мы завершили задачу по созданию файлов .po и .mo для нашего плагина. Теперь пришло время протестировать наш плагин и проверить перевод на французский язык.
Сначала загрузите наш языковой файл по следующему адресу:
Языковой репозиторий WordPress.
Для французского языка путь следующий:
Репозиторий французского языка WordPress.fr_FR.mo
и fr_FR.po
Загрузите файлы по этой ссылке и сохраните их в каталоге wp-content/languages . Создайте папку 'languages', если она еще не существует.
Далее нам нужно изменить язык нашей установки WordPress по умолчанию. Откройте файл wp-config.php
и добавьте язык следующим образом:
определить('WPLANG', 'fr_FR');
Теперь, если вы перейдете на панель инструментов, ваш плагин должен отображаться на французском языке.
В заключение
Поначалу создание локализованного перевода для вашего плагина WordPress может показаться немного пугающим и сложным. Однако потенциальные преимущества предложения плагина на их родном языке крупным неанглоязычным странам, таким как Бразилия, Франция и Германия, могут помочь открыть ваш плагин для совершенно новой, ценной аудитории. Хотя это может показаться большой работой, вознаграждение может быть значительным.
Пост «Как локализовать и перевести плагин WordPress» — подробное руководство для разработчиков плагинов впервые появилось на UpdraftPlus. UpdraftPlus — Плагин резервного копирования, восстановления и миграции для WordPress.