假设我们设置并使用与documentation类似的角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需要一个完整的翻译文件来用给定的语言构建项目。
你所能做的就是创建一个只有特定翻译的messages.de_AT.xlf.partial
文件,然后找到/创建一些工具来将你的基础德语翻译messages.de.xlf
与messages.de_AT.xlf.partial
合并,从而得到一个完整的messages.de_AT.xlf
。
我快速浏览了一下,找不到任何现成的工具来进行合并,但是由于xlf文件实际上是xml文件,所以您可能可以编写自己的脚本来完成合并。