i18n 在 Angular 4 中使用 AOT

i18n using AOT in Angular 4

我们有一个要求并要求使用 Angular 4,我正在努力实现国际化。由于我是 angular 的新手,所以我正在研究 i18n,发现带有 AOT 的 i18n 目前仅支持模板中的翻译。 当他们说支持仅在模板中时,这是什么意思,任何人都可以用一些例子来解释。

是否有任何好的示例来实现 i18n 以及基于浏览器区域设置进行呈现。

这意味着您无法从 TypeScript 代码中翻译文本;只能翻译静态 HTML 内容。

可以翻译

<p i18n>Text in a paragraph</p>
        ^^^^^^^^^^^^^^^^^^
<my-component title="My Title" i18n-title></my-component>
                     ^^^^^^^

无法翻译

if (hasError) {
  showErrorMessage('An error has occured');
                   ^^^^^^^^^^^^^^^^^^^^^^
}

如果你想从你的代码中翻译消息,你必须自己实现某种 I18nService,或者使用一个替代库,比如 ngx-translate

更多in-depth资讯,只关注官方docs