我正在使用最新的WordPress 3.3.1和最新的qTranslate 2.5.27。我制作了一些AJAX脚本,用当前语言返回值和消息。
这里我得到了我的第一个问题,我通过发送AJAX来解决它lang
从…起qtrans_getLanguage()
并将消息用于qtrans_use($lang, \'<!--:pl-->PL message<!--:--><!--:de-->DE message<!--:-->\');
我在DB中有一个wp\\U选项:\'example\' = \'<!--:pl-->polish text<!--:--><!--:de-->deutschland text<!--:-->\'
使用时get_option(\'example\')
我总是Polish text
.
我是想setlocale
在PHP中,但没有任何积极的结果。
get_option()
在任何php WordPress文件或模板中都能正常工作,但在我的AJAX中不能正常工作。。。
编辑:在模板中:
$.post(\'<?php echo get_bloginfo( \'template_url\' ); ?>/sendmail.php\', {
message: input_message,
lang: input_lang
}
在sendmail中。php:
\'destination_email\' is set to \'<!--:pl-->[email protected]<!--:--><!--:de-->[email protected]<!--:-->\'
$mail = _e(get_option(\'destination_email\'));
总是收到波兰语电子邮件。。。即使
\'setlocale(LC_ALL, \'de_DE\')\'
现在我正在使用硬代码电子邮件
$mail = qtrans_use($lang, \'<!--:pl-->[email protected]<!--:--><!--:de-->[email protected]<!--:-->\');
。。。
SO网友:icc97
我猜你在用language tags 围绕“波兰文本德意志文本”,即。<!--:pl-->polish text<!--:--><!--:de-->deutschland text<!--:-->
但是当你发布你的答案时,他们被忽视了。
我很确定你需要做的是使用__()
(返回在php代码中使用的翻译)和_e()
(echo直接进入屏幕)wordpress功能。如果您查看qTranslate支持论坛FAQ #14, 他举了一个例子:
<?php _e("<!--:en-->english text<!--:--><!--:de-->german text<!--:-->"); ?>
在您的情况下,我认为您希望使用:
<?php __(get_option(\'example\')); ?>
这是假设您正在插件中使用它。如果您在页面模板中使用它,您会使用:
<?php _e(get_option(\'example\')); ?>