Angular js支持本地化

我试图在AngularJS中find支持多种语言的文档,但没有成功。 是否支持本地化?

看看angular-translate: https : //github.com/angular-translate/angular-translate

对于所有的DIY人:

你可以findangular度的本地化文件: 在这里

这些文件将帮助您使用内置的angular度filter: date , 货币和数量 。 惊人的…迄今。

现在你想使用自己的文本,比你所需要的是angular.jsdependency injection的力量。 创build一个新的文件,如:“myTexts_en_us.js”,并使用$ provide.value像这样:

$provide.value("myTexts", {firstText : "This is my localized text"}); 

详情请见:
http://jsfiddle.net/4tRBY/24/

对于真实世界的使用,你应该添加一个filter : http : //jsfiddle.net/4tRBY/41/

提示:

  • 确保手动插入新的本地化文件到您的html,JS或服务器。 (服务器是这里最好的select!)
  • 如果您包含一个angular度本地文件 ,则不需要在您的应用程序模块中进行设置。 (你将自动获得$ locale – 看小提琴)
  • 在你的$ provide-value中添加一个id key,并将其值设置为你在文件中使用的语言代码 – 这将会派上用场。

你正在寻找的是$ locale 。

实际上在angularjs主页的中间也有一个例子。

他们的例子中的一个片段:

 function BeerCounter($scope, $locale) { $scope.beers = [0, 1, 2, 3, 4, 5, 6]; if ($locale.id == 'en-us') { $scope.beerForms = { 0: 'no beers', one: '{} beer', other: '{} beers' }; } else { $scope.beerForms = { 0: 'žiadne pivo', one: '{} pivo', few: '{} pivá', other: '{} pív' }; } } 

我不确定这是否是一个“标准”,但这是一个开始。 如果你有很多本地化的工作,我想我会创build一个服务注入我的控制器…像这样的psuedo代码:

 app.service('myLocalization', ['$locale', function($locale) { var res = { 'help' : { 'en-us': 'help', 'es-mx': 'ayudame' }, 'beer' : { 'en-us': 'beer', 'es-mx': 'cerveza' } } return { getString: function(key) { return res[key][$locale.id]; } } }); 

只是为了完整的信息 – 从AngularJS 1.4stream的某个地方开始 – 将会有另外一个国际化的实施。 请看https://github.com/angular/i18n

你也可以检查一下:

https://github.com/angular-ui/ui-utils/pull/173

性能比目前可用的其他i18n库更好。

如果您在寻找i18n支持,那么您可以参考以下具有完整多语言能力且易于实施的项目。 看看github项目

angularjs-localizationservice