Как передать переменную с помощью $ localize - PullRequest
2 голосов
/ 06 мая 2020

Я использую i18n для перевода своего приложения Angular 2. Мне нужно отправить переменную в модуль перевода из ts.

У меня есть следующий trans-unit:

<trans-unit id="summary_hotel_tax" datatype="html">
    <source>In <x id='INTERPOLATION' equiv-text='{{ citiesList }}'/> are taxes</source>
    <target>A <x id='INTERPOLATION' equiv-text='{{ citiesList }}'/> pagare tassa turistica</target>
   </trans-unit>

Я пытался сделать следующее в моем hotel.ts (component ):

$ localize`:@@summary_hotel_tax:In $ {citiesList} are taxes`;

Но не работает.

Я получаю сообщение об ошибке:

ERROR in There is a placeholder name mismatch with the translation provided for the
message "summary_hotel_tax" ("In {$PH} are taxes").The translation contains a
placeholder with name INTERPOLATION, which does not exist in the message.

Я понимаю, что, возможно, это не будет интерполяцией при использовании $ localize, и в этом случае, как мне структурировать свой транс-блок, чтобы отправить ему переменную из $ localize.

1 Ответ

2 голосов
/ 06 мая 2020

Я нашел следующее решение, и оно сработало для меня:

$localize`:@@identification_trans_unit: Text text ${variable}:INTERPOLATION: another text`;

Идентификатор должен быть помещен рядом с переменной, в данном случае:

 ${variable}:INTERPOLATION:
...