我正在尝试使用包中包含的语言文件翻译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,所以我看不出这会弄乱语言。
答案 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
语言环境文件,则会将其翻译过来。