【发布时间】:2017-05-02 02:41:28
【问题描述】:
我看到 angular2 为其组件实现了 i18n,并且通过使用 i18n(以及它的所有相关属性,如 i18n-title、复数等),您可以国际化您的 html 模板。
但我想知道如何将打字稿代码提供的字符串国际化。例如,我有一个弹出窗口,根据我的后端抛出的错误,我会在其中打印一条不同的消息。该消息由绑定到我的模板的变量提供,我没有找到使用 angular2 国际化的方法来翻译该文本。
更好理解的简单示例:
typescript:
errorMessage: string = '';
private errorMapping: Map<number,String>;
onError(error): void {
this.errorMessage = errorMapping.get(error.code);
}
template:
<pop-up>{{errorMessage}}</pop-up>
有办法吗?
如果不是我以一种糟糕的方式实施它吗?我应该采取不同的做法吗?
非常感谢您的时间和回答。
【问题讨论】:
-
我建议使用 ng2-translate。
-
感谢您的建议,但我更喜欢官方的 Angular 实现而不是第三方库。
-
有 i18nSelect pipe 但它没有连接到来自 XLF 文件的消息,这些消息用于 i18n 的其余部分。第三方解决方案之所以存在,是因为 Angular i18n 支持非常有限,而且路线图也不是很有希望。
-
在这里查看我的答案stackoverflow.com/a/56075872/4399281
标签: angular typescript internationalization