我用法语构建了一个角度应用程序,所以现在我想使用国际化(i18n)在其他语言(例如En)中提供它,因此问题是Angular的默认语言环境是En-es,当我编写此{{ 1}},我有这个
<span i18n>Mes endroits</span>
并且我希望源语言为 fr ,并提供例如 messages.en.xlf
因此我可以将默认语言环境更改为fr,还是必须用英语重写代码并提供 messages.fr.xlf
答案 0 :(得分:2)
这应该可以通过在sourceLocale
文件中设置angular.json
来实现。在我的情况下,核心应用程序是德语,因此文件的相关部分内容如下:
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "projects",
"projects": {
"angular-client": {
"i18n": {
"sourceLocale": {
"code": "de",
"baseHref": ""
},
"locales": {
"en": {
"translation": "src/locale/messages.en.xlf",
"baseHref": ""
}
}
}
}
}
}
对我来说,这可以按预期工作,XLF文件都正确地归属了。
答案 1 :(得分:1)
以下是angular提供的文档。
Stackblitz link
在app.module.ts中将其添加到提供程序中:
{ provide: LOCALE_ID, useValue: 'de-DE'}
答案 2 :(得分:0)
这可以帮助您ngx-translate/ng2-translate,该库在有角度的项目中非常常见。
我个人比较喜欢这样翻译。
您将能够使用翻译管道。像这样
<p>{{ 'myPlaces' | translate }}</p>
然后在fr.json中定义:
{ 'myPlaces' : 'Mes endroits' }
我让您检查文档