@connectedcars/po2json

中文文档
2.0.0发布于 2023/01/11LGPL-2.0-or-later近 30 天下载 5867

将 PO 文件转换为 JSON

中文使用文档
文档目录36 节
  1. 开始
  2. 作为图书馆
  3. 作为可执行文件
  4. 文档
  5. 方法
  6. 命令行参数
  7. 实例
  8. PO 数据作为缓冲/字符串的基本用途
  9. 直接分析 PO 文件 - 同步使用
  10. 直接分析 PO 文件 - 同步使用
  11. 将 PO 文件分析为消息格式
  12. 使用完整格式将 PO 文件分析为消息格式
  13. 分析一个 PO 文件到 Jed QQ 1.1.0 格式
  14. 将 PO 文件分析为 Jed < 1.1.0 格式
  15. 正在测试
  16. 捐款
  17. 释放历史
  18. 1.0.0 / 2018-09-24 (中文(简体) )
  19. 0.4.6 / 2018-09-24 (中文(简体) )
  20. 0.4.5 / 2016-10-13 (中文(简体) )
  21. 0.4 / 2016-08-29 (中文(简体) )
  22. 0.4.3 / 2016-08-27 (中文(简体) )
  23. 0.4.2 / 2015-04-13 (中文(简体) )
  24. 0.3.1 / 2015-03-01 (中文(简体) )
  25. 0. 4.0 / 2015-03-01 (英语)
  26. 0.0 / 2014-07-16 (中文(简体) )
  27. 02.4 / 2014-07-15 (中文(简体) )
  28. 6.2.3 / 2014-01-26 (中文(简体) )
  29. 0.2.0 / 2013-11-08 (中文(简体) )
  30. 0.0.7 / 2012-10-26 (中文(简体) )
  31. 0.0.6 / 2012-10-22 (中文(简体) )
  32. 0.5 / 2012-10-19 (中文(简体) )
  33. 0.0.4 / 2012-09-18 (中文(简体) )
  34. 0.0.2 / 2012-07-03 (中文(简体) )
  35. 0.0.1 / 2012-06-06 (中文(简体) )
  36. 许可证

密码

Build Status Dependency Status devDependency Status

将 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默认为 false
      • format 默认为 raw。 。 。 .
        • raw 生成“ raw” JSON 输出
        • jed 生产与 Jed 兼容的100% 输出 1.1.0
        • jedold 生产与 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.parse
    • cb - 接受两个参数的函数: 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.parse
  • po2json.parse 已替换为 po2json.parseFile
  • po2json.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、图书馆、一般、公共、许可证颁发.

版本与发布记录

@connectedcars/po2json 共发布 1 个版本,首次发布于 2023/01/11;过去 12 个月发布了 0 个版本。

版本发布日期距今
2.0.0latest2023/01/113 年前

关于 @connectedcars/po2json 的常见问题

@connectedcars/po2json 是什么?

将 PO 文件转换为 JSON

如何安装 @connectedcars/po2json?

在项目目录运行 npm install @connectedcars/po2json,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:commander(^6.0.0)、gettext-parser(2.0.0)、gettext-to-messageformat(0.3.1)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。它还提供命令行工具 po2json,可以用 npx po2json 直接运行。

@connectedcars/po2json 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/connectedcars__po2json 是否存在。

@connectedcars/po2json 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=10.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@connectedcars/po2json 可以商用吗?

@connectedcars/po2json 使用 LGPL-2.0-or-later 许可。声明的许可为 LGPL-2.0-or-later,请阅读许可原文确认使用条件。以上为概括,不构成法律意见,请以许可原文为准。

@connectedcars/po2json 的下载量有多少?

根据 npm 官方下载统计,@connectedcars/po2json 在 2026/10/11 – 2026/11/09 这 30 天内被下载 5,867 次,日均约 196 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@connectedcars/po2json 还在维护吗?

最新版本 2.0.0 发布于 2023/01/11(3 年前);至今共发布 1 个版本,其中过去 12 个月发布了 0 个;首次发布于 2023/01/11。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。