当前位置: 首页 > news >正文

保山做网站企业邮箱是什么类型的账户

保山做网站,企业邮箱是什么类型的账户,wordpress死链删除,网业分离文章目录 前期工作和依赖笔记功能代码输出 最近有一个功能#xff0c;将json文件里的内容抽取到一个xlxs中#xff0c;然后维护xlxs文件。当要更新json文件时#xff0c;就更新xlxs的内容并把它传回json中。这个脚本主要使用NodeJS写。 以下是完成此功能时做的一些笔记。 … 文章目录 前期工作和依赖笔记功能代码输出 最近有一个功能将json文件里的内容抽取到一个xlxs中然后维护xlxs文件。当要更新json文件时就更新xlxs的内容并把它传回json中。这个脚本主要使用NodeJS写。 以下是完成此功能时做的一些笔记。 前期工作和依赖 js文件中要使用import因此需要在package.json中设置type: module 依赖 import xlsx from xlsx; import path, { dirname } from node:path; import fs from node:fs; import { fileURLToPath } from node:url; import md5 from blueimp-md5;相关文档 API 参考 | SheetJS 中文网 (nodejs.cn) xlsx - npm (npmjs.com) 笔记 获取此文件目录名 const __dirname dirname(fileURLToPath(import.meta.url));组合文件名 const outPath path.join(__dirname, ./fileName.xlsx);读取一个目录下的所有文件名 const files fs.readdirSync(dirName);读取一个文件 const enJson fs.readFileSync(fileName, utf8);将二维数组转换为xlxs工作表 const sheet xlsx.utils.aoa_to_sheet(sheetData);将工作表添加到工作簿 xlsx.utils.book_append_sheet(workBook, sheet, sheetName);将工作表输出到xlsx文件中 xlsx.writeFile(workBook, outPath, { bookType: xlsx });将数组输出到xlxsdata是数组。 const sheet xlsx.utils.json_to_sheet(data); //将 JS 对象数组转换为工作表 const workBook xlsx.utils.book_new();// 创建一个工作簿对象 xlsx.utils.book_append_sheet(workBook, sheet, sheetName); // 将工作表添加到工作簿 xlsx.writeFile(workBook, path, {bookType: xlsx, }); // 输出到xlsx功能 维护一个xlsx文档里面包含国际化的所有翻译如下第一行 为 语言 enkojafr英文翻译韩文翻译日文翻译法文翻译 有英文json翻译文件如下src/locales/en/fileName1.json 其中key值为i18n的标记value值为对应的翻译。 {inviter: Inviter,worth: Worth ${{value}},countDownTips: Rewards Countdown }默认语言为英语我们需要以它为例子生成对应的其他语言文件如生成src/locales/fr/fileName1.json {inviter: 法文翻译1,worth: 法文翻译2,countDownTips: 法文翻译3 }所有的翻译都在xlsx中。因此我们需要读取xlsx文件遍历src/locales/en下的对应文件参数pageNames将对应翻译生成到对应文件夹。若无对应翻译则用英文兜底。 中途使用md5加密后的en翻译为key将对应xlsx文件中的翻译那一行保存到set中是因为xlsx中没有i18n标记只有各语言翻译。 将xlsx翻译文件输出到locales/[language]/[fileName]的功能封装成一个函数参数如下 读入的en文件夹上级为pagePath 参数 pageNames要维护的文件名列表,如 invite 对应locale/en/invite filePathxlsx文件路径 pagePathlocale文件路径 option:选项包括 - outputKey:输出为json的某一个key值的value没有就不填 这个功能的代码很死板像是硬编码需求如此先写着 - languageArray:传入一个数组包含要求的语言没有就不填会默认xlsx里的所有文件 参数填错了就会报错这个代码的健壮性并不强只是一个加快工作效率的工具 / 练手代码。 所以建议严格按照参数要求调用函数。不要做那种“没有outputKey应该不传但我就传个空串”可能会报奇怪的错误 代码 // 入口 import xlsx from xlsx; import md5 from blueimp-md5; import fs from node:fs; import path from node:path;// 删去前后空格 特判str为undefined const trim (str) (str || ).replace(/^\s|\s$/g, );// 生成一个setkey是en的翻译value是对应row function transSheetToMap(sheetData) {const map new Map();for (const row of sheetData) {const key md5(trim(row.en));map.set(key, row); // 加密后en的value为key整个row为value}return map; }/* 读入的en文件夹上级为pagePathpageNames要维护的文件名列表,如 invite 对应locale/en/invite filePathxlsx文件路径 pagePathlocale文件路径 option:选项包括- outputKey:输出为json的某一个key值的value没有就不填- languageArray:传入一个数组包含要求的语言缩写没有就不填会默认xlsx里的所有文件 */ function xlsxToJson(pageNames, filePath, pagePath, option) {let outputKey undefined;if (option.outputKey) {outputKey option.outputKey;}const workBook xlsx.readFile(filePath);const firstWorksheet workBook.SheetNames[0]; // 全都放在第一个sheet中const sheet workBook.Sheets[firstWorksheet];const sheetData xlsx.utils.sheet_to_json(sheet); // 数组每个项是对象key为语言value为翻译const languages option.languageArray? option.languageArray: Object.keys(sheetData[0]); // 所有语言const dictions transSheetToMap(sheetData);for (const pageName of pageNames) {// 英文文件const pageEnJson JSON.parse(fs.readFileSync(path.join(pagePath, en, ${pageName}.json),utf8));// key 为 i18n标记const pageEnKeys outputKey? Object.keys(pageEnJson[outputKey]): Object.keys(pageEnJson);for (const language of languages) {// 深拷贝英文样本const translatedJson JSON.parse(JSON.stringify(pageEnJson));// translatedJson生成为对应语言en兜底for (const key of pageEnKeys) {const translatedKey outputKey? md5(trim(pageEnJson[outputKey][key])): md5(trim(pageEnJson[key]));const translation dictions.get(translatedKey);if (outputKey) {translatedJson[outputKey][key] translation[language] || translation[en];} else {translatedJson[key] translation[language] || translation[en];}}const filePath path.join(pagePath, language, ${pageName}.json);// 若文件夹不存在则创建if (!fs.existsSync(path.join(pagePath, language))) {fs.mkdirSync(path.join(pagePath, language));}fs.writeFileSync(filePath, JSON.stringify(translatedJson, null, 4));}} }export default xlsxToJson; xlsxToJson([invite, player],C:/Users/somePath/i18n-all.xlsx,C:/Users/somePath/locales,{outputKey: key,languageArray: [de],} ); 输出 调用要翻译的文件为invite输出到json文件的key属性中只翻译到de德文。 xlsxToJson([invite],C:/Users/somePath/i18n-all.xlsx,C:/Users/somePath/locales,{outputKey: key,languageArray: [de],} );对应英文json如下有outputKey一定要填没有的话一定不填不然输出会很奇怪。 // locales/en/invite.json {key: {ogDesc: Download Now!,inviter: Inviter} }结果输出locales/de/invite.json 可能会封装一个npm包可能会维护。笔记先写在这吧
http://www.zqtcl.cn/news/551150/

相关文章:

  • 网站建设自学建站视频教程哈尔滨全国网站建设
  • 网站建设基础培训网站架构拓扑图
  • 网站开发价格预算成都必去的地方排行榜
  • 鹤岗做网站企业建立网站主要包括那些流程
  • 如何进网站出口外贸是做什么的
  • 网站制作北京网站建设公司哪家好一个人 建设网站
  • 百度网站是什么阿里云免费网站建设
  • 网站建设平台源码攻击网站步骤
  • 注册了网站之后怎么设计深圳开发app
  • 国外网站搭建平台移动互联网公司
  • 做网络私活的网站网站开发的人
  • 数据分析网站开发四川手机网站设计方案
  • 什么是网络营销的方法莱州网站建设关键字排名优化网络托管微信代运营
  • 雅虎网站收录提交入口怎么看网站谁做的
  • 青浦专业做网站免费网站软件大全
  • joomla 网站图标六安市城市建设档案馆网站
  • 郑州 公司网站制作win10 wordpress安装
  • html5网站有哪些网站建设部分费用会计科目
  • 网站域名备案 更改吗深圳新站优化
  • 房产网站门户系统免费网站免费无遮挡
  • 用国外网站 图片做自媒体seo诊断a5
  • 广州市南沙建设局网站优改网logo设计
  • 网站建设亿玛酷知名公司网站首页如何做
  • 教育网站 php网络服务公司
  • net域名做网站怎么样建站公司 转型经验
  • 赣州网站建设哪家公司好上海市建设安全协会网站
  • 网站排名优化软件有哪些西宁网站建设官网
  • 支付宝手机网站签约迪庆公司网站开发方法
  • 唐山网站关键词优化网站开发公司推荐
  • 福建响应式网站制作市工商局网站建设情况