2016-10-18 252 views
1

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

编辑

这是我的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" }

,我想能够根据cu将其翻译成英文rrent语言$ translate.use()。

非常感谢,

+0

Annelhote嗨,你可能想尝试张贴的一个最小的,完整的和可验证的例子你的代码。这有助于人们确切地看到你正在尝试做什么,并显示出一些努力来实现目标。当人们看到提问者的一些努力时,他们更有可能提供帮助。 http://stackoverflow.com/help/mcve – gsteiner

+0

您需要为每种语言使用JSON对象。请参阅下面的答案。 – Toddsden

回答

0

将您的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>