Локализация jquery ui datepicker с файлом локализации i18n довольно проста, но значение свойства datepicker dateFormat
для свойства по умолчанию, найденного в файле hte i18n, является сложным. В следующем файле для Франции вы можете увидеть формат даты по умолчанию указав день, месяц, годНастройка формата даты на datepicker.js из файла локализации датпикера
(function(factory) {
if (typeof define === "function" && define.amd) {
// AMD. Register as an anonymous module.
define([ "../datepicker" ], factory);
} else {
// Browser globals
factory(jQuery.datepicker);
}
}(function(datepicker) {
datepicker.regional['fr'] = {
closeText: 'Fermer',
prevText: 'Précédent',
nextText: 'Suivant',
currentText: 'Aujourd\'hui',
monthNames: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin',
'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'],
monthNamesShort: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin',
'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'],
dayNames: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi'],
dayNamesShort: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'],
dayNamesMin: ['D','L','M','M','J','V','S'],
weekHeader: 'Sem.',
dateFormat: 'dd/mm/yy',
firstDay: 1,
isRTL: false,
showMonthAfterYear: false,
yearSuffix: ''};
datepicker.setDefaults(datepicker.regional['fr']);
return datepicker.regional['fr'];
}));
Это, как я устанавливаю файл локализации динамически во время выполнения.
if (General.CountryCode != "US") {
var scriptUrl = "/Scripts/datepicker-glob/datepicker-" + General.CountryCode.toLowerCase() + ".js";
console.log("fetching script: ", scriptUrl);
//now get datepicker local file and load it into the dom
$.getScript(scriptUrl).fail(function() {
console.log("script fetch failed");
});
console.log("loaded script. Setting defaults for datepicker");
//console.log("dateformat: ", $.datepicker.regional[General.CountryCode.toLowerCase()].dateFormat);
//now set the default on all datepickers
console.log($.datepicker);
//console.log($.datepicker);
$.datepicker.setDefaults(
$.extend(
{
'dateFormat': $.datepicker.regional[0].dateFormat
},
$.datepicker.regional[General.CountryCode.toLowerCase()]
)
);
console.log("defaults set.");
}
Следующая строка 'dateFormat': $.datepicker.regional[0].dateFormat
в $.extend
терпит неудачу, потому что $.datepicker.regional[0]
кажется неопределенным; Однако, следующая строка console.log($.datepicker);
возвращает следующее:
В соответствии с этим выстрелом он выглядит так, как будто мой код должен работать.
Как я могу правильно получить региональное значение DateFormat из динамически загружаемого файла i18n?