如何更改_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设计的,但这个想法普遍适用。 文章导航