WordPresas - 将字符串翻译添加到现有的 .po
WordPresas - Add string translations to an existing .po
我使用的是部分意大利语翻译的主题。使用编辑器,我添加了新行并使用 Poedit 生成了 .mo。
我怀疑什么时候下载更新,什么时候我的翻译可能会被覆盖。
有没有办法避免重新同步新的翻译(代码在 _e() 函数中使用域)?
您可以将“自定义”.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;
}
我使用的是部分意大利语翻译的主题。使用编辑器,我添加了新行并使用 Poedit 生成了 .mo。 我怀疑什么时候下载更新,什么时候我的翻译可能会被覆盖。
有没有办法避免重新同步新的翻译(代码在 _e() 函数中使用域)?
您可以将“自定义”.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;
}