我想在我的模板上显示我的组件的属性,但是根据用户的语言环境进行翻译。
例如,假设我的组件将属性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)这是我需要的,但它需要我在我的模板上复制相同的选择条件。
答案 0 :(得分:1)
第三方库https://github.com/ngx-translate/core允许您通过角度实际比标准i18n更多。你可以懒得加载翻译,甚至不用重启服务器;在数据库级别/应用程序级别上存储翻译+使用其他有用的功能。