2017-10-18 34 views
0

我需要翻译来自服务器的字符串,使用ngx/translatengx/translate - 只翻译一部分字符串

它工作正常,当我需要翻译一个字符串,但在某些情况下,我需要只翻译字符串的一部分。

例如: “你好吉文”或'你好约翰

,我需要只能翻译“你好”,并保留原来的名称是。 我想:

this.i18n.instant('hello {Shay}') 

,并在en.json文件: “你好{VAR}”: “你好{VAR}”

,但没有成功。 任何想法如何完成?

回答

0

您在查找参数化翻译。您不需要翻译键中的参数。试着这样说:

en.json:

"hello_name": "Hello {{name}}" 

控制器:

this.i18n.instant('hello_name', {name: 'Shay'}); 

或模板:

{{ 'hello_name' | translate: {name: 'Shay'} }} 

https://github.com/ngx-translate/core#3-define-the-translations

+0

阿达梅克感谢找你回复。你的建议只适用于我的双括号,但不能解决我的问题。重点是来自服务器的关键字包含名称,所以我没有像'hello_name'这样的永久关键字。当然我可以使用'hello_shay'.split('_'),但我正在寻找一种更干净的方式来做到这一点。 – Shay

+0

这两件事情需要分开,你不应该把它从服务器端作为一个字符串返回。你应该像我建议的那样做,绝对是最好的做法...... –

+0

我不知道你的用例,但你的服务器应该只返回你的值(如名称),它不应该关心“你好”部分,这是前端的工作。 –