wordpress - 在 wordpress 中获取字符串的翻译

标签 wordpress

我在 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/

相关文章:

php - WordPress 分页不工作第 2 页与第 1 页相同

php - 如何使用 wp_enqueue_script 从 WordPress 插件导入脚本和样式

css - 如何使用 CSS 使搜索栏响应

wordpress - wp-admin 后登录并重定向

wordpress - 有没有办法从WordPress插件中以编程方式启用小部件?

javascript - 在 Wordpress Media Uploader (3.5) 中显示图像大小

php - 在 Woocommerce 的单个产品页面中添加产品备注字段

PHP 将同级页面显示为一组图像

css - 如何在不影响主导航的情况下设置辅助导航菜单的样式?

javascript - 在提交表单之前检查是否选择了输入 radio ID