如何使用bower包含AngularJS I18n文件中的特定区域设置?

时间:2016-04-04 08:48:47

标签: javascript angularjs build gruntjs bower

我已使用bower install angular-i18n下载了角度I18n仓库,将其拉入我的bower_compontents并使用bower.json更新angular-i18n : 1.5.3文件,这是预期的行为。

我想在我的构建过程中包含一个特定的语言环境(例如de-de.js),以便每次运行grunt serve时都会将其与其他角度脚本一起包含在内此时此刻。任何想法如何实现这一目标?

感谢。

3 个答案:

答案 0 :(得分:1)

在我的情况下,我使用文件原始版本angular-locale_es.js的链接在我的凉亭文件中添加了我需要的特定版本。 bower.json

"dependencies": {
    "angular": "^1.5.0",
    "angular-mocks": "^1.5.0",
    ...
    "angular-locale_es": "https://raw.githubusercontent.com/angular/bower-angular-i18n/master/angular-locale_es.js",
     ...
  }

答案 1 :(得分:1)

在你的bower.json中,你可以添加一个覆盖部分,并指定你想要包含的i18n脚本。



{
  "name": "your application",
  "version": "1.1.2",
  "dependencies": {
    "angular": "#1.5.7",
    "angular-i18n": "#1.5.7",
	"moment": "#2.13.0",
  },
  "overrides": {
    "angular-i18n":{
      "main":[
        "angular-locale_de-ch.js"
      ]

    },
    "moment": {
      "main": [
        "moment.js",
        "locale/de.js"
      ]
    },
  }
}




答案 2 :(得分:0)

因此,要回答我自己的问题,如果您只需要其中一个语言环境,则可以将de-de.js语言环境的内容复制并替换为主angular-i18n文件,这是无忧无虑的需要一个复杂的方法。

但是,如果您有多个区域设置并希望根据条件做出决定,则可以使用此库设置默认区域设置

https://github.com/lgalfaso/angular-dynamic-locale/

之后你要做的就是为你的语言环境文件添加一个基本位置(例如我使用的是CDN):tmhDynamicLocaleProvider.localeLocationPattern('https://cdnjs.cloudflare.com/ajax/libs/angular-i18n/1.5.5/angular-locale_{{locale}}.js');

检查您的情况并将区域设置作为$translate.use('de');

传递

希望有所帮助!