我有一个Svelte Rollup JS应用。我已经实现了自己的i18n。我有en-us/[function].json
和de-de/[function].json
。我在运行时单击fetch
JSON
并显示文本。
zh-cn / login.json
{
"username": {
"label": "Username"
}
}
de-de / login.json
{
"username": {
"label": "Nutzername"
}
}
登录和注册之类的功能具有共同的文本。在以上示例中,username
字段在两个屏幕/功能中都使用。如果必须更改文本,则必须更改所有语言文件夹中的所有[function].json
文件。在这种情况下,如果更改username.label
,则必须更改4个文件en-us/login.json
,en-us/signup.json
,de-de/login.json
,de-de/signup.json
。
有没有更好的方法来处理它?我可以使用汇总生成这些JSON文件吗?
您可以使用Javascript gettext端口,例如guillaumepotier/gettext.js或Jed。前者建议将xgettext-php与Poedit一起使用以提取/编辑PO files。可能还可以使用jspot进行提取。
另请参见po2json。
这里是an article用Jed和jspot解释该过程。