通过变量获取翻译后的字符串

时间:2016-05-27 作者:Capiedge

我正在将一个网站翻译成不同的语言,我有以下问题:

通过后端,用户可以通过下拉菜单从50个选项列表中选择一个值(文本字符串)。该下拉列表存储在自定义字段中(顺便说一下,由ACF PRO管理)。

当用户访问网站的翻译版本时,我希望显示该文本字符串的翻译。

起初我认为

$options_obj = get_field_object(\'user_options\');
$options_value = get_field(\'user_options\');
$options_label = $options_obj[\'choices\'][$options_value];

echo __($options_label, \'my_text_domain\');
我把50个文本字符串翻译(对应于所有可选选项)放在一个po/mo文件中,but as we know this won\'t work. Gettext不转换变量。

我怎样才能得到翻译后的字符串?你有什么想法吗?非常感谢。

1 个回复
SO网友:cjbj

我不完全确定这是否是您想要的,但是如果选项页使用一种语言,您可以简单地将gettext调用放在自定义字段中,以避免使用变量。对于管理员,您强制将其翻译为西班牙语:

function wpse227983_force_language ( $locale ) {
    if ( is_admin() ) {
        return \'es_ES\';
    }
    return $locale;
}
add_filter( \'locale\', \'wpse227983_force_language\' );
在前端,假设您有一个确定页面语言的系统,则消息将以正常方式翻译。如果作者为该语言设置了自定义字段,则可以将上述筛选器与其他if 强制翻译。

相关推荐

month name translation

我使用birdtips主题,它将发布日期格式化为$birdtips_posted = date(__(\'Y. F j.\', \'birdtips\'), strtotime(get_the_time(\"Y-m-d\"))); 其中Y.F.j.已经被改写以反映我的语言。据我所知,\\uuuu是翻译功能,但我如何告诉Wordpress我使用匈牙利语,它会自动翻译月份名称,或者我应该在中给出名称。采购订单文件?