po-parser
v2.1.1
Published
Parses and serializes `.po` file content.
Readme
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
msgidandmsgstr(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/msgstrentry at the beginning) - Single-line quoted strings
Unsupported features
- Translator comments (
#comments) - Previous string key comments (
#|comments) - Plural forms (
msgid_plural) - Multi-line strings
