根据语言更改警报消息?

时间:2013-12-18 14:17:47

标签: javascript php jquery json

我创建了一个简报弹出功能,允许用户注册发送的简报,如果用户尝试点击提交而不先输入电子邮件地址,则会有一条提示消息,但是我需要根据他们所在的国家/地区更改此消息/提醒,例如,如果他们在意大利网站上,我将需要此消息为意大利语,我当前的代码是:

this.signup = function() {
    if ($('#emailsignup').val() == '') {
       alert('Bitte geben Sie eine gültige E-Mail Adresse ein.');
     } else {
           $.ajax({
              dataType: 'jsonp',
              data: {
                    e: $('#emailsignup').val(),
                    s: 'leftsideform',
                    c:  that.lang
                    },
                    jsonp: 'jsonp_callback',
                    url: 'http://karina.com/######',
                    success: function (response) {
                        if (response.success === true) {
                            $('#emailsignup').val('');
                        }
                        if (response.callback.data != '') {
                             alert(response.callback.data);
                        }
                    }
           });
    }
}

2 个答案:

答案 0 :(得分:2)

在前端:

对我来说,简单的方法是让你的背面生成一个javascript(例如PHP),以便有类似的东西:

<script>
translation.error = "BLA BLA BLA";
</script>

该脚本将以您想要的语言打印变量。然后在你的代码中你只需要这样称呼它:

alert(window.translation.error);

在警报中显示错误。

使用当前代码,您将语言变量传递给服务器,并且如果出现问题,您希望返回错误消息。在PHP中,您可以使用不同的翻译文件,例如:

/langs/en.php
/langs/it.php
/langs/...

具有如下结构:

<?php
$trans = array("Error" => "Error message");

根据语言,您可以包含其中一个文件并返回翻译文本,如:$ trans ['error']。

答案 1 :(得分:0)

 <?php 
   $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);

   $langs_messages = array(
                         'ru' => 'Ru alert',
                         'en' => 'En alert',
                          // others langs 
                     );
   $lang_alert = $langs_message[$lang];
 ?>

 Javascript

 //.....
 if ($('#emailsignup').val() == '') {
                           alert('<?php echo $lang_alert; ?>');
 //.....