Перевод виджета в моем плагине
Я добавляю поддержку i18n для виджета в плагине List Category Posts. Я правильно создал pot файл, а также po и mo файлы для испанского и английского языков. Все строки выводятся с помощью _e()
в файле формы.
Структура директорий следующая:
/
include/
ListCategoryPostsWidget.php
lcp_widget_form.php
languages/
es_ES.mo
en_US.mo
plugin.php
Есть и другие файлы, но эти участвуют в переводе. В классе виджета (ListCategoryPostsWidget.php) я использую следующий код для регистрации перевода:
$translation_dir = '../languages';
load_plugin_textdomain( 'list-category-posts', null, $translation_dir );
А это код, который я использую для подключения файла формы в ListCategoryPostsWidget.php:
/** @see WP_Widget::form */
function form($instance) {
include('lcp_widget_form.php');
}
Язык по умолчанию - английский, и он работает нормально. Но когда я устанавливаю WP_LANG в "es_ES" в моем wp-config, текст в виджете все равно отображается на английском. Есть идеи? EDIT: Добавляю еще немного кода:
<p><label for="<?php echo $this->get_field_id('title'); ?>">
<?php _e("Title", 'list-category-posts')?></label>
Вот так я использую функцию _e в lcp_widget_form.php.

Основываясь на вашем комментарии:
HTML, генерируемый виджетом? Тот, который просто показывает строки в функции _e, например: _e("Category") отображает "Category"
Я подозреваю, что вы неправильно настроили строки перевода. Вам необходимо указать текстовый домен в каждом вызове функции перевода строк, иначе строки никогда не будут переведены.
Например, для вашего текстового домена 'list-category-posts'
:
_e( 'Category' )
...должно быть заменено на:
_e( 'Category', 'list-category-posts' )
Убедитесь, что все ваши функции перевода строк объявлены соответствующим образом.

Упс, извините, я ошибся с комментариями, я использую его так, как и должен: _e("Category", 'list-category-posts')

Это старый вопрос, но я как раз проверял свой аккаунт здесь. i18n наконец-то добавлен: http://wordpress.org/extend/plugins/list-category-posts/changelog/, спасибо, Chip! :)
