昨天,我们讨论了如何更改Angular应用程序的语言环境。下一步是通过将所有文本翻译成不同的语言,使我们的应用程序完全国际化。
而Angular有它的本地化的实现要国际化应用程序,用于此类任务的最流行的库是ngx-translate。

为什么不使用Angular的内部实现呢?主要原因是Angular会为每个语言环境构建应用程序的一个版本。因此,如果你必须支持20个不同的语言环境,你的Angular构建将会输出20个不同的应用程序。这意味着更改站点将导致应用程序的完全重新加载。这也意味着更改翻译需要对应用程序进行完整的重新构建和重新部署。
ngx-translate更加灵活,因为它依赖管道、指令和服务在运行时而不是在构建时翻译文本。下面是一些例子:
与TranslateService
:

与TranslatePipe
:

与TranslateDirective
:

翻译来自特定的文件,其中翻译键(“你好”
在我的例子中)映射到每种语言中的实际值。ngx-translate
支持开箱即用的不同格式(例如JSON和阿宝).
这里有一个存储在en.json:

同样的法语翻译fr.json:

我们要做的就是指出翻译文件的位置和ngx-translate
将根据需要根据地区下载它们。
定义默认情况下支持哪种语言以及使用哪种语言都可以使用TranslateService
来自图书馆:

你可以看到一个活生生的例子ngx-translate
在Stackblitz这里。如果你想试试,可以用我的ngx翻译一步一步的教程。