我在 wordpress 中有一个字符串(英文),我知道它在 .po 和 .mo 文件中有翻译,当以该语言浏览网站时,它在前端显示正确翻译。
但是我需要在 PHP 脚本中进行翻译。不是 .po/.mo 文件,只是翻译后的字符串。注意:我不是在谈论以当前语言显示文本。
我正在寻找一个可以提供原始字符串和语言代码并检索翻译的函数。我需要对一个脚本/请求中的所有可用语言执行此操作 - 因此一次检索所有这些数据也是可以接受的。
我已经尝试过这样的测试($languages 是一个 lang 代码字符串数组)
foreach ($languages as $language) {
apply_filters('locale', $language);
$test = translate($entry_id, 'roots');
print_r($test);
print "<hr>";
}
然而,这似乎只给我英文字符串(并且 en 或任何变体不是 $languages 中的一种语言)。
谁能指出我正确的方向?
我希望我可以自己处理 .po 文件,但这似乎没有必要,因为 wordpress 确实能够使用模板中常用的 getText 函数提取当前语言的翻译,所以我认为必须有一个更短的路径对我正在做的事情。
最佳答案
最后我确实只是处理 .mo 文件来获取翻译,但这比我想象的要容易。
$translations = array();
$languages = get_available_languages(ABSPATH . '../wp-content/themes/MY-THEME/lang');
foreach ($languages as $language) {
$mo = new MO();
if ($mo->import_from_file(ABSPATH . '../wp-content/themes/MY-THEME/lang/' . $language . '.mo')) {
$translations[$language] = $mo->entries;
}
}
然后翻译在$translations[$language][$entry_id]->translations[0]
其中 $entry_id 是英文字符串。
关于wordpress - 在 wordpress 中获取字符串的翻译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31778466/