密码
将 PO 文件转换为 Javascript 对象或 JSON 字符串 。 结果为杰德相容.
开始
安装模块 : npm install po2json
作为图书馆
var po2json = require('po2json');
作为可执行文件
po2json translation.po translation.json
如果您正在使用 Jed QQ 1. 1. 1. 0 , 请明确指定该格式 .
po2json translation.po translation.json -f jed1.x
文档
方法
po2json有3个方法,它们都采用了完全相同的选择. 主要职能是: parse 它实际上对JSON做了分析。 其余两个.. parseFile 财务报告和审定财务报表 parseFileSync 是直接从文件中读取 PO 数据的便利函数,并将其转换为 JSON .
向 JSON 分析 PO 缓冲器
po2json.parse(buf[, options])buf- 一个 阿宝 文件为缓冲或 Unicode 字符串.options- 有下列可能参数的可选对象:fuzzy是否在 JSON 中包含模糊的翻译 。 应该不是true或者说false默认为false。 。 。 .stringify若为true返回 JSON 字符串。 否则返回一个普通的 Javascript 对象 。 默认为false。 。 。 .pretty若为true所生成的JSON字符串会印得很漂亮 没有效果,当stringify实值false默认为falseformat默认为raw。 。 。 .raw生成“ raw” JSON 输出jed生产与 Jed 兼容的100% 输出 1.1.0jedold生产与 Jed < 1.1.0 兼容的100%的输出mf生成简单的密钥:值输出.
domain- 域 消息将被包裹在内部。 只有当format: 'jed'。 。 。 .fallback-to-msgid若为true,用于省略的条目(模糊的条目,没有模糊的旗帜)和 在 json 文件中使用 msgid 作为翻译。 如果条目是复数,则使用msgid plural msgstr [1] (英语). 这意味着这个选项只对有正数=2的语言才有意义.
分析 PO 文件到 JSON
po2json.parseFile(fileName[,options], cb)fileName- po文件路径options- 和以前一样po2json.parsecb- 接受两个参数的函数:err财务报告和审定财务报表jsonData
将 PO 文件分析到 JSON (同步)
po2json.parseFileSync(fileName[, options])fileName- po文件路径options- 和以前一样po2json.parse
命令行参数
添加命令行参数化支持中的 po2json 以允许覆盖 默认选项.
- -- pretty, -p: 与 pretty = 函数选项中的真实性相同
- --fuzzy, -F:与fuzzy=函数选项中的真同
- --format, -f: 输出格式(raw, jed, jedold, 或 mf)
- --full-mf, --M:返回完整消息格式输出(而不是只翻译)
- --domain, -d: 与函数选项中的域相同
- -- fall- back- to- msgid" : “ 如果缺少翻译, 请使用 msgid ( naprals must match)
说明: 'format': 'mf' 指消息Formatter在github.com/SlexAxton/messageformat.js中使用的json格式
财务报告和审定财务报表 jedold 指1.1.0以下的Jed格式
实例
PO 数据作为缓冲/字符串的基本用途
var po2json = require('po2json'),
fs = require('fs');
fs.readFile('messages.po', function (err, buffer) {
var jsonData = po2json.parse(buffer);
// do something interesting ...
});
直接分析 PO 文件 - 同步使用
var po2json = require('po2json');
po2json.parseFile('messages.po', function (err, jsonData) {
// do something interesting ...
});
直接分析 PO 文件 - 同步使用
var po2json = require('po2json');
var jsonData = '';
try {
jsonData = po2json.parseFileSync('messages.po');
// do something interesting ...
} catch (e) {}
将 PO 文件分析为消息格式
var po2json = require('po2json'),
MessageFormat = require('messageformat');
po2json.parseFile('es.po', { format: 'mf' }, function (err, translations) {
var pFunc = function (n) {
return (n==1 ? 'p0' : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 'p1' : 'p2');
};
pFunc.cardinal = [ 'p0', 'p1', 'p2' ];
var mf = new MessageFormat(
{
'es': pFunc
}
);
var i18n = mf.compile( translations );
});
使用完整格式将 PO 文件分析为消息格式
var po2json = require('po2json'),
MessageFormat = require('messageformat');
po2json.parseFile('messages.po', { format: 'mf', fullMF: true }, function (err, jsonData) {
var mf = new MessageFormat(
{ [jsonData.headers.language]: jsonData.pluralFunction }
);
var i18n = mf.compile( jsonData.translations );
});
分析一个 PO 文件到 Jed QQ 1.1.0 格式
var po2json = require('po2json'),
Jed = require('jed');
po2json.parseFile('messages.po', { format: 'jed' }, function (err, jsonData) {
var i18n = new Jed( jsonData );
});
将 PO 文件分析为 Jed < 1.1.0 格式
如果您正在使用旧版本的Jed, 请确定指定此格式 .
var po2json = require('po2json'),
Jed = require('jed');
po2json.parseFile('messages.po', { format: 'jedold' }, function (err, jsonData) {
var i18n = new Jed( jsonData );
});
正在测试
npm test
捐款
取而代之的是正式的样式指南,注意保持现有的编码风格. 为任何新的或已更改的功能添加单位测试 。 使用 咕噜声。 。 。 .
释放历史
1.0.0 / 2018-09-24 (中文(简体) )
- 更新的依赖关系.
- 将点名替换为指挥官.
- 切换了Jed版本的格式值.
jed现参考qq 1.1.0版本. - 为信件格式汇编添加测试 .
0.4.6 / 2018-09-24 (中文(简体) )
- 为不同的Jed版本添加文档和测试.
- 更新的依赖关系.
0.4.5 / 2016-10-13 (中文(简体) )
- 固定发行有jed 1.x和ja-JP复数.
0.4 / 2016-08-29 (中文(简体) )
- 修复解析无标题的. po 文件 .
0.4.3 / 2016-08-27 (中文(简体) )
- 更好地支持日语等语言的复数.
0.4.2 / 2015-04-13 (中文(简体) )
- Jed更新的文件 > 1.1.0
- 没有翻译时使用 msgid plural
0.3.1 / 2015-03-01 (中文(简体) )
- 更新了 Jed-format 代码和测试处理新的复数格式
0. 4.0 / 2015-03-01 (英语)
- 添加的 Jed > 1.1.0相容格式(Evan Moses)
0.0 / 2014-07-16 (中文(简体) )
- 为模糊、漂亮、格式和域(Szigetvári Áron)添加命令行旗
- 处理没有模糊旗(Szigetvári Áron)的模糊条目的倒置到msgid
02.4 / 2014-07-15 (中文(简体) )
- 固定绒毛旗(马哈塔)
6.2.3 / 2014-01-26 (中文(简体) )
- 将最小节点版本要求提高到0.8
- 升起的摇篮版本为~2.4.1
- 清理文档
0.2.0 / 2013-11-08 (中文(简体) )
诺比! 此发布不相上下! 其内容如下: 断开更改数字 :
po2json.parse_po已替换为po2json.parsepo2json.parse已替换为po2json.parseFilepo2json.parseSync已替换为po2json.parseFileSync
此发行中的其他变化 :
- 图书馆被竞争重写,现在使用 获取文本解析器 模块来解析 PO 文件。 (伊利玛尔·坦贝克)
- 测试已完全重写( Illimar Tambek)
- 以"双逃出"(Illimar Tambek)为引文的固定期
- 跳过/包含模糊翻译的选项( Illimar Tambek)
0.0.7 / 2012-10-26 (中文(简体) )
- 固定起伏虫并添加更好的 f.po 固定 (Mike Edwards)
- 添加 po2json.parse 和 po2json.parseSync (Dan MacTough) 的测试
- 更新的 README.md 有版本历史 (Mike Edwards)
- 更新历史 (迈克·爱德华兹)
0.0.6 / 2012-10-22 (中文(简体) )
- 添加 AUTHORS 以识别贡献者( Dan MacTough)
- 以修订历史和基本实例更新 README (Dan MacTough)
0.5 / 2012-10-19 (中文(简体) )
- 从 Grunt (Mike Edwards) 取出假 README 的例子
- 固定 README.md 标记下 (迈克·爱德华兹)
- 修正测试(迈克·爱德华兹)
- 为 parse po (Mike Edwards) 添加了第一个测试
- 使用 grunt init (Mike Edwards) 添加了锅炉板
- 已更改导出. parse 可使用节点的对流错误- 首回调取样式 。 添加导出. parseSync 用于同步解析 。 (邓麦克通)
0.0.4 / 2012-09-18 (中文(简体) )
- 正确逃出防线(扎克·卡特)
- 更新包.json (迈克·爱德华兹)
- packet.json:定义主模块(Asbjørn Sloth Tønnesen) 定义主模块
0.0.2 / 2012-07-03 (中文(简体) )
- 修复软件包, 修复漂亮的打印返回, 删除调试日志( gilles)
- 上行版本 (迈克·爱德华兹)
0.0.1 / 2012-06-06 (中文(简体) )
- 添加到 README (Mike Edwards) 的构建状态
- 从依赖区删除已建的 ints (Mike Edwards)
- 添加了 .travis 文件供持续整合( Mike Edwards)
- 添加到 README.md (Mike Edwards) 的用法注释
- 第一个工作脚本! (迈克·爱德华兹)
- 添加了新 git repo (迈克·爱德华兹)
- 最初犯罪(迈克·爱德华兹)
- 初次犯罪(迈克·爱德华兹)
许可证
版权(c)2012 Joshua I. Miller 根据GNU、图书馆、一般、公共、许可证颁发.


