问题
I need to translate strings coming from a server using ngx/translate.
It works fine when i need to translate a string but in some case i need to translate only part of the string.
For example: 'hello Shay' or 'hello John'
And i need to translate only 'hello' and leave the name as is. I tried:
this.i18n.instant('hello {Shay}')
and in the en.json file: "hello {var}": "Hello {var}"
but with no success. Any Ideas how it can be done?
回答1:
You are looking for parametrized translations. You do not need that parameter in the translation key. Try it like this:
en.json:
"hello_name": "Hello {{name}}"
controller:
this.i18n.instant('hello_name', {name: 'Shay'});
or in template:
{{ 'hello_name' | translate: {name: 'Shay'} }}
https://github.com/ngx-translate/core#3-define-the-translations
来源:https://stackoverflow.com/questions/46812294/ngx-translate-translate-only-part-of-a-string