2012-04-24 26 views
17

Necesito cambiar los nombres de mes de nombres cortos a nombres largos en mi jQuery UI datepicker.jQuery UI datepicker: ¿Cómo cambiar los nombres de los meses en el menú desplegable de nombres cortos a largos?

Mis propiedades son:

$.datepicker.regional['de'] = { 
    prevText: '<zurück', 
    nextText: 'vor>', 
    monthNames: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 
      'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'], 
    monthNamesShort: ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 
      'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'], 
    dayNames: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'], 
    dayNamesShort: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'], 
    dayNamesMin: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'], 
    weekHeader: 'Wo', 
    dateFormat: 'dd.mm.yy', 
    firstDay: 1, 
    changeMonth: true, 
    changeYear: true, 
    yearRange: "-0:+2", 
    isRTL: false, 
    showMonthAfterYear: false, 
    minDate: 0 
}; 

$.datepicker.setDefaults($.datepicker.regional['de']); 
var dates = $("#von, #bis").datepicker({ 
    showOn: "button", 
    buttonImage: "calendar.png", 
    buttonImageOnly: true, 
    buttonText: 'Datum w\u00E4hlen', 
    onSelect: function (selectedDate) { 
     var option = this.id == "#von" ? "minDate" : "maxDate", 
       instance = $(this).data("datepicker"), 
       date = $.datepicker.parseDate(
        instance.settings.dateFormat || 
        $.datepicker._defaults.dateFormat, 
        selectedDate, instance.settings); 
     dates.not(this).datepicker("option", option, date); 
    } 
}); 

En el momento en el calendario sólo muestra los nombres de mes corto, como "apr" en lugar de "abril" de la lista desplegable.

Tal vez estoy sobrescribiendo los nombres largos predeterminados con algún fragmento de código?

Por favor ayuda.

Respuesta

30

Utilice la propiedad monthNamesShort y asígnele los nombres que desee.

En mi caso, he querido mostrar, en el mes desplegable, el mes nombre largo, en portugués:

monthNamesShort: [ "Janeiro", "Fevereiro", "Março", "Abril", 
        "Maio", "Junho", "Julho", "Agosto", "Setembro", 
        "Outubro", "Novembro", "Dezembro" ] 
+3

Esta respuesta debería ser la respuesta aceptada. –

+0

Hice lo mismo en ruso. –

+0

¿Cómo configurarlo globalmente? –

0

En muchos lugares que utilizan la dateFormat para determinar qué lista para su uso. Desafortunadamente en este bloque de código no fueron consistentes al usarlo. Hice un ajuste a seguir su método en el _generateMonthYearHeader (alrededor de la línea 8985):

reemplazar

monthNamesShort[ month ] 

con

(inst.settings.dateFormat.match(/MM/) ? monthNames : monthNamesShort)[ month ] 
Cuestiones relacionadas