Angular 2+ 国际化 dialects/accents

Angular 2+ i18n dialects/accents

假设我们设置并使用类似于 documentation:

的 Angular i18n 标签
<div i18n>Hello World</div>

我们使用 ng xi18n --i18nFormat=xlf

生成翻译

到目前为止一切顺利,现在我们要开始为 dialects/accents 生成特定的翻译,例如de_AT(奥地利德语)。在我们的应用程序中,这些很少。因此,为了保持翻译文件的可维护性,我们不想为每种方言生成一个全新的 .xlf,而是使用一个基本的 messages.de.xlf 并以某种方式从那里转移 accents/dialects。

首先想到的第一步是生成一个新的 messages.de_AT.xlf 只包含那些特定的翻译,例如:

<trans-unit id="5d9f8[...]f66d3e" datatype="html" approved="yes">
  <source>Hello World</source>
  <target state="translated">Griasdi Welt</target>
  <context-group purpose="location">
    <context context-type="sourcefile">src/app/hello-world.component.ts</context>
    <context context-type="linenumber">16</context>
  </context-group>
</trans-unit>

但不知道该怎么做以及该怎么做。所以我正在寻找一些最佳实践技巧或示例项目。提前致谢!

Angular 需要一个完整的翻译文件来构建给定语言的项目。

您可以做的是创建一个仅包含 AT 特定翻译的 messages.de_AT.xlf.partial 文件,然后 find/create 一些工具将您的基础德语翻译 messages.de.xlfmessages.de_AT.xlf.partial 合并,导致完整的 messages.de_AT.xlf.

我快速浏览了一下,找不到任何现成的工具来进行合并,但由于 xlf 文件实际上是 XML 文件,您可能可以编写自己的脚本来执行此操作。