更改 angular 中的默认语言环境

Change default Locale in angular

我用法语构建了一个 angular 应用程序,所以现在我想使用国际化 (i18n) 以其他语言(如 En)提供它,所以问题是 Angular 的默认语言环境是是的,当我写这个 <span i18n>Mes endroits</span> 时,我有这个

<file source-language= "en-US" datatype="plaintext" original="ng2.template">// source is English
    <body>
      <trans-unit id="4df6e2173dc9d9f8c60481273cf3371981e60fde" datatype="html">
        <source>Mes endroits</source> ... // but this is in french

我希望源语言是 fr 并提供例如 messages.en.xlf

so can I change the default locale to fr , or I have to rewrite my code in English and provide messages.fr.xlf

这可以帮助您 ngx-translate/ng2-translate,这个库在 angular 项目中很常见。

个人比较喜欢这样翻译。

您将能够使用翻译管道。像这样

<p>{{ 'myPlaces' | translate }}</p>

并在 fr.json 中定义:

{ 'myPlaces' : 'Mes endroits' }

我让你查资料

这是angular提供的文档。

Stackblitz link

在 app.module.ts 中将此添加到提供商中:

{ provide: LOCALE_ID, useValue: 'de-DE'}

这应该可以通过在 angular.json 文件中设置 sourceLocale 来实现。在我的例子中,核心应用程序是德语的,所以文件的相关部分如下:

{
  "$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 文件的属性都正确。