Локализация плагинов Wordpress - PullRequest
8 голосов
/ 23 марта 2011

Я только что построил свой первый плагин для wp, и даже если это не отличная «поэзия кода»;) он работает так, как должен. Это плагин, который преобразует галерею wp по умолчанию с помощью плагина jQuery GalleryView 3.0 (http://spaceforaname.com/galleryview).

Единственное, что я не могу сделать, это локализация. Локализация для этого плагина означает перевод интерфейса администратора, где кто-то может настроить параметры плагина jquery для изменения аспекта получающейся галереи.

Я пытался следовать миллионам учебных пособий, представленных в Интернете, читал множество постов об этой проблеме на форумах и следовал рекомендациям Кодекса ... но все же безуспешно.

вот что я сделал:

  1. каждая текстовая строка находится внутри функции gettext (__ и _e)
  2. используя poedit, я создал .po и .mo файл, сканируя каталог плагинов (все прошло нормально), затем добавил переводы для этого файла.
  3. я назвал .po-файл следующим образом: NAME-OF-THE-PLUGIN-it_IT.po (файл .mo был создан с тем же именем)
  4. Я поместил файлы переводов в папку / языки плагина (имя папки совпадает с именем плагина и файлов переводов)
  5. Затем я попытался добавить функцию load_plugin_textdomain в основной файл плагина. Я пытался, потому что нет способа заставить его работать.

Единственное, в чем я не уверен, так это то, что созданный мной плагин не находится под функциями класса + конструктора ... только потому, что я все еще не так хорош в кодировании.

Но я поместил load_plugin_textdomain в init add_action, вот так:

add_action('init', 'gw_load_translation_file');

function gw_load_translation_file() {
// relative path to WP_PLUGIN_DIR where the translation files will sit:
$plugin_path = dirname(plugin_basename( __FILE__ ) .'/languages' );
load_plugin_textdomain( 'gallery-view-for-wordpress', false, $plugin_path );
}

строки выше не внутри логики, они просто в основном файле плагина, вот так.

это пример моего использования функций gettext:

<h3><?php _e('Panel Options','gallery-view-for-wordpress') ?></h3>

что я не понял?

Ответы [ 2 ]

4 голосов
/ 15 апреля 2011

Моя ошибка была при объявлении пути к языковым файлам.

это исправлено:

$plugin_path = dirname( plugin_basename( __FILE__ ) ) . '/languages/';

это было неправильно:

$plugin_path = dirname(plugin_basename( __FILE__ ) .'/languages' );

Мне ответили Обмен WordPack Stack

1 голос
/ 14 апреля 2011

Вопреки моему предыдущему утверждению, мне удалось использовать это имя файла: gallery-view-for-wp-it_IT.mo

Странно, хотя - темы используют только it_IT.mo.

...