Выражение привязки Angular 2 в строке (ng2-translate)

#angularjs #json #angular #localization

#angularjs #json #angular #локализация

Вопрос:

Я работаю над интернационализацией в angular 2 с использованием ng2-translate. У меня есть метка, которая содержит строку следующим образом:

 <label> Step {{stepNumber}} of {{totalSteps}} </label>
  

где stepNumber и totalSteps являются свойствами в моем компоненте.

для интернационализации я сохраняю ключ в своих файлах ресурсов и использую его с помощью канала ng2-translate.

ru.json:

 {
  "KEY_STEP_COUNT": "Step {{stepNumber}} of {{totalSteps}}"
}
  

fr.json:

 {
  "KEY_STEP_COUNT": "Étape {{stepNumber}} sur {{totalSteps}}"
}
  

используя его в моем html следующим образом:

 <label> {{ 'KEY_STEP_COUNT' | translate}} </label>
  

Результат, который я получаю,

en:

 "Step {{stepNumber}} of {{totalSteps}}"
  

FR:

 "Étape {{stepNumber}} sur {{totalSteps}}"
  

Ожидаемый результат:

en:

 "Step 1 of 11"
  

FR:

 "Étape 1 sur 11"
  

Возможно ли добавить выражение в привязку к строке с помощью angular2?

Я хочу использовать привязки angular2, а не string.замените, если это возможно.

Спасибо за любую помощь!!!

Комментарии:

1. Привет, шейхспир, не могли бы вы поделиться основами того, как вы настроили ng2-translate для angular2.. Я зашел так далеко со своей последней попыткой, но в итоге возникла проблема с глобальной регистрацией канала перевода в модуле с использованием transle-module.

Ответ №1:

Вы должны добавить объект в качестве параметра канала, например :

{{ 'KEY_STEP_COUNT' | translate: {stepNumber: 15, totalSteps: 25} }}

Комментарии:

1. Отлично!!! Спасибо. кроме того, чтобы добавить к этому, мы можем использовать TranslateParser в type script . this.parser.interpolate(this.translateService.instant("KEY_STEP_COUNT"), { maxUploadSize: maxUploadSize }));