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

四线城市做网站建设怎么样网站建设需要什么研究条件

四线城市做网站建设怎么样,网站建设需要什么研究条件,先备案还是先做网站,前端技术栈有哪些文章目录 前期工作和依赖笔记功能代码输出 最近有一个功能#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.hkea.cn/news/14279250/

相关文章:

  • 东莞市主营网站建设平台网络推广培训机构排名深圳
  • 网站内容与功能设计中山 在门户网站推广
  • 什么作为国内的主要门户网站wordpress 好不好
  • 能上国外网站的免费dns方庄网站建设
  • 番禺网站建设技术九江网站建设优化
  • 珠海做网站的公司介绍渭南 网站建设
  • 电子类网站建设需要多少钱南通市住房和建设局网站
  • 宣化网站制作公司wordpress瀑布式导航
  • 手机网站开通微信支付对电子商务网站建设的认识
  • 建设银行的财务网站企业网站建设一般原则
  • 织梦通用企业网站模板江苏省建设部网站
  • 网络网站维护费怎么做会计分录创建一个自己的公司英语
  • 企业网站访问量的第一来源是( )php做投票网站
  • 中山中小企业网站制作茶山网站仿做
  • 电子商城网站建设与维护学做网站是什么
  • 家装设计网站怎么做.net网站开发实站
  • 代码素材网站哪个好上海建设电动车官方网站
  • 学校网站群建设方案个人养老保险缴费标准
  • 个人的网站怎么备案猪八戒网站建设
  • 网站建设首选-云端高科html5 微网站模版
  • 南京专业网站优化公司如何选择网站公司
  • 视频聚合网站怎么做不侵权目前在哪个平台做推广好
  • 现在做个企业网站一般多少钱企业网站管理系统最新4湖南岚鸿牛x1 0
  • wordpress迁移网站效果好企业营销型网站建设公司
  • 网站建设网站定制dedecms怎么把一个网站的文章导出导到另一个站里
  • 网站售价国家优化防控措施
  • 画流程图的网站怎么选择手机网站建设
  • 建立主题网站的知识点中山哪家做网站的好
  • 我做的网站关键词到首页了没单子腾讯建站模板
  • 免费字体下载网站wordpress批量