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.

Release files for setuptools-gettext 0.1.18

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for setuptools-gettext 0.1.18
File Size Uploaded
setuptools_gettext-0.1.18.tar.gz 20.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for setuptools-gettext 0.1.18
File Interpreter ABI Platform
setuptools_gettext-0.1.18-py3-none-any.whl Python 3 none any Details

Total release size: 37.5 kB

Release files / setuptools_gettext-0.1.18.tar.gz

Download URL setuptools_gettext-0.1.18.tar.gz
Size 20.8 kB
Tags Source
SHA-256 checksum
How to use checksums
c92b0ae486def502686cd944f16559819e42f8dc0b9d683cf62e7415397f2b35
BLAKE2b-256 checksum
How to use checksums
78d33a17366c7ccc207758d88d9cc41b9a3746ac6adf2e59fde4f6848e8a8f20
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12

Release files / setuptools_gettext-0.1.18-py3-none-any.whl

Download URL setuptools_gettext-0.1.18-py3-none-any.whl
Size 16.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3363f81a30c0f6b3db5e385e5265cce8192acdc84ce29fc972b11a2c247fe51d
BLAKE2b-256 checksum
How to use checksums
e3aed508c63dd828c704aae8a4cfd5ab49986e14763cced17edaa3db2cb57ec3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12

Release history Release notifications | RSS feed

This release

0.1.18 This release

2 release files

0.1.17

2 release files

0.1.16

2 release files

0.1.14

2 release files

0.1.11

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page