Tho*_*sen 8 date angularjs angular-translate
使用AngularJS和angular-translate我试图在翻译文本中插入日期作为参数.
翻译包记录了基本任务:
<p>{{ 'MyText' | translate:{myDate:someControllerDate} }}</p>
Run Code Online (Sandbox Code Playgroud)
在本地化的json文件中使用它:
(english)'MyText': 'This is the date: {{myDate}}.'
(danish) 'MyText': 'Dette {{myDate}} er datoen.'
Run Code Online (Sandbox Code Playgroud)
这给了我:
(英文)这是日期:2015-04-29T00:00:00.
(丹麦语)Dette 2015-04-29T00:00:00 er datoen.
问题: 我想格式化日期以匹配语言(或文化,但现在语言将足够好).
期望的结果是:
(英文)这是日期:2015年4月29日.
(丹麦语)Dette 29-04-2015 er datoen.
我希望在这些方面有一个语法:
(english)'MyText': 'This is the date: {{myDate:MM-dd-yyyy}}.'
(danish) 'MyText': Dette {{myDate:dd-MM-yyyy}} er datoen.'
Run Code Online (Sandbox Code Playgroud)
也许:
<p>{{ 'MyText' | translate:{{myDate:someControllerDate | translate:'MyDateFormat'}} }}</p>
Run Code Online (Sandbox Code Playgroud)
同
(english)'MyDateFormat': 'MM-dd-yyyy'
(danish) 'MyDateFormat': 'dd-MM-yyyy'
Run Code Online (Sandbox Code Playgroud)
有没有办法实现所需的结果,最好不必格式化控制器内的日期(保持逻辑和视图分离)?
mie*_*sol 12
假设您有以下angular-translate翻译定义:
//de
"with_date": "German: {{date|date:'short'}}"
//en
"with_date": "English: {{date|date:'medium'}}"
Run Code Online (Sandbox Code Playgroud)
然后在视图中你可以做到:
<h1>{{ 'with_date'|translate:{date:today} }}</h1>
Run Code Online (Sandbox Code Playgroud)
凡today在控制器即定义:
$scope.today = new Date();
Run Code Online (Sandbox Code Playgroud)
假设您已加载angular-locale_*了正确的区域设置,日期将以特定语言/国家/地区的格式进行格式化.
这是一个演示.
说到angular(ngLocale)内置的本地化机制是非常有限的,当涉及到日期时,你可以用moment.js完成奇迹