2016-11-08 63 views
0

我正在调整现有的jQuery UI 1.10.4 Datepicker以支持多种语言。我想使用官方翻译而无需修改,因此我可以在未来升级。但是,我还需要更改一些术语或添加缺少的术语。在运行时修改Datepicker翻译

我尝试这种:

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

我已验证$.datepicker.regional["es"]包含了新的价值观和buttonText是localisable(它工作正常,如果我就在jquery.ui.datepicker-es.js添加它)。所有内容都包含在jQuery(function(){...})包装中。但是我的自定义文本不会显示在任何地方。

我错过了什么?我需要重新初始化一些东西吗?

回答

1

你做区域的变化后,你应该将它们注册期运用的setDefaults功能:

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

检查下面的例子 - 在接下来的一个月按钮上的文字被改为“吧!”。

$.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" />

+0

就是这样,非常感谢你。在我真正的代码中,我决定循环'$ .datepicker.regional'中的非空键并刷新所有加载的语言 - 我希望这不是一个愚蠢的想法。 –

+0

我认为在我的回答中使用一个更有意义:) – Dekel

+0

我不相信谁会在以后编码的东西(它可能是我!):) –