使用i18nSelect管道支持多个语言环境

时间:2017-12-22 15:06:33

标签: angular

我想在我的模板上显示我的组件的属性,但是根据用户的语言环境进行翻译。

例如,假设我的组件将属性fruit设置为以下值之一: apple pinapple watermelon

我想在我的模板上显示此属性,同时将其值转换为用户的语言。

我可以使用i18nSelect管道实现这一点:

Your fruit: {{fruit | i18nSelect:fruitMap}}

在我的组件上:

fruitMap = { apple: 'maçã', pineapple: 'abacaxi', watermelon: 'melancia' }

工作正常。但我想支持多种语言环境。拥有多个翻译文件非常棒,每种语言一个,并在服务器启动时从其中一个中选择(类似ng start --locale=pt)。

使用i18nSelect管道是否可行?

我知道Angular支持国际化(https://angular.io/guide/i18n),但我无法在文档中找到如何翻译插值属性的值。似乎只是在模板上翻译静态文本。除了选择语法(https://angular.io/guide/i18n#translate-select)这是我需要的,但它需要我在我的模板上复制相同的选择条件。

1 个答案:

答案 0 :(得分:1)

第三方库https://github.com/ngx-translate/core允许您通过角度实际比标准i18n更多。你可以懒得加载翻译,甚至不用重启服务器;在数据库级别/应用程序级别上存储翻译+使用其他有用的功能。