#wordpress #language-translation #poedit
#wordpress #язык-перевод #poedit
Вопрос:
Я использую тему, в которой частичный перевод на итальянский. С помощью редактора я добавил новые строки и сгенерировал файл .mo с помощью Poedit. Я сомневаюсь в том, когда я загружу обновление и когда мои переводы, вероятно, будут перезаписаны.
Есть ли способ избежать необходимости повторной синхронизации новых переводов (код использует домены в функциях _e())?
Ответ №1:
Вы можете поместить свои «пользовательские» файлы .po и .mo в /wp-content/languages/plugins
, и это переопределит оригинальные файлы .po .mo плагина. Таким образом, даже если вы обновите плагин, будут использоваться ваши пользовательские файлы перевода.
Например, если вы переведете плагин Akismet на итальянский, ваши файлы в /wp-content/languages/plugins
будут
akismet-it_IT.mo
akismet-it_IT.po
Редактировать:
Кроме того, вы можете добавить этот код в дочернюю тему functions.php для того, чтобы сделать перевод строк. Вы можете добавить этот код столько, сколько хотите перевести слов. Я добавил две строки (hello2 и hello3) в конце в качестве примера.
// Translate Text
add_filter('gettext', 'translate_text');
add_filter('ngettext', 'translate_text');
function translate_text($translated) {
$translated = str_ireplace('Hello', 'Ciao', $translated);
$translated = str_ireplace('Hello2', 'Ciao2', $translated);
$translated = str_ireplace('Hello3', 'Ciao3', $translated);
return $translated;
}
Комментарии:
1. Спасибо @ozgur, а как насчет возможности объединения исходного (и частичного) .po только с моими новыми и добавленными строками?
2. Я думал, вы уже объединили их. Вы должны иметь возможность объединить их с помощью poedit
3. Да, но если новая версия плагина поставляется с, возможно, новыми строками, возможно, некоторые переведены, а некоторые нет, должен ли я синхронизировать вручную?
4. Мое решение только переопределяет файл .po плагина вашим пользовательским файлом .po. WordPress не будет объединять обновленные строки плагина с вашими пользовательскими. Однако вы можете вручную добавить новые строки в свой файл .po.
5. @Zeno Я добавил альтернативное решение для перевода строк, которое вы можете сделать из своего functions.php . Вы можете использовать его, если у вас есть только несколько переводов.