it-roy-ru.com

Готовлю перевод моего плагина. Поедит не работает

Я создаю плагин, который пока идет отлично. Я хочу начать готовить локализацию. Я не знаю, что идет не так, но это вызывает у меня проблемы, когда я пытаюсь загрузить его в Poedit.

Итак, давайте сделаем это шаг за шагом, как показывают несколько уроков.

Поэтому в myplugin.php я загружаю следующее, чтобы сообщить WP, где находятся мои языковые файлы (после фактического создания папки).

function ap_action_init()
{
// Localization
  load_plugin_textdomain( 'myplugin', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' ); 
}

add_action('init', 'ap_action_init');

Затем я настраиваю все строки, которые нужно перевести, в моем файле (который находится в папке администратора).

<h2><?php _e('MyPlugin Settings', 'myplugin'); ?></h2>
<?php _e('Element Width', 'myplugin'); ?>
<?php _e('This defines the default width of your Elements', 'myplugin'); ?>

Пока все хорошо, я бы подумал. Но потом я открываю Poedit.

Я говорю poedit, чтобы сохранить myplugin-nl_NL.po в папке Languages ​​в моем плагине.

Я говорю базовый путь, чтобы быть ../

И я указываю мои пути, чтобы быть или ./admin или admin (если я даю это /admin, или что-то еще, это дает мне ошибку, папка не существует. Поэтому я предполагаю, что она находит мои папки).

Я говорю poedit искать ключевые слова __() и _e().

И тогда я нажимаю ок! Каждый раз (что бы я ни пытался) Это не показывает мне какие-либо строки для перевода, где, когда я импортирую обычный .po, он показывает мне много.

Так. Кто-нибудь видит, что здесь происходит не так?

П.С .: Может быть, важное замечание. Если я пытаюсь вручную создать свой собственный файл .po, он показывает мне строки в POedit. Но если я размещу это на своем сайте и поменяю WordPress на его язык, это ничего не изменит. Так что я думаю, что я делаю что-то не так в своих файлах WP.

Надеюсь, кто-нибудь может помочь :)

1
Danny van Holten

Хорошо. Я нашел проблему. В нескольких уроках было сказано, чтобы я добавил __() и _e() в мой poedit. Что, теперь я нашел ответ довольно глупо. Потому что просто нет строк с этими поисковыми значениями. Как всегда есть что-то между этими скобками.

Решение, таким образом, очень простое (и довольно глупое). Поместите значения поиска в __ и _e

2
Danny van Holten

Вместо того, чтобы использовать poedit для генерации ваших строк перевода из вашего кода, используйте инструменты WordPress i18n для генерации POT-файла для вас.

Это имеет следующие преимущества: а) отсутствие необходимости делать что-то особенное в poedit и б) получение всего, что возможно для перевода, включая заголовки и нестандартные вызовы строки перевода (не все __ и _e).

Сделать это относительно просто, правда.

Шаг первый

Получите клиент SVN и сделайте это:

svn checkout http://develop.svn.wordpress.org/trunk/ develop

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

(Примечание: если вы пользователь git, вы можете вместо этого сделать клон git://develop.git.wordpress.org/.)

Шаг второй

Перейдите в этот каталог, затем в каталог инструментов, затем в каталог i18n. Здесь вы найдете файл с именем makepot.php. Это тот, который вам нужен.

Использовать его очень просто. Получите командную строку и введите это:

php makepot.php wp-plugin /path/to/your/plugin/folder plugin-slug.pot

Флаг "wp-plugin" указывает коду изучить плагин. Вы также можете использовать wp-theme здесь, чтобы сгенерировать POT-файл для темы.

Замените путь к папке вашего плагина соответствующей локальной копией плагина и используйте слаг своего плагина для имени файла банка. Код PHP просканирует каталог вашего плагина и создаст файл POT для вас.

Я считаю, что POT-файл - это "Шаблон PO", с которым poedit может справиться довольно хорошо. Вы можете отредактировать его заголовок (в любом текстовом редакторе), чтобы в нем содержалась информация об авторе и плагине и тому подобное.

Почему это лучше:

Сравните результаты самостоятельно. Обратите внимание, что заголовки плагина также включены в файл POT. Если вы использовали какие-либо специальные методы перевода, такие как _x или _ex или _n_noop, то они также будут в файле.

Обратите внимание, что код makepot.php не является автономным, он требует доступности исходного кода WordPress. Так что вам нужна вся касса, а не только каталог инструментов. Он использует код перевода WordPress для выполнения некоторых работ.

2
Otto