我正在使用angular-translate为我的应用程序提供i18n,我能够正确翻译标签,按钮文本等.
我面临的问题是当我尝试根据所选语言区域设置更改日期时.日期从日期选择器中选择.
我面临的问题是当我尝试根据所选语言区域设置更改日期时.日期从日期选择器中选择.
日期被选入输入元素:
<input type="text" class="form-control" required="" ng-model="date" placeholder="{{ 'DATE_PLACEHOLDER' | translate }}" translate="{{ 'select_date'|translate:{date:date} }}"/>
占位符转换工作正常,但是当我更改语言时,日期格式没有发生变化.
我创建了一个描述当前场景的plunkr.
解决方法
>添加意大利语语言环境,我从
http://forum.html.it/forum/showthread/t-2912577.html复制它:
$.fn.datepicker.dates['it'] = { days: ["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato","Domenica"],daysShort: ["Dom","Lun","Mar","Mer","Gio","Ven","Sab","Dom"],daysMin: ["Do","Lu","Ma","Me","Gi","Ve","Sa","Do"],months: ["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","ottobre","Novembre","Dicembre"],monthsShort: ["Gen","Feb","Apr","Mag","Giu","Lug","Ago","Set","ott","Nov","Dic"],today: "Oggi",clear: "Cancella",weekStart: 1,format: "dd/mm/yyyy" };
// language codes convertor map var convertorMap = { 'en_US': 'en','it_IT': 'it' };
>在您的语言切换器功能中,删除当前的日期选择器并使用新语言初始化新的日期选择器,确保以新格式更新日期:
$scope.switchLanguage = function (key) { var dp = $('#datePicker'); // get current date var currentDate = dp.datepicker('getDate'); // update datepicker with new locale dp.datepicker('remove'); dp.datepicker({ autoclose: true,language: convertorMap[key] }); // restore current date according to the new locale dp.datepicker('update',currentDate); $translate.use(key); };
>要仅在翻译准备就绪时显示视图,请将您的包装元素(我使用< body>)更改为:
<body ng-controller="Ctrl" class="ng-hide" ng-show="showView"> ..... </body>
并在您的控制器中:
// will be fired when the service is "ready" to translate (i.e. loading 1st language) $translate.onReady(function () { $scope.showView = true; });
>关于jQuery datepicker的ng-model指令什么都不做,所以我删除了它,并将ng-model更新代码添加到初始datepicker函数:
$('#datePicker').datepicker({ autoclose: true }) // update ng model .on('changeDate',function(e) { $timeout(function () { $scope.date = $('#datePicker').datepicker('getUTCDate'); }); });
如果您在控制台消息中看到如下消息:
pascalprecht.translate.$translateSanitization: No sanitization strategy has been configured. This can have serIoUs security implications.
据说将在下一版本中修复:https://github.com/taigaio/taiga-front/issues/778
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。