使用angular-translate刷新翻译

时间:2014-05-20 21:20:37

标签: angularjs angular-translate

我使用angular translate代表i18n。

我正在处理的特定功能是更新图书的状态。在服务回调中,如果成功,我会将我的图书状态从Open更新为Closed。如果我查看范围(使用Batarang),我可以看到我的DOM元素:

<span translate="Closed" class="ng-scope">Open</span>

正如您所看到的,翻译价值正在更新,但翻译本身并不是自己发生的。我已经阅读了文档,并了解这是预期的行为。但是,我想知道的是应该我是如何刷新翻译的价值的?

目前,每次更新需要重新翻译的范围值时,我都会注入$translate服务并执行$translate.refresh()。我觉得这很笨重,可能不是我应该这样做的方式。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

为翻译创建一个公共服务,这将配置我们的翻译代码,特别是它将配置我们的翻译文件的位置。创建一个目录src / common / translation,以及一个文件src / common / translation / translation.js: http://technpol.wordpress.com/2013/11/02/adding-translation-using-angular-translate-to-an-angularjs-app/

angular.module('angularTranslateApp', ['pascalprecht.translate'])
  .config(function($translateProvider, $translatePartialLoaderProvider) {
    $translateProvider.useLoader('$translatePartialLoader', {
      urlTemplate: '/UI/assets/translation/{lang}/{part}.json'
    }
  });

$translateProvider.preferredLanguage('en-AU'); });

答案 1 :(得分:0)

你绝对不应该为此发布刷新。

做这样的事情:

<span> {book.state | translate} </span> 

鉴于您的图书模型具有反映其状态的成员国。 每当模型改变时,状态值将被重新翻译。