nodejs版实现properties后缀文件解析

摘要:
1、 propertiesParser.jsletreadline=要求('readline');letfs=要求('fs');//属性文件路径letlocal='zh','/public/messages_en.Properties';readlineObj=readline.createInterface({input:

1、propertiesParser.js

let readline = require('readline');
let fs = require('fs');
// properties文件路径 let local
= 'zh', url = local == 'zh' ? /public/messages_zh.properties' : '/public/messages_en.properties';
// Unicode 码转为中文 let toGB2312
= function(str) { return unescape(str.replace(/\u/gi, '%u')); }
// properties文件解析 let parseProps
= function() { let fRead = fs.createReadStream(url), readlineObj = readline.createInterface({ input: fRead }); readlineObj.on('line', (line) => { var tmp = line.toString(), index = tmp.indexOf('#'); // 拆分key、value if (index != 0) { let strIdx = tmp.indexOf('='), key = tmp.substr(0, strIdx), value = tmp.substr(strIdx + 1); // 将拆分key、value数据存储到node的全局变量global下的local属性 global.local[key] = local == 'zh' ? toGB2312(value) : value; } })
// 文件读取结束 readlineObj.on(
'close', () => { console.log('readline close... parsed properties!'); }) } module.exports = { parseProps }

网上也有jquery.i18n.properties等方案,感觉引入过多冗余资源,索性手撸一个纯js方法实现解析,希望也能帮到遇到类似问题的人 ^_^ 。

免责声明:文章转载自《nodejs版实现properties后缀文件解析》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Debian 安装 VMwareTiDB数据库01Tidb体系架构01下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

如何打开mo文件并修改 PoEdit

  mo文件是被编译了的文件,一般在汉化的时候会用到。 比如我想修改phpmyadmin 的界面信息,就需要修改phpmyadmin.mo的文件内容。 可是用编辑器editplus或者Sublime 2打开它,都是乱码。 原来,这个文件不能直接打开。 搜索了一下,网上的信息。 发现通过poedit软件,可以先将mo转化为po格式的文件,然后poedit就...

SPA项目开发登陆注册

使用vue-cli脚手架工具创建一个vue项目 vue init webpack pro01 npm安装elementUI cd pro01 #进入新建项目的根目录 安装: npm install axios -S npm install qs -S npm install vue-axios -S  npm install element-ui -...

LevelDB原理解析

LevelDb有如下一些特点: 首先,LevelDb是一个持久化存储的KV系统,和Redis这种内存型的KV系统不同,LevelDb不会像Redis一样狂吃内存,而是将大部分数据存储到磁盘上。 其次,LevleDb在存储数据时,是根据记录的key值有序存储的,就是说相邻的key值在存储文件中是依次顺序存储的,而应用可以自定义key大小比较函数,LevleD...

element 导航菜单 控制路由跳转

首先复制官网的例子,在这基础上再修改成我们想要的样子。 <el-menu :default-active="activeIndex" class="el-menu-demo" mode="horizontal" @select="handleSelect"> <el-menu-item index="1">处理中心</el...

Golang中的插件开发

  插件化开发提供了很多便利,可动态扩展程序的相关功能,如Windows中的DLL、Linux中的So文件、还有IDEA中的插件,应用范围不可谓不广;   在Golang中提供了自己的插件机制,可使用其进行插件化开发;在Golang的plugin包中提供了加载插件、调用插件中函数的相关方法; Golang中的插件机制使用非常简单;就只有这么三步:   1、...

mac 版本navicate 如何安装破解版

https://www.jianshu.com/p/f42785e55b6b  博客地址 部分童鞋安装后没有rpk文件,我也不知道怎么解决实在不行,请下载破解版链接:https://pan.baidu.com/s/1oyatsIdn-_oD4JW3_RTqpg  密码:4cbi 教程原链接 如有版权问题,请联系我立即删除 Mac版 Navicat Pr...