jQuery Datepicker本地化

Shi*_*pow 66 javascript localization jquery-ui internationalization jquery-ui-datepicker

我需要一个法语日历,我无法理解这个问题.我想我不是应该使用区域选项.但...

这是我的代码:

$(function() {
  $('#Date').datepicker({
      showMonthAfterYear: false,
      showOn: 'both',
      buttonImage: 'media/img/calendar.png',
      buttonImageOnly: true,
      dateFormat:'d MM, y'
    },
    $.datepicker.regional['fr']
  );
});
Run Code Online (Sandbox Code Playgroud)

Kip*_*Kip 70

该代码应该可以使用,但是您需要在页面中包含本地化(默认情况下不包括).在包含jQuery和jQueryUI 之后的<head>某个地方尝试将它放在你的标记中:

<script type="text/javascript"
        src="https://raw.githubusercontent.com/jquery/jquery-ui/master/ui/i18n/datepicker-fr.js">
</script>
Run Code Online (Sandbox Code Playgroud)

我无法找到jQueryUI网站上记录的位置,但是如果你查看这个演示的来源,你会发现他们就是这样做的.此外,请注意,包含此JS文件会将datepicker默认设置为法语,因此如果您只想要一些日语选择器使用法语,则必须将默认值设置为英语.

您可以在github找到所有语言:https: //github.com/jquery/jquery-ui/tree/master/ui/i18n

  • 您现在可以在github上找到它们,网址为https://github.com/jquery/jquery-ui/blob/master/ui/i18n/ (15认同)
  • 这是正确的事,非常感谢基普. (2认同)

Naj*_*hah 42

你可以这样做

 $.datepicker.regional['fr'] = {clearText: 'Effacer', clearStatus: '',
    closeText: 'Fermer', closeStatus: 'Fermer sans modifier',
    prevText: '&lt;Préc', prevStatus: 'Voir le mois précédent',
    nextText: 'Suiv&gt;', nextStatus: 'Voir le mois suivant',
    currentText: 'Courant', currentStatus: 'Voir le mois courant',
    monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin',
    'Juillet','Août','Septembre','Octobre','Novembre','Décembre'],
    monthNamesShort: ['Jan','Fév','Mar','Avr','Mai','Jun',
    'Jul','Aoû','Sep','Oct','Nov','Déc'],
    monthStatus: 'Voir un autre mois', yearStatus: 'Voir un autre année',
    weekHeader: 'Sm', weekStatus: '',
    dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'],
    dayNamesShort: ['Dim','Lun','Mar','Mer','Jeu','Ven','Sam'],
    dayNamesMin: ['Di','Lu','Ma','Me','Je','Ve','Sa'],
    dayStatus: 'Utiliser DD comme premier jour de la semaine', dateStatus: 'Choisir le DD, MM d',
    dateFormat: 'dd/mm/yy', firstDay: 0, 
    initStatus: 'Choisir la date', isRTL: false};
 $.datepicker.setDefaults($.datepicker.regional['fr']);
Run Code Online (Sandbox Code Playgroud)


小智 7

如果你想在区域本地化之外加入一些选项,你必须使用$ .extend,如下所示:

$(function() {
   $('#Date').datepicker($.extend({
      showMonthAfterYear: false,
      dateFormat:'d MM, y'
    },
    $.datepicker.regional['fr']
  ));
});
Run Code Online (Sandbox Code Playgroud)


Sal*_*n A 7

您必须扩展这样的区域选项(为了便于阅读,将代码拆分为多行):

var options = $.extend(
    {},                                  // empty object
    $.datepicker.regional["fr"],         // fr regional
    { dateFormat: "d MM, y" /*, ... */ } // your custom options
);
$("#datepicker").datepicker(options);
Run Code Online (Sandbox Code Playgroud)

由于工作方式的原因,参数的顺序很重要jQuery.extend.两个错误的例子:

/*
 * This overwrites the global variable itself instead of creating a
 * customized copy of french regional settings
 */
$.extend($.datepicker.regional["fr"], { dateFormat: "d MM, y"});

/*
 * The desired dateFormat is overwritten by french regional 
 * settings' date format
 */
$.extend({ dateFormat: "d MM, y"}, $.datepicker.regional["fr"]);
Run Code Online (Sandbox Code Playgroud)

PS:你还需要加载jQuery UI i18n文件:

<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/i18n/jquery-ui-i18n.min.js">
</script>
Run Code Online (Sandbox Code Playgroud)

  • 这正是解决我的问题的方法(即使显式设置,设置语言环境也会重置dateFormat选项).谢谢(很棒,你展示了非工作的例子). (2认同)