添加新的翻译

Adding new translations

我正在使用 FormatJS 来本地化我的应用程序。有一个方便的 CLI 可以从代码库中提取所有翻译。我可以生成 en.json 文件,并将其发送给翻译人员。当我取回翻译时,我可以将其保存为 fr.json。到目前为止,一切都很好。 我不明白的是当我在我的应用程序中添加新翻译时该怎么做。当我再次 运行 formatjs extract 时,我得到一个新的 en.js 文件,其中包含所有密钥。显然,我不想将整个内容再次发送给翻译人员。我可以将新的 en.json 与以前的版本进行比较,但这是一个如此基本的步骤,以至于我觉得我一定遗漏了什么?我在文档中没有找到任何关于此的信息。 FormatJS 如何处理这部分工作流程?

翻译服务似乎通常会负责比较数据。您将整个模板文件发送给他们,他们将所有已翻译的字符串(新字符串 + 已翻译字符串)发回翻译文件。至少这就是它与我公司使用的提供商合作的方式。 我的工作流程如下:

  • 使用 intl.formatMessage()
  • 在源代码中添加新的翻译
  • formatjs extract 创建新的 en.json 文件(模板文件)
  • 用提供商提供的新文件替换翻译文件(例如 es.json、fr.json 等)
  • formatjs compile生成机器文件

我还创建了一个测试以确保 en.json 中的每个键在每个翻译文件中都有对应的键。