Skip to content

amannn/po-parser

Repository files navigation

po-parser

Parses and serializes .po file content.

Zero-dependency. ~2kb minified & gzipped.

Usage

Parse

import POParser from 'po-parser';

const content = `
msgid ""
msgstr ""
"POT-Creation-Date: 2025-10-27 16:00+0000\n"

#: src/Greeting.tsx
#. Greets the user
msgid "+YJVTi"
msgstr "Hey"
`;

const result = POParser.parse(content);

Serialize

import POParser from 'po-parser';

const catalog = {
  meta: {
    'POT-Creation-Date': '2025-10-27 16:00+0000'
  },
  messages: [
    {
      msgid: '+YJVTi',
      msgstr: 'Hey',
      extractedComments: ['Greets the user'],
      references: [{path: 'src/Greeting.tsx', line: 10}]
    }
  ]
};

const result = POParser.serialize(catalog);

Supported features

  • msgid and msgstr (message entries)
  • msgctxt (message context for namespacing)
  • References (#: comments, with optional line numbers)
  • Extracted comments (#. comments)
  • Flag comments (#, comments, e.g. #, fuzzy)
  • Metadata (from empty msgid/msgstr entry at the beginning)
  • Single-line quoted strings

Unsupported features

  • Translator comments (# comments)
  • Previous string key comments (#| comments)
  • Plural forms (msgid_plural)
  • Multi-line strings

About

Parses and serializes `.po` file content.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors