Skip to main content

setuptools plugin for gettext

Compile .po files into .mo files.

This plugin adds build_mo, clean_mo and install_mo subcommands for setup.py as well as hooking those into standard commands.

Usage

By default, setuptools_gettext compiles and installs mo files when there is a po directory present that contains .po files. It also supports the standard gettext layout with locale/*/LC_MESSAGES/*.po files. If po is absent and a top-level locale directory contains standard gettext catalogs, that directory is used automatically.

The .mo files are installed adjacent to your package as package data in a subdirectory called locale.

You can override these settings in pyproject.toml:

[build-system]
requires = ["setuptools", "setuptools-gettext"]
...

[tool.setuptools-gettext]
# directory in which the .po files can be found 
source_dir = "po"
# directory in which the generated .mo files are placed when building
build_dir = "breezy/locale"
# compiler to use: "auto", "msgfmt", or "translate-toolkit"
compiler = "auto"

For standard gettext layouts, point both directories at the locale tree:

[tool.setuptools-gettext]
source_dir = "breezy/locale"
build_dir = "breezy/locale"

Flat po/de.po files compile to <build_dir>/de/LC_MESSAGES/<project-name>.mo by default. Standard locale/de/LC_MESSAGES/django.po files compile to <build_dir>/de/LC_MESSAGES/django.mo by default. Passing --output-base overrides the output name for both layouts.

Compilation tool

By default, either msgfmt or the translate-toolkit package is used to compile the .po files into .mo files - whichever is available.

Set compiler = "msgfmt" or compiler = "translate-toolkit" in [tool.setuptools-gettext] to force a compiler from pyproject.toml. Use compiler = "auto" to keep the default automatic detection.

The --msgfmt option can be used to force the use of msgfmt, and the --translate-toolkit option can be used to force the use of the translate-toolkit. Command line options take precedence over the pyproject.toml setting.

At the moment, msgfmt is preferred. In the future, the translate-toolkit will become the default.

You can use the translate-toolkit extra to install the translate-toolkit package.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

setuptools_gettext-0.1.18.tar.gz (20.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

setuptools_gettext-0.1.18-py3-none-any.whl (16.7 kB view details)

Uploaded Python 3

File details

Details for the file setuptools_gettext-0.1.18.tar.gz.

File metadata

  • Download URL: setuptools_gettext-0.1.18.tar.gz
  • Upload date:
  • Size: 20.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for setuptools_gettext-0.1.18.tar.gz
Algorithm Hash digest
SHA256 c92b0ae486def502686cd944f16559819e42f8dc0b9d683cf62e7415397f2b35
MD5 2ba3e2b44b1d383dd69affcb2dbae272
BLAKE2b-256 78d33a17366c7ccc207758d88d9cc41b9a3746ac6adf2e59fde4f6848e8a8f20

See more details on using hashes here.

File details

Details for the file setuptools_gettext-0.1.18-py3-none-any.whl.

File metadata

File hashes

Hashes for setuptools_gettext-0.1.18-py3-none-any.whl
Algorithm Hash digest
SHA256 3363f81a30c0f6b3db5e385e5265cce8192acdc84ce29fc972b11a2c247fe51d
MD5 2e4965319bb31d4748536d4f6fb14e95
BLAKE2b-256 e3aed508c63dd828c704aae8a4cfd5ab49986e14763cced17edaa3db2cb57ec3

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.18 This release

2 files

0.1.17

2 files

0.1.16

2 files

0.1.14

2 files

0.1.11

2 files

0.1.10

2 files

0.1.9

2 files

0.1.8

2 files

0.1.7

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page