在WordPress中有没有像 switch_to_blog()
一样切换语言的方法。
类似以下方式:
global $locale
$currentLanguage = $locale;
switch_to_language('de_DE');
//do some action with german localisation
switch_to_language($currentLanguage);
这在WordPress中一般是可行的吗?
在WordPress中有没有像 switch_to_blog()
一样切换语言的方法。
类似以下方式:
global $locale
$currentLanguage = $locale;
switch_to_language('de_DE');
//do some action with german localisation
switch_to_language($currentLanguage);
所以我终于找到了解决方案。这个函数被称为load_textdomain()
这是我这边的操作步骤。请记得在$new_language
中定义LANGUAGE_PATH
和您想要切换到的语言。 $your_domain
是您的插件/主题的文本域。
//will output "Good Morning"
_e('Good Morning', $your_domain);
global $locale;
//save the current language for later
$current_language = $locale;
$new_language = 'DE_de';
//load the new text domain
load_textdomain( $your_language_domain, LANGUAGE_PATH.'/'.$your_domain.'-'.$new_language.'.mo' );
//do some action with the new localisation
//will output "Guten Morgen"
_e('Good Morning', $your_domain);
//go back to the previous language
load_textdomain( $your_language_domain , LANGUAGE_PATH.'/'.$your_domain.'-'.$current_language.'.mo' );
在核心代码中花了一些时间才找到这个方法。更多关于该函数的信息,请访问codex网站
switch_to_language()
函数。如果我只改变全局变量 $local,它就不能正常工作。 - Xaver
en_US
,它就无法工作。你可以将$your_domain
更改为随机字符串,这样翻译就不会被注册并使用后备 - 英语。 - Xaver