【问题标题】:Refreshing translations using angular-translate使用 angular-translate 刷新翻译
【发布时间】:2014-05-20 21:20:37
【问题描述】:

我在 i18n 中使用 angular translate

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

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

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

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

有什么想法吗?

【问题讨论】:

    标签: angularjs angular-translate


    【解决方案1】:

    您绝对不应该为此发出刷新。

    只需这样做:

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

    鉴于您的图书模型有一个成员状态来反映它的状态。 每当模型发生变化时,状态的值都会被重新翻译。

    【讨论】:

      【解决方案2】:

      创建一个通用的翻译服务,这将配置我们的翻译代码,特别是它会配置我们翻译文件的位置。创建目录 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'); });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-11-24
        • 2016-05-15
        • 1970-01-01
        • 2015-08-31
        • 1970-01-01
        • 2022-06-23
        • 2014-02-27
        • 1970-01-01
        相关资源
        最近更新 更多