首页 > 解决方案 > 如何将 ICU 格式的字符串转换为 TMX(翻译记忆交换)文件?

问题描述

我正在尝试将多个数据源和语言环境聚合到一个TMX 翻译记忆库文件中。

我似乎找不到任何关于如何转换为 TMX 格式的好的文档/现有工具。这些转换器是我发现的最接近的东西,但它们似乎不足以格式化 ICU 语法

现在我已经将我的字符串提取为 JSON 格式,看起来像这样:

{
  foo_id: {
    en: "This is a test",
    fr: "Some translation"
  },
  bar_id: {
    en: "{count, plural, one{This is a singular} other{This is a test for count #}}",
    fr: "{count, plural, one{Some translation} other{Some translation for count #}}"
  }
}

根据有多少翻译供应商在提交内容时允许 ICU 格式化,然后将他们的 TM 导出为.tmx文件,感觉这一定是一个已解决的问题,但信息似乎很少,有人有这方面的经验吗?我正在使用formatjs编写 ICU 字符串。

标签: localizationinternationalizationtranslationicuformatjs

解决方案


由于 TMX 仅真正支持带有简单占位符(不是复数形式)的普通段,因此从 ICU 转换为 TMX 并不容易。

翻译工具对 ICU 的支持似乎相当不完整,但还有另一种格式可以做类似的工作并且有更好的支持:.po gettext。通过 .po 访问 TMX 可能有效:

  1. 使用此工具ICU2po将 ICU 转换为 .po 格式
  2. 将 .po 文件导入 TMS,例如Phrase或 CAT 工具,例如Trados
  3. 运行人机翻译流程
  4. 导出 TMX

推荐阅读