在运行时修改Datepicker转换

时间:2016-11-08 13:10:10

标签: jquery jquery-ui

我正在调整现有的jQuery UI 1.10.4 Datepicker以支持多种语言。我想使用官方翻译而不做任何修改,以便我将来能够升级。但是,我还需要更改一些术语或添加缺失的术语。

我正在尝试这个:

$.datepicker.regional["es"]["buttonText"] = "Foo!";
$('.is-a-date').each(function(){
    $(this).datepicker({
        buttonImage: '/img/datepicker.png',
        buttonImageOnly: true
    });
});

我已经确认$.datepicker.regional["es"]包含新值,buttonText是可本地化的(如果我在jquery.ui.datepicker-es.js添加它,它可以正常工作)。所有内容都包含在jQuery(function(){...})包装器中。但我的自定义文本不会出现在任何地方。

我错过了什么?我需要重新初始化吗?

1 个答案:

答案 0 :(得分:1)

在对区域进行更改后,您应该使用setDefaults函数注册它们:

$.datepicker.setDefaults($.datepicker.regional["es"])

检查下一个示例 - 下个月按钮上的文字更改为" Bar!"。



$.datepicker.regional["es"]["buttonText"] = "Foo!";
$.datepicker.regional["es"]["nextText"] = "Bar!";

$.datepicker.setDefaults($.datepicker.regional["es"])

$('.is-a-date').each(function(){
    $(this).datepicker({
        buttonImage: '/img/datepicker.png',
        buttonImageOnly: true
    });
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<script src="https://cdn.rawgit.com/jquery/jquery-ui/master/ui/i18n/datepicker-es.js"></script>

<input class="is-a-date" />
&#13;
&#13;
&#13;