#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 }));