私は最新のWordPress 3.3.1と最新のqTranslate 2.5.27を使用しています。現在の言語で値とメッセージを返すAJAXスクリプトをいくつか作成しました。
ここで私は私の最初の問題を得ます、私はqtrans_getLanguage()
からAJAX lang
を送りそしてqtrans_use($lang, '<!--:pl-->PL message<!--:--><!--:de-->DE message<!--:-->');
のメッセージを使うことによってそれを解決します
私はDBにwp_optionがあります:'example' = '<!--:pl-->polish text<!--:--><!--:de-->deutschland text<!--:-->'
そしてget_option('example')
を使うとき、私はいつもPolish text
を得ています。
PHPでsetlocale
にしようとしましたが、良い結果は得られませんでした。
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'));
いつもポーランドのEメール...
'setlocale(LC_ALL, 'de_DE')'
今、私はハードコードの電子メールを使っています
$mail = qtrans_use($lang, '<!--:pl-->[email protected]<!--:--><!--:de-->[email protected]<!--:-->');
...
「polish textdeutschland text」、つまり<!--:pl-->polish text<!--:--><!--:de-->deutschland text<!--:-->
の周囲に 言語タグ を使用していますが、回答を投稿しても無視されます。
あなたがしなければならないことは__()
(これはphpコードで使用するための翻訳を返す)と_e()
(echoの直接画面)ワードプレス関数を使うことであると確信しています。 qTranslateサポートフォーラム FAQ#14 を見れば、彼は例を使います:
<?php _e("<!--:en-->english text<!--:--><!--:de-->german text<!--:-->"); ?>
あなたの場合、私はあなたが使いたいと思います:
<?php __(get_option('example')); ?>
これはあなたがあなたのプラグインの中でそれを使っていると仮定しています。ページテンプレートで使用している場合は、次のようにします。
<?php _e(get_option('example')); ?>