我正在WordPress网站上安装qTranslate多语言插件。该网站有一个以前的自定义插件,这使事情复杂化。这个问题涉及qTranslate无法翻译Gettext标记的字符串(_e
等)的一些情况。在这些情况下,我可以正确验证qTranslate语言和WordPress语言环境,就像Gettext调用之前的那行一样,如下所示:
<pre>lang: <?php echo qtrans_getLanguage(); ?></pre>
<p class="message"><?php _e('Cart is empty.', 'myplugin'); ?></p>
无论当前语言如何,该字符串都将以 qTranslate 中设置为默认的语言输出。因此,这是一个典型的输出,其中瑞典语是默认语言:
lang: en
Varukorgen är tom.
我知道你无法从这个摘要中确切地看到哪里出了问题。但是你能帮助我提出这种行为的可能原因吗?
提示:Ajax可能参与其中,但老实说,我有点困惑,看看这是否属实。
load_plugin_textdomain
调用应该在 init 函数内,所以
load_plugin_textdomain('myplugin', false, dirname(plugin_basename(__FILE__))
. '/languages/');
我做了
function myplugin_init() {
load_plugin_textdomain('myplugin', false, dirname(plugin_basename(__FILE__))
. '/languages/');
}
add_action( 'init', 'myplugin_init' );
它奏效了。