WordPress:为短代码添加语言属性进行翻译

时间:2018-03-12 09:54:11

标签: wordpress plugins translation shortcode

我试图让我的短代码能够切换语言。

例如[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'时,它不起作用。 我的思绪会爆炸,你能解释一下吗?

感谢。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。实际上,我需要删除WP注册的翻译:

global $l10n;
if (isset($l10n['my-plugin'])){
    unset($l10n['my-plugin']);
}
load_textdomain( 'my-plugin', $pathtomofile )