Rails - Twitter Bootstrap i18n - 验证

时间:2013-03-12 14:07:01

标签: ruby-on-rails validation twitter-bootstrap internationalization

对于Twitter Bootstrap中的属性是否存在某种注册,如何更改弹出的消息?

示例:表单上的验证,

而不是“请填写此字段”。我想要另一个翻译。这是否以某种方式连接到原始活动记录错误消息?

2 个答案:

答案 0 :(得分:6)

显示的消息Please fill out this field是HTML5验证。您可以使用setCustomValidity() http://www.html5rocks.com/en/tutorials/forms/html5forms/#toc-constraint-validation

自定义此消息

您还可以在邮件中添加一些自定义文字,如http://jsfiddle.net/kaleb/nfgfP/8/

所示

要在JavaScript中使用I18n,您可以查看i18n-js gem https://github.com/fnando/i18n-js

答案 1 :(得分:1)

var elements = document.getElementsByTagName("INPUT");
for (var i = 0; i < elements.length; i++) {
    elements[i].oninvalid = function(e) {
        e.target.setCustomValidity("");
        e.target.checkValidity();
        e.target.setCustomValidity(__Msg(e.target.validationMessage));
    };
}

// translate messages
function __Msg(str){
    switch(str){
        case 'Please fill out this field.': return 'fill out plz.';break;
        case 'Please enter an email address.': return 'enter email plz.';break;

    }
    return str; // skip not translated messages
}