在NodeJS中处理语言文件的最佳方法是什么

时间:2014-07-30 18:30:17

标签: javascript node.js argument-unpacking

我目前正在开发一个网站,我想实现一个语言文件。 意思是,我希望能够拥有一个名为language.js的文件,其中包含所有代码生成字符串的对象。

一个例子:

var languageStrings = {
    welcomeMessage: "Welcome to our website, %s!",
    usernameInvalid: "The username '%s' is invalid",
}

module.exports = function(languageString, arguments) {
    // return a parsed string, using arguments
    // so require("./language")("welcomeMessage", "Cyberuben"); should output "Welcome to our website, Cyberuben!"
}

我不确定如何以快速但功能性的方式实现这一目标。我打算使用util.format,但这会将每个替换作为单个参数,而不是表或数组。在Lua中,有unpack()Source),它将表解包为单独的元素。我想知道JavaScript中是否有类似的功能,或者是否有更好的方法来处理未知数量的变量到字符串的格式

1 个答案:

答案 0 :(得分:0)

尝试https://github.com/alexei/sprintf.js它支持传递数组。例如

vsprintf('The first 4 letters of the english alphabet are: %s, %s, %s and %s', ['a', 'b', 'c', 'd']);