Angular 2+ i18n方言/重音

时间:2018-09-12 06:18:27

标签: angular internationalization angular6 language-translation angular-i18n

假设我们设置并使用类似于documentation的Angular i18n标签:

<div i18n>Hello World</div>

我们使用ng xi18n --i18nFormat=xlf

生成翻译

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

第一步的第一步是生成一个仅包含特定翻译内容的新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 6)

1 个答案:

答案 0 :(得分:1)

Angular需要完整的翻译文件才能以给定的语言构建项目。

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

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