Перевести динамические значения с угловым 5

У меня есть файл перевода json для английского и один для немецкого.

Они выглядят так

ru.json

"COLORS": {
        "BLUE": "Blue",
        "RED": "Red",
        "GREEN": "Green"
}

то же самое для немецкого.

У меня есть объект человека, и он имеет цвета массива []. Человек может иметь синий и красный цвета. Тогда это будет выглядеть так:

person.colors[0] = "BLUE";
person.colors[1] = "RED";

Как видите, я сохранил в массиве ключи переводов, а не значения.

Теперь я перебираю цвета человека, например:

<div *ngFor="let color of person.colors">
    <p>{{'COLORS.color' | translate}}</p>
</div>

Но я не получаю выход. В чем может быть проблема?

Я уже просмотрел этот пост angular-translate: перевести динамическое значение, но это не так. Помоги мне.


person BlueCat    schedule 17.07.2018    source источник


Ответы (1)


Попробуйте этот способ

<div *ngFor="let color of person.colors">
    <p>{{'COLORS.'+color | translate}}</p>
</div>
person jack    schedule 17.07.2018
comment
Я получаю ключ как вывод, например СИНИЙ или красный... но мне нужны значения - person BlueCat; 17.07.2018
comment
да, я знаю. Это будет работать, если вы правильно настроили перевод, потому что я уже пробовал синтаксис выше - person jack; 17.07.2018
comment
Я также использую это, и я проверил его с другими переводами, и это работает. Я думаю, что это также должно работать для этого сценария, но я не знаю, как это сделать. Я должен перевести ключ, а затем указать его значение в качестве вывода. - person BlueCat; 17.07.2018
comment
В вашем коде TranslateModule.forRoot() в модуле приложения или общем модуле должно быть в модуле приложения - person jack; 17.07.2018
comment
TranslateModule.forRoot() в модуле приложения и используйте модуль Translate в общем модуле без forRoot(). Это должно быть сделано следующим образом (stackblitz.com/edit/) - person jack; 17.07.2018
comment
Я посмотрел на это, но это вообще не могло мне помочь :/ - person BlueCat; 17.07.2018
comment
вы сделаете демо plunker или stackblitz? - person jack; 17.07.2018