nodejs版实现properties后缀文件解析
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后缀文件解析的更多相关文章
- properties 文件解析
		1.提供properties文件 jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/future?useUn ... 
- Java中读取properties资源文件
		一.通过ResourceBundle来读取.properties文件 /** * 通过java.util.resourceBundle来解析properties文件. * @param String ... 
- 《热血传奇2》wix、wil文件解析Java实现
		在百度上搜索java+wil只有iteye上一篇有丁点儿内容,不过他说的是错的!或者说是不完整的,我个人认为我对于热血传奇客户端解析还是有一定研究的,请移步: <JMir——Java版热血传奇2 ... 
- Code片段 : .properties属性文件操作工具类 & JSON工具类
		摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! “贵专” — 泥瓦匠 一.java.util.Properties API & 案例 j ... 
- android基础知识13:AndroidManifest.xml文件解析
		注:本文转载于:http://blog.csdn.net/xianming01/article/details/7526987 AndroidManifest.xml文件解析. 1.重要性 Andro ... 
- Android之AndroidManifest.xml文件解析
		转自:Android学习笔记之AndroidManifest.xml文件解析 一.关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文 ... 
- C语言中.h和.c文件解析(很精彩)
		C语言中.h和.c文件解析(很精彩) 简单的说其实要理解C文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程: 1.预处理阶段 2.词法与语法分析 ... 
- C语言中.h和.c文件解析
		整理自C语言中.h和.c文件解析(很精彩) Part.1(林锐<高质量C/C++编程>) 通过头文件来调用库功能.在很多场合,源代码不便(或不准)向用户公布,只要向用户提供头文件和二进制的 ... 
- NSObject头文件解析 / 消息机制 / Runtime解读 (一)
		NSObject头文件解析 当我们需要自定义类都会创建一个NSObject子类, 比如: #import <Foundation/Foundation.h> @interface Clas ... 
随机推荐
- HTTP与HTTPS区别(详细)
			转:http://blog.sina.com.cn/s/blog_6eb3177a0102x66r.html 1.减少http请求(合并文件.合并图片)2.优化图片文件,减小其尺寸,特别是缩略图,一定 ... 
- net core 返回值
			//指定类下的子类 Type helloType = typeof(ActionResult); List<Type> types = new List<Type>(); fo ... 
- php大文件上传支持断点上传
			文件夹数据库处理逻辑 publicclass DbFolder { JSONObject root; public DbFolder() { this.root = new JSONObject(); ... 
- [ZOJ3649]Social Net 题解
			前言 这道题目珂以说是很毒瘤了. 题解 首先克鲁斯卡尔求最大生成树,输出边权和. 倍增维护四个值: 链上最大值/最小值 链向上/向下最大差值 当然祖先是肯定要维护的. 然后把一条链经LCA分成 ... 
- FJWC2017&FJOI2017一试 游记
			day1  早上是以前泉州七中的杨国烨讲课.(据说当时看新闻说是一对双胞胎一起上thu的其中一个)课题是图论/网络流.  下午第一道一开始推出来了一个之和面积有关的式子,然后觉得可以容斥一发,觉得 ... 
- Xshell Linux常用命令
			Xshell :一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议. 0 帮助 命令 与清屏 help 查看帮助命令 ls ... 
- jquery.fileupload-image-editor.js
			jquery.fileupload-image-editor.js中 _initEventHandlers: function () { this._super(); var handlers = { ... 
- 提示标签title折行
			使用代码换行共两种代码,均可实现html标签内title内容显示时换行.换行代码符分别为:“ ”和“ ”以上符合数字输入均必须英文半角模式输入.使用时候,在需要换行地方任选一种(组)换行符号代码即可. 
- HTTPS 证书制作及使用
			一 证书的制作 进入jdk/bin,使用keytools.exe制作证书. 1.创建keystore 创建一个别名为serverkeystore的证书,该证书存放在名为server.keystore的 ... 
- Octavia 创建 loadbalancer 的实现与分析
			目录 文章目录 目录 从 Octavia API 看起 Octavia Controller Worker database_tasks.MapLoadbalancerToAmphora comput ... 
