JQuery验证国际化问题

时间:2011-08-17 10:19:29

标签: jquery internationalization jquery-validate

如何更改以浏览器语言提供错误消息的JQuery Validation插件。我的意思是如果我在浏览器上运行它有英语错误将是英语或浏览器的语言是土耳其语错误消息也将是土耳其语(当然我将定义这些语言的消息,我也应该定义默认语言,如果我没有根据浏览器的语言定义错误消息列表)

3 个答案:

答案 0 :(得分:25)

您可以查看jquery的本地化插件:http://keith-wood.name/localisation.html
它允许根据浏览器定义的语言加载javascript文件。

jquery验证插件附带了本地址提供的本地化文件:http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/localization/messages_##.js其中##是本地代码。

您可以做的是使用默认错误消息加载验证插件,然后使用本地化插件加载特定于语言的错误消息。您甚至可以编写本地化的js文件,语法非常简单:

/*
 * Translated default messages for the jQuery validation plugin.
 * Locale: FR
 */
 jQuery.extend(jQuery.validator.messages, {
    required: "Ce champ est requis.",
    remote: "Veuillez remplir ce champ pour continuer.",
    email: "Veuillez entrer une adresse email valide.",
    url: "Veuillez entrer une URL valide.",
    date: "Veuillez entrer une date valide.",
    dateISO: "Veuillez entrer une date valide (ISO).",
    number: "Veuillez entrer un nombre valide.",
    digits: "Veuillez entrer (seulement) une valeur numérique.",
    creditcard: "Veuillez entrer un numéro de carte de crédit valide.",
    equalTo: "Veuillez entrer une nouvelle fois la même valeur.",
    accept: "Veuillez entrer une valeur avec une extension valide.",
    maxlength: jQuery.validator.format("Veuillez ne pas entrer plus de {0} caractères."),
    minlength: jQuery.validator.format("Veuillez entrer au moins {0} caractères."),
    rangelength: jQuery.validator.format("Veuillez entrer entre {0} et {1} caractères."),
    range: jQuery.validator.format("Veuillez entrer une valeur entre {0} et {1}."),
    max: jQuery.validator.format("Veuillez entrer une valeur inférieure ou égale à  {0}."),
    min: jQuery.validator.format("Veuillez entrer une valeur supérieure ou égale à  {0}.")
});



希望这有帮助!

答案 1 :(得分:1)

Jquery验证插件适用于数组变量。我将不同的数组变量定义为:

locale_tr, locale_en, locale_sw etc.

我将浏览器的语言视为两个字符,如

tr en sw

我将变量称为:

locale_ + browser's two character language

所以它适合我。

答案 2 :(得分:0)

以下是一种设置自定义验证消息的简单方法的建议:

1。使用XX_Messages.ee.js名称创建一个带有语法的js文件:

 LANG = {

    PERSONAL_BIRTHDAY_CAN_T_BLANK : 'Birthday cannot be left blank',
    PERSONAL_COUNTRY_CAN_T_BLANK : 'Country cannot be left blank',
    PERSONAL_CITY_CAN_T_BLANK : 'City cannot be left blank',
.......
TEAM_EMAIL_NOT_VALID : 'E-mail is not a valid email address'
};

<强> 2

<head>
....
<g:set var="locale" value="${session['language']}"/>
    <g:if test="${locale.equals("ee")}">
        <script src="${resource(dir: 'js',file:'/XX_Messages.ee.js')}"></script>
    </g:if>
....
</head>

注意:导入您要验证的html头中的XX_Messages.ee.js

第3

messages: {
            gender: {
                required: LANG.PERSONAL_BIRTHDAY_CAN_T_BLANK
            },
            firstName: {
                required:  LANG.PERSONAL_CITY_CAN_T_BLANK
            },
            lastName: {
                required: LANG.PERSONAL_COUNTRY_CAN_T_BLANK
            }
        }

注意: XX_Messages.ee.js文件必须在验证js之前在html的头部导入。