问题描述
我正在使用 node.js 建立一个站点。我希望用户能够在英语和日语(未来可能还有更多语言)之间进行选择。我有一个名为“语言”的表,看起来像这样。
+------------+-------------+-------------+
| variable | en | jp |
+============+=============+=============+
| 'username' | 'User Name' | 'ユーザ名' |
+------------+-------------+-------------|
| 'password' | 'Password' | 'パスワード' |
+------------+-------------+-------------+
我可以使用 MysqL2/promise 模块很好地查询数据库...
const lang = 'jp';
const [rows,schema] = await db.query("SELECT variable,?? FROM language",[lang]);
console.log(rows);
但是这种格式对我来说并不是很有用...
[
TextRow { variable: 'username',jp: 'ユーザ名' },TextRow { variable: 'password',jp: 'パスワード' }
]
我想要一个用户选择的对象,其中“变量”字段作为属性名称,所选语言的字段作为值。这样我就可以轻松地将它传递给视图引擎。像……
const language = {'username' : 'ユーザ名','password' : 'パスワード'
}
res.render("mypage",{ 'language': language });
...但是我可以在数据库中维护一些东西。
此外,如果有更有效或“普遍做法”的方式来维护多语言网站,我很感兴趣。
解决方法
好吧,我认为如果您将 JSON 数据类型用于多语言的相同值会更好。
cell.subCategories = indexData?.sub_categories
JSON 数据格式参见 MySql 参考:https://dev.mysql.com/doc/refman/8.0/en/json.html