我可以使用 Rollup 为 Svelte 应用程序生成 i18n JSON 文件吗?

Can I generate i18n JSON files for Svelte app using Rollup?

我有一个 Svelte Rollup JS 应用程序。我已经实现了自己的 i18n。我有 en-us/[function].jsonde-de/[function].json。我在运行时 fetch JSON 并显示文本。

en-us/login.json

{
  "username": {
    "label": "Username"
  }
}

de-de/login.json

{
  "username": {
    "label": "Nutzername"
  }
}

登录和注册等功能有共同的文本。在上面的示例中,username 字段同时用于 screens/functions。如果我必须对文本进行更改,我将不得不更改所有语言文件夹中的所有 [function].json 文件。在这种情况下,如果我更改 username.label,我将不得不更改 4 个文件 en-us/login.jsonen-us/signup.jsonde-de/login.jsonde-de/signup.json.

有更好的处理方法吗?我可以使用 Rollup 生成这些 JSON 文件吗?

您可以使用像 guillaumepotier/gettext.js, or Jed. The former suggests to use xgettext-php together with Poedit to extract/edit the PO files. Probably you could use also jspot 这样的 javascript gettext 端口进行提取。

另见 po2json

这里是an article用Jed和jspot解释过程。