1

我们有一个自定义设置来处理翻译,在构建时我们提取翻译,下载它们并在运行时替换它们。基本上,我们使用 babel 插件提取翻译标签,然后一旦我们拥有所有标签,就会为每种语言生成一个包含它们的文件。

例子

  <Trans
    tag="tag_name"
    variables={{
      var1,
      var2
    }}
  />

生成这样的标签列表

[
  {
    "tag": "tag_name"
  }
]

然后为每种语言获取标签的值。翻译值当前是每个标签的 javascript 函数。目前,我们为整个应用程序的每种语言生成 1 个翻译包。

然而,这个解决方案是不可扩展的,因为这会导致大量的翻译包。因此,我们想按捆绑/块拆分它。

为了解决这个问题,我们希望将翻译数据包含在块/包中。我们检查代码并提取翻译标签并找出哪些标签属于哪个块。为此,我们构建了一个插件,可以optimizeTree在编译中挂钩到钩子中。

在此之后,我们要将它们添加到相应的块中并将它们包含在代码中。

为此,我们面临几个问题:

  • 有没有办法避免每种语言的构建过程?基本上一旦生成了块/包,我们可以将翻译数据添加到其中吗?我们想为每种语言生成一个块。所以我们必须为每种语言复制一些代码块'n'次。我们如何以优化的方式做到这一点。

  • 如何确保对文件的导入解析为导入翻译的文件?

4

0 回答 0