pre-commit hooks for PO files
Project description
pre-commit-po-hooks
Hooks for pre-commit useful working with PO files.
Example configuration
- repo: https://github.com/mondeja/pre-commit-po-hooks
rev: v1.3.3
hooks:
- id: obsolete-messages
- id: untranslated-messages
- id: remove-django-translators
- id: standard-metadata
Hooks
obsolete-messages
Checks for obsolete messages printing their line numbers if found.
untranslated-messages
Checks for untranslated messages printing their line numbers if found.
lreplace-extracted-comments
Replaces a matching string at the beginning of extracted comments.
Parameters
-m/--match "STRING"
: Matching string to be replaced.-r/--replacement "STRING"
: Replacement for the match at the beginning of the extracted comment. If you want to remove the matching beginning you can pass an empty string""
.-d/--dry-run
: Don't do the replacements, only writes to stderr the locations of the extracted comments to be replaced.
remove-django-translators
Same as lreplace-extracted-comments
passing --match "Translators: " --replacement ""
. Useful to remove the string
prepended by Django extracting messages with xgettext (see more about this
problem in django-rosetta#245).
check-metadata
Check that metadata fields matches a set of regular expressions.
Parameters
-h/--header HEADER
: Header name to match in metadata. This argument can be passed multiple times, but after each-h/--header
argument must be a-v/--value
that indicates the regular expression for that header.-v/--value REGEX
: Can be passed multiple times. Indicates the regular expression that the last header passed in the argument-h/--header
must match in the checked PO files.-n/--no-metadata
: When this option is passed, the hook instead checks that there is no metadata in the files, so it will exit with code 1 if some metadata is found in a file or 0 if there is no metadata in any files.-r/--remove/--remove-metadata
: When this option is passed the metadata will be removed from the files instead of being trated as a lint error.
standard-metadata
Check that the metadata of your PO files fits some standard requirements based on the next regular expressions:
Project-Id-Version
:\d+\.\d+\.\d
Report-Msgid-Bugs-To
:.+\s<.+@.+\..+>
Last-Translator
:.+\s<.+@.+\..+>
Language-Team
:.+\s<.+@.+\..+>
Language
:\w\w_?\w?\w?(@\w+)?
Content-Type
:text/plain; charset=[a-zA-Z\-]+
Content-Transfer-Encoding
:\d+bits?
If you need to replace some fields with other regular expressions, you can do
it passing the -h
and -v
arguments of the
check-metadata
hook.
For example, if your version
includes the character v
at the beginning:
-h "Project-Id-Version" -v "v\d+\.\d+\.\d"
no-metadata
It will check if PO files has metadata. If has metadata, it will fail the check return 1 exit code.
Parameters
-r/--remove/--remove-metadata
: When this option is passed the metadata will be removed from the files instead of being trated as a lint error.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for pre_commit_po_hooks-1.3.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9528ba8049a381d8361b9f7cd39abb30b14af8476268dfe0ea485b16d7f7cfde |
|
MD5 | aec439b97c3eec30a6c31abaeef4d5b9 |
|
BLAKE2b-256 | fde06a68f8d97bc821415979ba2a42c8a041933abac5e4fc262c8b20d04206fe |
Hashes for pre_commit_po_hooks-1.3.3-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e34b355af26b49205125db0c506ef5e01de5d7be7e157df252e5318648a23390 |
|
MD5 | 17f301a52259153f7a3df2852320e718 |
|
BLAKE2b-256 | 22a5b3f485cf9163e399d4041728cd063a3fa3afd8b165b6563fb14b9ced2f7d |