2013-06-27 62 views
1

我希望用新字符覆蓋NLS文件(dijit/form/validate.js),或者替換某些NLS字符串映射。我希望這個文件被標準Dijits拾取。替換Dojo/Dijit NLS字符串

我不想刪除標準Dojo庫中的文件。我可以在djConfig中指定一個路徑來按順序搜索NLS文件的目錄,以便我的新文件被拾取而不是原始文件?如果是這樣,我該怎麼做?

或者我怎麼能在一個字符串的新定義混合即

取代:

missingMessage: "This value is required.", 

有:

missingMessage: "My string is here.", 

回答

1

如果你想從字面上你要求什麼做併爲i18n模塊選擇備用文件,則可以使用map property重新映射模塊ID(1.8 +):

var dojoConfig = { 
    map: { dijit: { 
     'dijit/form/nls/validate': 'my/form/nls/validate', 
     'dijit/form/nls/en/validate': 'my/form/nls/en/validate', 
     // ... etc 
    } } 
}; 

但是,對於驗證控件重寫消息的標準和推薦的方法是隻使用自己的值設置的消息屬性:

define([ 
    'dijit/form/ValidationTextBox', 
    'dojo/i18n!my/form/validate' 
], function (ValidationTextBox, myI18n) { 
    var instance = new ValidationTextBox({ missingMessage: myI18n.missingMessage }); 
    // ... 
}); 
+0

感謝您的答覆 - 我想我的問題將無法解答!我會在今天晚些時候嘗試你的建議:-)。我想替換小部件的所有實例的消息,以便映射文件可能是'最乾淨'的答案。 – vogomatix

+0

令人遺憾的是,第一種方法似乎不起作用。我可以看到它加載文件,但後來i18n似乎正在加載原始文件。它幾乎就像是通過加載頁面中途丟失了地圖,或者可能是因爲解析? – vogomatix

+0

您是否正在加載並使用原始文件作爲其他地方的依賴項? –