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?
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