如果使用的是i18n之类的npm模块,则密钥存储在语言特定的文件中,例如locale / en.js或locale / de.js:
en.js
{
"hello world": "hello world"
}
是否有使用其格式导出字符串的工具,例如_(“ Hello world”),并自动将其插入到en.js的langauge文件中,而对于其他语言文件,则自动插入一个空字符串,例如“ new key”:“”消除了在进行编码时必须添加它们的一些繁琐工作。
例如:如果我添加新字符串_(“ some str”),则会在en.js中添加新键“ some str”:“ some str”,并在de.js中添加“ some str”:“”运行该工具。
最佳答案
如果只需要对象,则可以使用fs
将其保存到js
文件或json
文件中。
test.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/