2016-09-22 192 views
0

我有一個問題要問關於jQuery驗證plugin翻譯自定義jQuery驗證消息

我已經使用本地化來更改要以西班牙語顯示的錯誤消息的默認語言,但我無法找到任何關於要翻譯的自定義消息。任何線索?

例如

我已經包括西班牙語的翻譯文件,這是我的代碼:

$('.signup-form').validate({ 
    lang : 'es', 
    rules:{ 
     tandc : {required : true} 
    }, 
    messages:{ 
     tandc : {required : "You have to accept terms and conditions to proceed further"} 
    } 
}) 

像「這個字段是必須的」等默認的消息出現在西班牙,現在我想要將上述消息翻譯成西班牙文,但我找不到在哪裏以及如何定義翻譯文本。

回答

4

插件沒有任何內容被「翻譯」。翻譯是手動完成的,然後你會把這些新消息放到​​的地方,它們會覆蓋默認值。

還有沒有這樣的.validate() option稱爲lang隨時隨地in this plugin

要使用本地化文件只是意味着包括文件某處等你包括插件後...

<script type="text/javascript" src="...path-to/jquery.validation/1.15.0/jquery.validate.js" /> 
<script type="text/javascript" src="...path-to/jquery-validation/localization/messages_es.js" /> 

然後所有默認的郵件將在西班牙語。

默認消息,如「此字段是必需的」等出現在西班牙語,現在我想將上述消息翻譯成西班牙語,但我找不到在哪裏以及如何定義翻譯文本。

包括西班牙本地化文件只是告訴插件取代西班牙本地化文件定義的默認消息。

您的messages對象覆蓋了這些默認消息,因此如果您希望西班牙語消息僅用於單個輸入字段就可以覆蓋required規則,那麼您需要用西班牙語編寫該消息。 沒有內置的動態翻譯,可以即時解釋您的消息。

rules:{ 
    tandc : { 
     required : true 
    } 
}, 
messages:{ 
    tandc : { 
     required : "Tienes que aceptar los términos y condiciones de seguir avanzando" 
    } 
} 

這是消息的使用的優先級:

  1. 任何文本使用內.validate()或類似的方法messages對象聲明用於通過規則或整個場的單個字段。

  2. 如果在項目#1中沒有定義:覆蓋$.extend($.validator.messages, {...})定義的插件默認消息。這就是本地化文件的工作方式。

  3. 如果沒有在項目#2中定義:由插件定義的默認消息(英文)。


現在,如果你需要動態變化的任何消息由messages對象定義後.validate()已初始化表單上的插件,你將不得不使用的方法.rules('add')超過-騎它。

$('[name="foo"]').rules('add', { 
    messages: { 
     required: "yo! I'm required." 
    } 
}); 

DEMO:jsfiddle.net/3fLkf47u/

+0

謝謝清除 「郎」 的東西,我看到了它的地方使用,並圍繞此愚弄。 無論如何,我在問如何在「messages_es」文件中定義翻譯,現在我想我有我的答案,因爲我需要使用此添加方法覆蓋西班牙語的消息。歡呼夥伴進行適當的澄清! –

+0

查看[github]上所有支持的語言和翻譯密鑰(https://github.com/jquery-validation/jquery-validation/tree/master/src/localization) –