月份和天数未被翻译

时间:2014-08-26 19:51:57

标签: angularjs express fullcalendar momentjs

我正在尝试使用包中包含的语言文件翻译FullCalendar。为了使角度更简单,我使用插件ui-calendar。

为此,我按照doc

中的说明导入了语言脚本
<!-- bower:js -->
<script src="bower_components/jquery/dist/jquery.js"></script>
<script src="bower_components/angular/angular.js"></script>
... //other includes generated by bower
<script src="bower_components/moment/moment.js"></script>
<script src="bower_components/fullcalendar/dist/fullcalendar.js"></script>
<script src="bower_components/jquery-ui/ui/jquery-ui.js"></script>
<script src="bower_components/angular-ui-calendar/src/calendar.js"></script>
<!-- endbower -->
<!-- endbuild -->

<!-- FullCalendar language pack -->
<script src="bower_components/fullcalendar/dist/lang/fr-ca.js"></script>

但是,月份和日期没有被翻译。我确实设法使用"monthNames",“dayNames”等配置手动翻译标签,但IMO很难看,并且它不会翻译ui.bootstrap.datepicker。

根据我的理解,问题是那些我不会接受任何东西的人。我试图做'moment.lang('fr-ca')',但它并没有做太多。有人知道“米老鼠的伎俩”可以帮助解决这个问题吗?

  

注意:ui-calendar使用fullcalendar的v 1.6,其中不包含语言实用程序。所以我将fullcalendar@2.1.0添加到我的bower.json中。所有接缝都能正常工作,因为我直接调用fullcalendar,所以我看不出这会弄乱语言。

1 个答案:

答案 0 :(得分:5)

这是一个有效的傻瓜:http://plnkr.co/edit/AFpj79M1C6vOewSWLX8J

您还需要本地化角度,您可以在此处阅读文档:https://docs.angularjs.org/guide/i18n 为了使其工作,我在plunkr文件i18n/angular-locale_fr-ca.js中添加了ng-fr-ca.js的代码。

查看ui-calendar的来源(第179行),您会看到它使用有角度的$locale服务来翻译日期,月份等。我已经向源添加了console.log,所以你可以看出

之间的区别
var dtf = $locale.DATETIME_FORMATS;
console.log(dtf);

$locale默认使用engglish。如果您加载其中一个i18n语言环境文件,则会将其翻译过来。