角度翻译 - 格式日期

Posted

技术标签:

【中文标题】角度翻译 - 格式日期【英文标题】:Angular translate - format dates 【发布时间】:2016-05-06 17:18:34 【问题描述】:

我正在使用 Angular translate 进行应用本地化。我想根据用户的语言环境动态更改日期格式。

如果语言环境是法语:格式是dd/mm/yyyy 如果语言环境是英语/美国:格式是mm/dd/yyyy ...依此类推,具体取决于语言环境的默认日期格式

我怎样才能(干净地)使用 Angular translate 来实现这一点?

【问题讨论】:

【参考方案1】:

我终于结束了使用moment.js 和Angular moment。 日期可以格式化为默认的语言环境:

<td>user.lastLogin | amDateFormat:'l LT'</td>

要更改时刻区域设置,请使用以下命令:

amMoment.changeLocale(language);

不要忘记为您希望支持的语言导入即时语言环境文件:

<script src="assets/global/plugins/moment.min.js"></script>
<script src="jslib/angular-moment.min.js"></script>
<script src="jslib/moment/de.js"></script>
<script src="jslib/moment/es.js"></script>
<script src="jslib/moment/fr.js"></script>
<script src="jslib/moment/it.js"></script>
<script src="jslib/moment/pl.js"></script>
<script src="jslib/moment/ru.js"></script>
<script src="jslib/moment/zh-cn.js"></script>

并在您的应用中添加角矩模块:

var myapp = angular.module('myapp', ['angularMoment']);

【讨论】:

【参考方案2】:

也许我已经过时了,但我认为 angular-translate 与本地化没有任何关系。所以这是我的解决方案(但它非常干净)

如果您在每次重新加载页面时只加载一次,使用angular-i18n 就足够了。安装 js 文件并将其放入您的 html

bower install angular-i18n

<script src="/bower_components/angular-i18n/angular-locale_YOUR-LOCALE.js"></script>

如果你想动态加载它angular-dynamic-locale:

bower install angular-dynamic-locale

<script src="myPath/tmhDynamicLocale.js"></script>

你的 js:

angular.module('myApp', ['tmh.dynamicLocale', ...])

angular.module('myApp').controller('myController', [..., 'tmhDynamicLocale',
    function… 
        tmhDynamicLocale.set('en');
    
])

注意,请务必查看 repo 的自述文件以了解localeLocationPattern(string)的使用情况@

【讨论】:

【参考方案3】:

是的,有一个非常简单的方法可以做到这一点.. 不确定它是否干净,但可以清洁。

你可以使用 angular-translate 提供的interpolation,问题是你不能在插值字符串中使用function,但是你可以做一些很酷的事情。 在要插值的对象内部传递一个函数,并在插值时调用该函数

说你需要输入date

 'date' | translate:date:"28/01/2016" 
//instead of this
 'date' | translate:'date:"28/01/2016",func: func' //func comes from scope.

在你的$translateProvider.translations

$translateProvider.translations('en',
   'date': "func(date)"
);

这里是plnkr

【讨论】:

以上是关于角度翻译 - 格式日期的主要内容,如果未能解决你的问题,请参考以下文章

如何使用角度引导日期选择器显示正确的日期格式?

角度材料日期时间选择器更改显示日期时间的格式

javascript 角度日期格式

html 角度日期管道马来西亚格式

在角度 JS 中设置日期格式

typescript 打字稿中的角度转换日期格式