i18n via $.datepicker

This commit is contained in:
Sergei O. Udalov 2011-07-06 16:49:07 +04:00
parent 7fc1e166c5
commit f87648f7d4
4 changed files with 37 additions and 7 deletions

View file

@ -45,3 +45,11 @@ Here is an example of doing it within an element having an `id` of `calendar`:
}); });
To see a full list of all available options, please consult the [FullCalendar documentation »](http://arshaw.com/fullcalendar/docs/) To see a full list of all available options, please consult the [FullCalendar documentation »](http://arshaw.com/fullcalendar/docs/)
I18n
----
To localize fullCalendar You can use i18n for jquery datepicker.
$.fullCalendar.applyLocale($.datepicker.regional['ru']);

18
src/I18n.js Normal file
View file

@ -0,0 +1,18 @@
var applyLocale = function(locale) {
setDefaults({
isRTL: locale.isRTL,
firstDay: locale.firstDay,
monthNames: locale.monthNames,
monthNamesShort: locale.monthNamesShort,
dayNames: locale.dayNames,
dayNamesShort: locale.dayNamesShort,
buttonText: {
today: locale.currentText
}
});
}
$.fullCalendar.applyLocale = function(locale) {
applyLocale(locale);
}

View file

@ -44,6 +44,7 @@ js('Header.js');
js('EventManager.js'); js('EventManager.js');
js('date_util.js'); js('date_util.js');
js('util.js'); js('util.js');
js('I18n.js');
js('basic/MonthView.js'); js('basic/MonthView.js');
js('basic/BasicWeekView.js'); js('basic/BasicWeekView.js');

View file

@ -36,31 +36,34 @@ $.fn.fullCalendar = function(options) {
eventSources.push(options.events); eventSources.push(options.events);
delete options.events; delete options.events;
} }
options = $.extend(true, {}, options = $.extend(true, {},
defaults, defaults,
(options.isRTL || options.isRTL===undefined && defaults.isRTL) ? rtlDefaults : {}, (options.isRTL || options.isRTL===undefined && defaults.isRTL) ? rtlDefaults : {},
options options
); );
this.each(function(i, _element) { this.each(function(i, _element) {
var element = $(_element); var element = $(_element);
var calendar = new Calendar(element, options, eventSources); var calendar = new Calendar(element, options, eventSources);
element.data('fullCalendar', calendar); // TODO: look into memory leak implications element.data('fullCalendar', calendar); // TODO: look into memory leak implications
calendar.render(); calendar.render();
}); });
return this; return this;
}; };
// function for adding/overriding defaults // function for adding/overriding defaults
function setDefaults(d) { var setDefaults = function(d) {
$.extend(true, defaults, d); $.extend(true, defaults, d);
} }
$.fullCalendar.setDefaults = function(d) {
setDefaults(d);
}