# @connectedcars/po2json 中文文档

规范地址：https://npmcn.com/package/%40connectedcars/po2json/

版本：2\.0\.0
npm 元数据更新时间：2026-09-04T11:27:41.064Z
中文译文更新时间：2026-11-10T15:41:15.825Z
软件包许可：LGPL-2\.0-or-later

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40connectedcars/po2json
原文对照：https://npmcn.com/package/%40connectedcars/po2json/?lang=original
项目主页：https://github.com/mikeedwards/po2json
源码仓库：https://github.com/mikeedwards/po2json

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：47.6 kB，35 个文件
- TypeScript 类型：未声明
- Node.js 要求：\>=10\.0
- 运行依赖：3 个
- peer 依赖：commander ^6\.0\.0，gettext-parser 2\.0\.0，gettext-to-messageformat 0\.3\.1
- 首次发布：2023-01-11T09:04:14.433Z
- 最新版本发布：2023-01-11T09:04:14.598Z
- 近 30 天下载量：5867（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：1（近 12 个月 0 个）

## 中文简介

将 PO 文件转换为 JSON

## 安装

```sh
npm install @connectedcars/po2json
```

也可以使用：`pnpm add @connectedcars/po2json`、`yarn add @connectedcars/po2json`、`bun add @connectedcars/po2json`

## README

# 密码

[![Build Status](https://secure.travis-ci.org/mikeedwards/po2json.png?branch=master)](http://travis-ci.org/mikeedwards/po2json) [![Dependency Status](https://david-dm.org/mikeedwards/po2json.png?theme=shields.io)](https://david-dm.org/mikeedwards/po2json) [![devDependency Status](https://david-dm.org/mikeedwards/po2json/dev-status.png?theme=shields.io)](https://david-dm.org/mikeedwards/po2json#info=devDependencies)

将 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
```

## 捐款

取而代之的是正式的样式指南,注意保持现有的编码风格. 为任何新的或已更改的功能添加单位测试 。 使用 [咕噜声](https://github.com/gruntjs/grunt)。 。 。 .

## 释放历史

### 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`

此发行中的其他变化 :

-   图书馆被竞争重写,现在使用 [获取文本解析器](https://github.com/andris9/gettext-parser) 模块来解析 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 是什么？

将 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 和提交记录判断。

