2013-06-27 3 views
1

Я хочу переопределить файл NLS-файла (dijit/form/validate.js) с новым или заменить некоторые сопоставления строк NLS. Я хочу, чтобы этот файл был выбран стандартным Dijits.Замена строк NLS Dojo/Dijit

Я не хочу удалять файл в стандартной библиотеке Dojo. Могу ли я указать путь в djConfig для поиска каталогов для файлов NLS, чтобы новый файл был выбран вместо оригинала? Если да, то как мне это сделать?

Кроме того, как я могу смешать в новом определении строки т.е.

заменить:

missingMessage: "This value is required.", 

с:

missingMessage: "My string is here.", 

ответ

1

Если вы хотите сделать буквально то, что вы запрашиваете и выберите альтернативный файл для модулей i12n dijit/form/nls/validate, вы можете использовать map property для переназначения идентификаторов модулей (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

Вы загружаете и используете исходный файл в качестве зависимости в другом месте? –