我试图让我的短代码能够切换语言。
例如[my-form lang="fr_FR"]
将加载我的法语mo文件并以法语显示该表单。对于其他语言也是如此:[my-form lang="en_US"]
将以英语显示表单。
.mo文件没问题,我的插件管理根据worpress语言设置显示正确的语言。为此,我将此行放在我的插件主文件中('plugins_loaded'hook):
load_plugin_textdomain( 'my-plugin', false, basename( dirname( __ FILE __ ) ) . '/languages' );
在短代码功能中,我称之为:
load_textdomain( 'my-plugin', $pathtomofile )
$pathtomofile
根据语言shorcode属性进行调整:'fr_FR'将调用法语mo文件,'en_US'调用english mo文件...
问题是:当短码调用'en_US'时,它适用于切换到'français'的英文wordpress安装。当我将设置切换回“英语(美国)”并尝试使用短代码调用'fr_FR'时,它不起作用。 我的思绪会爆炸,你能解释一下吗?
感谢。
答案 0 :(得分:0)
我找到了解决方案。实际上,我需要删除WP注册的翻译:
global $l10n;
if (isset($l10n['my-plugin'])){
unset($l10n['my-plugin']);
}
load_textdomain( 'my-plugin', $pathtomofile )