私はPHPでウェブサイトを構築しており、gettextを使って翻訳を処理しています。これまでのところすべてが完璧ですが、ある時点でウェブサイトがユーザーに電子メールを送信し、電子メールを翻訳することができません。gettextを使ってajaxコール内のメールを翻訳する
私は.moファイル使用してウェブサイトを翻訳し、私は、言語を選択したセッションで、私が使用してすることがあります:ロケールインサイド
$lang=$_SESSION['lang'];
switch ($lang){
case 'en':
setlocale(LC_ALL, 'en_US.utf8');
putenv('LC_ALL=en_US.utf8');
bindtextdomain("estribo", "locale");
bind_textdomain_codeset("estribo", 'UTF-8');
textdomain("estribo");
break;
case 'es':
putenv('LC_ALL=es_ES.utf8');
setlocale(LC_ALL, 'es_ES.utf8');
bindtextdomain("estribo", "locale");
bind_textdomain_codeset("estribo", 'UTF-8');
textdomain("estribo");
break;
}
/en_US.utf8の/ estribo.mo私はすべての文字列を翻訳していると私はこのようなページの任意の場所に訴えるときには正常に動作します:
<a href="index.php"><?echo _("Index");?></a>
それは私が変数(文字列)の内容と同じことを行うときに、この方法はrpoblemは私が後になることです完璧に翻訳します画面上に印刷するのではなく、メールで送信してください。
これは、電子メール(checkout.php)のために私のコードです:私はcheckout.phpに着く
$message = _("Some text to send via email").": \n";
//a few more lines of
$message .= _("Some more text").": \n";
mail($email, $subject, $message);
方法は、Ajax経由で:
function() {
$.post('checkout.php', {
cart: this.cart.items,
total: this.format(this.total),
quantity: this.quantity,
shipping: $('select.shipping').val(),
tipopago: $('input.tipopago').val(),
customer: $('#checkout-form').serialize()
}, function (result) {
window.location.href = result;
});
return true;
}
作品や文字列であるすべてのもの.moファイルで翻訳されましたが、$ message変数が翻訳されていません
「翻訳中」はどうですか? –
gettextを使用して質問を更新してください。 –