Skip to main content

Msgfmt build hook, replacing all po with mo in build

Project description

hatch-msgfmt

A hatch msgfmt plugin, simply replacing all po files with mo files, using msgfmt in PATH.

At a future point, a pure-python version could be implemented, by implementing a pure-Python version of msgfmt. [The standard cpython msgfmt.py](https:// github.com/python/cpython/blob/main/Tools/i18n/msgfmt.py) could be a starting point for this, but it's not as capable as GNU Gettext, and doesn't support plural forms. Even with a fresh implementation, handling the file encoding from the header is challenging, especially for variable-length encodings like EUC-JP, which could feasibly cause particular problems.

Better to just use the system one for now. If somebody wants to submit a pure- python implementation that functions, I'll gladly integrate it as a separate msgfmtpy plugin in the same repository.

Config parameters

  • locales: The location of the source .po files.

  • destination: The location of the destination .mo files. They will be put into this location in the same structure as the source tree relative to the locales path.

  • pathsub_regex (optional): An input regex to match against source files for name changes.

  • pathsub_replace (required if pathsub_regex is present): An replacement pattern to use for name changes.

Copyright

This plugin is Copyright 2023 Absolute Performance, Inc. with contributions by Adrián Chaves.

MIT licensed.

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

hatch-msgfmt-1.1.6.tar.gz (4.5 kB view hashes)

Uploaded Source

Built Distribution

hatch_msgfmt-1.1.6-py3-none-any.whl (4.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page