angularjs过滤器' date'和$ locale服务

时间:2014-10-06 12:39:35

标签: angularjs filter localization internationalization

似乎angularjs嵌入了一些国际化的资源:

  

Angular支持i18n / l10n用于日期,数字和货币过滤器。   此外,Angular支持可本地化的多元化支持   通过ngPluralize指令。所有可本地化的Angular组件   取决于$ locale服务管理的特定于语言环境的规则集。

如果找到$locale service,但不知道如何在fr-fr中指定语言环境...

以下代码:

{{article.date_collected | date:'EEEE dd MMMM yyyy'}}

给予:

  

2014年10月6日星期一

但我想:

  

Lundi 06 Octobre 2014

有什么建议吗?

2 个答案:

答案 0 :(得分:26)

最后我在angular github页面上找到了响应: https://github.com/angular/bower-angular-i18n#bower-angular-i18n

编辑:更多关于什么对我有用的信息

在您的根应用目录中,从凉亭安装资源

bower install angular-i18n

如果您使用bower / buildjs将所有脚本压缩到<script>文件,则在此评论标记之间向index.html添加vendor.js

<!-- endbower -->
<script src="bower_components/angular-i18n/angular-locale_fr-fr.js"></script>
<!-- endbuild -->

那就是它。

答案 1 :(得分:8)

使用示例,按照 https://docs.angularjs.org/guide/i18n

1)从角度回购或通过凉亭获取您需要的区域设置,例如 //raw.githubusercontent.com/angular/bower-angular-i18n/master/angular-locale_fr-fr.js

2)在角度库之后包含它,例如

<script src="vendor/angular.min.js"></script>
<script src="vendor/angular-locale_fr-fr.js"></script>

3)现在每当您使用ng日期过滤器显示日期时,它将使用法语 - 法语,而不是美国英语格式,例如

{{date | date: 'fullDate'}}

还有一种以编程方式处理多个本地人的方法,它是在AngularJS主页“啤酒柜台”示例中完成的,

angular.module('app-us', ['app', 'ngLocal.us']);
angular.module('app-sk', ['app', 'ngLocal.sk']);

<script src="//code.angularjs.org/1.4.4/i18n/angular-locale_sk.js"></script>
<script>
angular.module('ngLocal.sk', [])._configBlocks.push(angular.module('ngLocale')._configBlocks[0]);
</script>
<script src="//code.angularjs.org/1.4.4/i18n/angular-locale_en-us.js"></script>
<script>
angular.module('ngLocal.us', [])._configBlocks.push(angular.module('ngLocale')._configBlocks[0]);
angular.bootstrap(document, ['ngRoute', 'homepage', 'ngLocal.us']);
</script>

这是一种更清洁的方法: https://github.com/lgalfaso/angular-dynamic-locale