Intellij Idea 建议使用哪个工具来保持XLIFF(.xlf)翻译文件的同步?

ohtdti5x  于 2023-03-17  发布在  其他
关注(0)|答案(1)|浏览(153)

我有一个国际化的Angular项目,使用Angular内置的i18 n框架,其中的翻译文件如下所示:

消息.中文.xlf

<trans-unit id="7380085404224719862" datatype="html">
   <source>Place a new request</source>
   <context-group purpose="location">
       <context context-type="sourcefile">src/app/components/foo.component.html</context>
       <context context-type="linenumber">13</context>
   </context-group>
</trans-unit>

消息.de.xlf

<trans-unit id="7380085404224719862" datatype="html">
   <source>Place a new request</source>
   <target>Einen neuen Antrag stellen</target>
   <context-group purpose="location">
      <context context-type="sourcefile">src/app/components/foo.component.html</context>
      <context context-type="linenumber">13</context>
   </context-group>
</trans-unit>

其中messages.en.xlf是由ng extract-i18n工具自动生成的源文件,其他翻译文件(如messages.de.xlf)是由人工翻译人员手动添加翻译后的副本。
据我所知,此工作流存在3个问题:
1.如果我在foo.component.html的开头添加或删除了一些行,那么上述文件中引用的行号将发生变化。对于源文件,这将在我下次重新运行ng extract-i18n工具时自动发生,但对于其他翻译文件,我需要手动更新它们吗?
1.如果我向应用程序添加新文本,这将导致源文件中出现新的<trans-unit>,然后我需要手动将其复制到其他翻译文件中。
1.同样,如果我从应用程序中删除一个文本,我将需要从其他翻译文件中手动删除相应的<trans-unit>
很明显,所有3个问题都可能(而且应该)很容易被一些工具自动化,因为手动同步这些文件是非常耗时和容易出错的。然而,我震惊地看到IntelliJ似乎没有提供这个功能,我尝试过的所有i18 n/localization/xliff IntelliJ插件也是如此。我错过了什么吗?你用哪些工具来保持你的。xlf文件是否同步?

flseospp

flseospp1#

我正在使用ng-extract-i18n-merge,我对它的工作方式非常满意。它处理一切都非常透明,并提供了大量的配置。只要我改变了一个翻译id或内容,这些改变就会反映在我所有的xlf文件中,使它们保持完美的同步。
当然这是一个开发依赖项,不是intellij的插件,但我想这并不重要。如果你需要一个编辑翻译的小工具,给予TinyTranslator。

相关问题