当前位置: 首页 > 后端技术 > Node.js

国际化的文本翻译数据使用nodeJS

时间:2023-04-03 16:56:26 Node.js

系统转成JSON文件进行国际化,然后由市场部进行中英翻译。翻译的项目挺多的,重复翻译的也很多,以后可能会加上。不如现在写一个简单的转换方法。constreadline=require('readline');constfs=require('fs');asyncfunctionprocessLineByLine(){constfileStream=fs.createReadStream('file/International.txt');constrl=readline.createInterface({input:fileStream,crlfDelay:Infinity});//注意:我们使用crlfDelay选项将input.txt中的所有CRLF('\r\n')实例识别为单个换行符。让num=1,data={},endata={},active_title='',flag=false;forawait(constlineofrl){if(line!=''){if(/[一二三四五六七八九十]/g.test(line)&&!/[a-z]/g.test(line)){lettitle=line.substr(line.indexOf('、')+1);switch(title){case'首页':title="home";休息;case'资产管理':title="asset";休息;默认值:}active_title=标题;数据[标题]={};endata[标题]={};}else{letarr=line.split(':');让钥匙=arr[1];key=key.replace(/'/ig,'').replace(/(^\s*)|(\s*$)/g,'').replace(/\s/g,'-').toLowerCase();数据[active_title][key]=arr[0];数据[一个ctive_title][key]=arr[1];}}数++;conststr_data=JSON.stringify(数据),str_endata=JSON.stringify(endata);fs.writeFile('file/zh-CN.json',str_data,(err)=>{if(err)throwerr;console.log('国际化中文版文件已保存!');});fs.writeFile('file/en-US.json',str_endata,(err)=>{if(err)throwerr;console.log('国际化英文版文件已保存!');});}processLineByLine();//翻译后的文字是这样的Lightingplatform:InwuSmartlightingplatformHomepage:HomeManagement:ManagementInternationalization:InternationalEarlywarningreminder:Pre-warningElectricconsumptionstatistics:电力消耗统计Onlinestatistics:在线统计Today'sstrategy:Today'sstrategyToday'sdevicealarmratetoday:Today'sdevicealarmratetodayLightingrate:Today'slightingrateToday'sonlinedevicerate:Today'sonlinedevicerateYester'sdeviceenergysavingrate:昨天设备节能率设备在线统计:设备在线统计Gateway:网关设备:设备开灯:开关灯:关离线:离线告警:警告故障:fault一键巡检:一键巡检预设模式:预设模式发布:发布发布成功:发布成功发布失败:问题failedSunriseandsunsetmode:SunriseandsunsetmodeEnergysavingmode:节能模式Manualmode:手动模式Devicegroup:Devicegroupoperation:operate二、资产管理Assetmanagement:资产管理区域信息:区域信息区域名称:区域名称区域address:区域地址经度:经度纬度:纬度创建时间:创建时间修改:修改删除:删除更多:详细信息:详细信息网关数量:网关数量设备数量:设备数量关闭:关闭添加区域:添加区域区域名称:区域名称区域地址:区域地址经纬度:经纬度请输入查询地址:请输入查询地址取消:取消确认:确认搜索关键字:搜索关键字区域:区域查询:搜索网关名称:网关名称网关类型:GatewaytypeDevicestatus:设备状态Creationtime:CreationtimeOperation:operateCreatewhitelist:创建白名单Reset:ResetForcedrefresh:强制刷新Whitelisttype:WhitelisttypeAll:AllActivatedwhitelist:WhitelistactivatedWhitelisttoadded:白名单待添加Zombiewhitelist:Zombiewhitelist添加白名单:添加白名单Deletewhitelist:删除白名单Clearwhitelist:清除白名单Return:BackDevicename:设备名称Gateway:网关状态:statusWhitelist:WhitelistModbusconfiguration:ModbusconfigurationModbusTiming:ModbustimingPLCtimer:PLCtimerGatewaystatus:网关状态Synchronized:已同步Unsynchronized:未同步Device组:DevicegroupDevicename:DevicenameDevicenumber:deviceIDAttribute:FeaturesValue:valueLocationarea:yourareaLatitudeandlongitude:LatitudeandlongitudeConnectiontime:ConnectiontimeDisconnectiontime:LosttimeAccesstoken:AccesstokenHardwareversion:硬件版本FirmwareVersion:固件版本Mac地址:Mac地址SIM卡number:SIM卡号Copyaccesstoken:CopyaccesstokenGatewayMoreinformation:更多网关信息Deviceinformation:DeviceInformationAddgateway:addgatewayGatewayBasicinformation:Gatewayname:GatewaynameGatewaytype:GatewaytypeGatewayinformation:Gatewayownershipinformation网关地址:网关地址设备别名:设备别名设备状态:设备状态设备类型:设备类型区域:您所在区域数据管理:数据管理统计分析:统计分析审计日志:审计日志累计耗电量:累计耗电量累计电量耗电时间:累计用电时间累计开灯次数:累计开灯次数耗电统计:耗电量统计耗电时间统计:用电时间统计统计开灯次数选择区域:选择区域日期:天Month:月Year:年Singlelampdata:单灯数据Selecttimeperiod:选择时间段Starttime:开始时间Endtime:EndTimetimestamp:时间戳实体类型:实体类型实体状态名称:实体状态名称类型:类型详情:详情告警管理:预警管理告警时间:告警时间告警原因:告警原因订单调度:请求指定订单信息:订单信息告警原因:告警原因状态:status失败原因:失败原因处理:是否处理网关:是否网关修改密码:修改密码旧密码:旧密码新密码:新密码确认密码:确认密码用户管理:用户管理