我正在使用Angular国际化(i18n),用两种不同的语言(fa / en)开发一个应用程序。
- 目标是将这两个不同的构建部署到服务器的子文件夹中(example.com / en / ...)
- 这些构建不仅在翻译上有所不同,而且样式和布局方向也不同。
我可以像这样提供任何本地化(语言)
"architect": {
"build": {
...
,
"configurations": {
...
},
"fa": {
"localize": ["fa"],
"baseHref": "/fa/"
},
"en": {
"localize": ["en"],
"baseHref": "/en/"
}
}
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "app:build"
},
"configurations": {
"production": {
"browserTarget": "app:build:production"
},
"en": {
"browserTarget": "app:build:en"
},
"fa": {
"browserTarget": "app:build:fa"
}
}
},
"extract-i18n": {
"builder": "@angular-devkit/build-angular:extract-i18n",
"options": {
"browserTarget": "app:build"
}
},
...
}
然后
ng serve --configuration=en
可以工作,我将其放在http://localhost:4200/en/...
上。但是我需要同时服务两种语言,以便在开发过程中处理样式、正确布局和检查翻译。如果我尝试在构建配置"localize": ["fa","en"]
中执行此操作,则会出现以下错误。
An unhandled exception occurred: The development server only supports localizing a single locale per build
到目前为止,我得到的最好的解决方案是在不同的端口上多次运行ng serve ..
,以在不同的语言环境下拥有两个开发服务器实例,但这有点丑陋。我希望有一个更好的解决方案。
ng serve
之外,您还可以为每个区域设置 http 代理,以便所有语言版本都可以在单个本地主机端口上访问。 - xemlock