我的目标是通过按钮将语言从
English (United States)
更改为 Indonesia
。
问题是教程没有演示更改语言的功能。
为什么我想使用 Angular i18n 而不是创建自定义助手?
我尝试过的:
将
localize: ["id"]
添加到 build
文件中的 angular.json
键并执行 ng serve
。
在这种情况下,i18n 可以工作。 角度.json
"development": {
"localize": ["id"]
"optimization": false,
"extractLicenses": false,
"sourceMap": true,
"fileReplacements": [
{
"replace": "projects/common/src/environments/environment.ts",
"with": "projects/common/src/environments/environment.development.ts"
}
]
}
文档说在运行时更改语言是不可能的。您需要构建并部署它(例如,使用 en.example.com、fr.example.com 等子域名)。然后只需通过路由即可更改语言。
还有另一个 i18n 包,名为 @ngx-translate,它支持此功能。
但是,有一种可能的解决方案,但已被弃用。有一个包@locl/core,它允许您手动加载翻译文件。例如,您可以将首选语言保存在本地存储中,然后基于此加载所需的翻译文件。但您仍然需要刷新页面才能应用更改。