【问题标题】:AngularJS translate object attributeAngularJS 翻译对象属性
【发布时间】:2016-10-18 16:45:15
【问题描述】:

在我的角度指令中,我有一个具有 2 个属性的对象:object.title_en(英文标题)和 object.title_fr(法文标题)。如何根据我通过 $translate.use() 获得的当前语言显示并继续显示正确​​的标题?

编辑

这是我的 HTML 模板:

<div layout="column"> <div> {{object.title_fr | limitTo: 50}} </div> <div> {{object.description_fr | limitTo: 150}} </div> </div>

这是我得到的 JSON 对象:

{ "title_en" : "Title in english", "title_fr" : "Title in french", "description_en" : "Description in english", "description_fr" : "Description in french" }

并且我希望能够根据当前语言 $translate.use() 将其翻译成英文。

【问题讨论】:

  • 嗨,Annelhote,您可能想尝试发布您的代码的最小、完整和可验证的示例。这可以帮助人们准确地看到您正在尝试做什么,并表明您为实现目标付出了一些努力。当人们看到提问者付出了一些努力时,他们更有可能提供帮助。 stackoverflow.com/help/mcve
  • 您需要为每种语言使用一个 JSON 对象。请参阅下面的答案。

标签: angularjs internationalization


【解决方案1】:

将您的 JSON 对象更改为两个单独的对象。然后为每种语言指定使用哪一种。

这是一个例子:

myModule.config(['$translateProvider', function($translateProvider) {
    var language_fr={
        "title" : "Title in french",
        "description" : "Description in french"
    };

    var language_en= {
        "title" : "Title in english",
        "description" : "Description in english",
    };

    $translateProvider
        .translations('en', language_en)
        .translations('fr', language_fr)
        .preferredLanguage('en')
        .fallbackLanguage('en')
        .useSanitizeValueStrategy('escape')
    ;
}]);

然后你可以像这样在你的 HTML 中使用它: <div layout="column"> <div translate>title</div> <div translate>description</div> </div>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多