gpt4 book ai didi

javascript - 自动导出字符串以在 Node.js 中进行国际化

转载 作者:行者123 更新时间:2023-12-03 03:25:02 28 4
gpt4 key购买 nike

如果我使用 npm 模块,例如 i18n , key 存储在特定于语言的文件中,例如 locale/en.js 或 locale/de.js:

en.js
{
"hello world": "hello world"
}

是否有工具可以使用其格式导出字符串,例如_("Hello world"),并像 en.js 一样将它们自动插入到语言文件中,对于其他语言文件则插入空字符串,例如"new key": ""消除了在编码时必须添加它们的一些跑腿工作。

举个例子:如果我添加一个新字符串 _("some str"),一个新的键 "some str": "some str"将被添加到 en.js 中,而 "some str": ""将被添加到 de运行该工具时的 .js。

最佳答案

如果您只想要该对象,可以使用fs将其保存到js文件或json文件。

测试.js

var fs = require('fs')
try {
var en = JSON.parse(fs.readFileSync('en.js'))
var de = JSON.parse(fs.readFileSync('de.js'))
} catch(err) {
// no file present
en = {};
de = {};
}
var string = process.env.string;
en[string] = string;
de[string] = "";
console.log(JSON.stringify(en), JSON.stringify(de))
fs.writeFile('en.js', JSON.stringify(en))
fs.writeFile('de.js', JSON.stringify(de))

正如您所看到的,string 变量只是一个 env 参数。

string=hello node test.js

或者您可以将它们保存到 json 文件

fs.writeFile('en.json', JSON.stringify(en))
fs.writeFile('de.json', JSON.stringify(de))

如果将此脚本与使用该对象的脚本一起使用,请务必小心。由于 writeFile 是一个 async 操作

关于javascript - 自动导出字符串以在 Node.js 中进行国际化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46369709/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com