A simple gettext .po linter to check for mangled variable names in translations
Project description
lint-po
A simple gettext .po linter to check for mangled variable names in translations.
Features
- reads utf-8 encoded *.po files
- skips
msgid/msgstr
pairs where either value is unset - compares original/translation pairs for common interpolation markers:
- supports
{name}
,{123}
,<123>
,</123>
,<123/>
,%(name)s
- ensures both messages use the same set of variables - no renames, no removals, no additions
- supports
- supports Github Actions error reporting syntax (when
env.GITHUB_ACTIONS
is set)
Example usage
$ lint-po locale/*.po
Difference between msgid="Hello {name}" and msgstr="Bonjour {nom}":
Missing from msgstr: {name}
Unexpected in msgstr: {nom}
at problem.po:2
TODO
- catch nesting errors (<0><1></0></1>), reordering is fine but nesting still needs to make sense
- ensure positional counts (3x %s vs 4x %s, etc.)
- build: autoincrement version for releases
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
lint-po-0.1.3.tar.gz
(7.0 kB
view hashes)