如何更改_e函数使用的语言文件

时间:2017-03-14 作者:samurdhilbk

我正在尝试为我的WordPress网站制作自己的语言切换器。我正在使用_e 和类似功能。所以我猜我唯一需要做的就是更改WordPress使用的语言环境。如何以编程方式执行此操作?

因此,在理想情况下,当用户单击所需语言时,“此代码”将运行,WordPress将使用相应的.mo 翻译文件。

2 个回复
SO网友:maxime schoeni

实际上,您需要挂接“locale”过滤器来设置所需的语言:

add_filter(\'locale\', function($locale) {
    return esc_attr($_GET[\'language\']);
});
然后在交换机的链接中,需要传递语言变量:

<a href="<?php echo add_query_arg(\'language\', \'xx_XX\') ?>">XX</a>
其中xx\\u xx是语言xx的语言区域设置代码

SO网友:samurdhilbk

除了@maxime的答案之外,我发现以下方法也有效。只需更改$locale 全局变量。这将修复大多数翻译。如果要指定特定文本域的语言环境,只需调用load_textdomain() 函数指向适当的.mo 文件

$locale = \'en_US\';

if ( file_exists( WP_LANG_DIR . \'/\' . $locale . \'.mo\' ) ) {
    load_textdomain( \'my_domain\', WP_LANG_DIR . \'/\' . $locale . \'.mo\' );
}
现在,在上面的示例中,如果languages 文件夹包含文件en_US.mo, 你可以走了。

所以当你打电话的时候,

echo _e(\'Hello\', \'my_domain\');
您关联的.po 将反映文件。

有关详细说明,请访问https://codex.buddypress.org/getting-started/customizing/customizing-labels-messages-and-urls/.

这是为BuddyPress设计的,但这个想法普遍适用。

相关推荐

Having a two language website

我想有一个英语和波斯语的网站,因为你知道英语是right to left 波斯语是left to right. 当我发布内容并将WordPress设置为英语时,所有网站和所有帖子都将从左向右移动。但这是我的个人网站,我想有时用英语发帖,有时用波斯语发帖,编辑不允许我改变方向,它只有文本对齐(css:direction:rtl or direction:ltr)如何更改每个帖子的方向?还有别的办法吗?