Хорошая практика с Angular Translate

Я пытаюсь использовать угловой перевод, и у меня есть вопрос о наилучшей практике. Лучше всего использовать ключ для такой строки:

app.config(function($translateProvider) {
  $translateProvider.translations('en', {
    HEADLINE: 'Hello there, This is my awesome app!',
    INTRO_TEXT: 'And it has i18n support!'
  });
});

и

<h2>{{ 'HEADLINE' | translate }}</h2>
<p>{{ 'INTRO_TEXT' | translate }}</p>

в отличие от чего-то вроде:

<h2 ng-bind="'Hello there, This is my awesome app!' | translate"></h2>

и если да, то почему один метод лучше, чем другой? Необходимо ли использование ключа для многоязычной поддержки?


person Jane    schedule 16.06.2015    source источник
comment
пример заимствован из link   -  person Jane    schedule 16.06.2015
comment
Разве это не ng-bind="'HEADLINE'|translate"? Насколько я знаю, ключ все же нужен в angular-translate. (Хотя казалось бы, что это работает, потому что будет отображаться Hello there, This is my awesome app!, потому что этот ключ не найден.)   -  person Daniel Haley    schedule 16.06.2015


Ответы (1)


Я предпочитаю короткие клавиши вместо английского текста в качестве ключа. Это взорвет ваш HTML и ваш JS-файл конфигурации. Когда вы используете короткие клавиши, вы также можете вкладывать ключи, например.

{
  user: {
   name: 'Name', 
   email: 'E-Mail'
  }
} 

и используйте его так в своем HTML

<p translate="user.name"></p>

и вы должны использовать директиву вместо фильтра. вот почему: https://github.com/angular-translate/angular-translate/wiki/Getting-Started#using-translate-directive

person Betty St    schedule 16.06.2015
comment
Если вам нужна платформа для перевода ваших текстов, посетите lingohub.com ;) - person Betty St; 22.07.2015
comment
это платформа, на которой вы можете переводить английские тексты на другой язык - для каждого языка будут созданы файлы JSON.. если у вас есть en.json - например. de.json, fr.json будут сгенерированы - person Betty St; 23.09.2015