AngularJS 翻译 : Format dynamic dates

标签 angularjs date angular-translate

使用 AngularJS 和 Angular-translate,我尝试在翻译文本中插入日期作为参数。

翻译包记录了基本任务:

<p>{{ 'MyText' | translate:{myDate:someControllerDate} }}</p>

将其放在本地化的 json 文件中:

(english)'MyText': 'This is the date: {{myDate}}.'
(danish) 'MyText': 'Dette {{myDate}} er datoen.'

这给了我:

(英语)这是日期: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.'

或者也许:

<p>{{ 'MyText' | translate:{{myDate:someControllerDate | translate:'MyDateFormat'}} }}</p>

(english)'MyDateFormat': 'MM-dd-yyyy'
(danish) 'MyDateFormat': 'dd-MM-yyyy'

有没有办法实现所需的结果,最好不需要在 Controller 内格式化日期(保持逻辑和 View 分离)?

最佳答案

假设您有以下 angular-translate 翻译定义:

//de    
"with_date": "German: {{date|date:'short'}}"

//en    
"with_date": "English: {{date|date:'medium'}}"

然后在 View 中您可以执行以下操作:

<h1>{{ 'with_date'|translate:{date:today} }}</h1>

其中 today 在 Controller 中定义,即:

$scope.today = new Date();

假设您已加载 angular-locale_*如果区域设置正确,日期将以特定于语言/国家/地区的方式进行格式化。

这是一个demo .

话虽如此, Angular ( ngLocale )内置的本地化机制非常有限,当涉及到日期时,您可以使用 moment.js 创造奇迹。

关于AngularJS 翻译 : Format dynamic dates,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29937780/

相关文章:

angularjs - Angular Material 创建类似于 Bootstrap 警报的警报

javascript - Angular/Javascript 搜索对象键数组

r - 每季度生成日期序列

javascript - 如何在javascript中将毫秒解析为日期

javascript - 使用 Angular 平移进行本地化

javascript - 路由时在配置中的 templateUrl 上应用条件

json - Angularjs ng-repeat 在 JSON 的多层上进行重复过滤

android - 如何在sqlite数据库中添加日期

angularjs - 翻译 Ui-grid Angular

javascript - 使用angular JS检查数组是否为空的条件语句