使用带参数的ng2-translate

时间:2016-11-02 20:39:31

标签: angular ng2-translate

我尝试在模板中使用ng2-translate参数:

{{ test | translation:{value:param} }}

它完美无缺。我想在我的打字稿中建立我的翻译,我看到了这个功能:

get(key: string|Array<string>, interpolateParams?: Object): Observable<string|Object>

但我不知道如何使用它。

你们有什么例子吗?

我的情况是:

en.json:

{ "test":"the level of {value1} and {value2} is low."}

打字稿:

let message:string = "";
let parametres = ["1", "2"];
this._translateService.get("test", parametres).subscribe((res:string) => {
    message += res;
});

我想:1和2的水平很低。

非常感谢。

2 个答案:

答案 0 :(得分:9)

在en_US.json文件中,按照以下格式包含x和y(这将是我们要用数字替换的参数。

{"Showing": "Showing {{x}} of {{y}}"}

在component.ts中,min,max将是我们填充的变量。

  min: number;
  max: number;

以下将成为component.html的一部分

<span> {{ 'Showing' | translate:{x: min, y: max} }} </span>

答案 1 :(得分:4)

当您将键/值作为参数而不是数组提供时,它会起作用。

打字稿:

let message:string = "";
let parametres = {value1: "1", value2: "2"};
this._translateService.get("test", parametres).subscribe((res:string) => {
    message += res;
});

同样根据文档,您应该使用双花括号声明占位符。

en.json:

{ "test": "the level of {{value1}} and {{value2}} is low." }