新项目必须中英。可是早期缺乏必须的基本建设,并没有i18n自动化技术产生的专用工具。全是开发设计当遇到的时候我们去谷歌在线翻译。精不精准不能保证,可是确保可以实现中英文转换的功效。
直到有一天,商品手里拿着一份xlsx的报表跟我说,这也是一个团队专业的翻译,需要我把全局性英语也给更换了。

通过三年的研发,现今中英关键词已有3000好几条了。并且xlsx报表之类的关键词不仅包括我们自己的新项目,就意味着,我还要一个个对比。从中找到大家工程项目的关键词。如下图所示这种报表。

手动式来改动根本不可能。只有分析一下我们怎样应用node完成将xlsx报表全自动转换出目标,并载入js得更加作用。
难题非常明确。
我们应该:
- 分析exel报表
- 将分析得到的结果转换成我们了解的数据类型,然后跟已有的i18n文档进行比较
- 将比照以后得到的结果载入js文档之中
分析xlsx文档我们应该用到node-xlse
包。 它分析出去文档如下图所示,是一个二维数组。
这其中的name是现阶段报表的名称,这是并不需要的。大家只是更需要的是第一个目标里的data
二维数组。
因此现阶段就会有如下所示编码:
const xlsx = require('node-xlsx').default
const content = xlsx.parse('./xlsxToJs.xlsx')
const targetContent = new Map()
try {
content[0].data.forEach(item => {
targetContent.set(item[0], item[1])
})
} catch(e) {
console.log(e)
}
拿到分析的信息,咱们就可将其载入到JS中奖了。当他们想要对读取文件进行任何得比较情况下,该循环中进行对比就能。
写入文件,我们应该用到fs
库,它接纳一个字符串数组。也就有了如下所示编码:
const fs = require('fs')
const data = 'let data = ' JSON.stringify(Object.fromEntries(targetContent.entries()))
fs.writeFile('xlsx.js', data, (err) => {
if (err) {
throw err
}
console.log("JSON data is saved.")
})
输出xlsx.js
内容如下:
let data = {
"键名": "健值",
"登录":"loginIn",
"撤出": "exit",
"安全性": "safe",
"大家是什么意思": "what is nam"
}
这就是我们应该应用过的目标。编码非常简单,我也没对node的核心fs
进行任何表述,这也是下一篇内容。这就是我们临时性处理i18n的方法。不过想要彻底的解决这些问题,让开发者无需再手动式的翻译成中文,这一是一个锲子。我能在之后的文章内容输出。
“打开AdminJS成长之路!这个是我参加「AdminJS日新的目标 · 2 月更文考验」第 13 天,查看更多活动规则”
声明:本文仅供个人学习使用,来源于互联网,本文有改动,本文遵循[BY-NC-SA]协议, 如有侵犯您的权益,请联系本站,本站将在第一时间删除。谢谢你