2016-10-18 3 views
1

В моей угловой директиве у меня есть объект с 2 атрибутами: object.title_en (название на английском языке) и object.title_fr (название на французском). Как отображать и отображать правильный заголовок в соответствии с текущим языком, который я получаю через $ translate.use()?AngularJS перевод объекта attibute

EDIT

Вот мой шаблон 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 language $ translate.use().

Большое спасибо заранее,

+0

Привет Annelhote, вы можете попробовать размещение Minimal, полный и проверяемый пример ваш код. Это помогает людям точно видеть, что вы пытаетесь сделать, и показывает некоторые усилия с вашей стороны для достижения цели. Люди, скорее всего, помогут, когда они смогут увидеть некоторые усилия со стороны акита. 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>

Смежные вопросы