LinuxCommandLibrary

pygettext2.7

Extract translatable strings from Python source code

SYNOPSIS

pygettext2.7 [options] [file ...]

PARAMETERS

-o FILE, --output=FILE
    Write output to the specified .pot file instead of standard output.

-D DIR, --directory=DIR
    Add DIR to the module search path for input files.

-v, --verbose
    Print names of files being processed to standard error.

-n, --no-default-keywords
    Do not use default keywords (e.g., _, gettext) for string extraction.

-k WORD, --keyword=WORD
    Specify a keyword to look for in addition to or instead of default ones. Can be used multiple times.

-E ENCODING, --encoding=ENCODING
    Specify the encoding of the input source files.

--copyright-holder=STRING
    Set the copyright holder in the generated .pot file header.

--msgid-bugs-address=EMAIL@ADDRESS
    Set the email address for bug reports in the .pot file header.

-h, --help
    Show a help message and exit.

--version
    Show the program's version number and exit.

DESCRIPTION

The pygettext2.7 command is a utility designed to extract localizable strings from Python 2.7 source code files. It scans Python scripts for calls to internationalization functions (such as _() or gettext()) and generates a .pot (Portable Object Template) file. This template file serves as the basis for creating .po (Portable Object) files, which contain the original strings and their translations into various languages. While essential for building multilingual applications in its time, it's specific to Python 2.7 and is now considered deprecated in favor of Python 3's pygettext or more comprehensive tools like xgettext from GNU gettext.

CAVEATS

This utility is specifically designed for Python 2.7 source code, which is now End-of-Life (EOL) and no longer officially supported. Using it for Python 3 projects is not recommended and may lead to unexpected behavior or incomplete string extraction. Modern Python development should use the built-in pygettext from Python 3, or more advanced tools like xgettext (from GNU gettext) or third-party internationalization libraries such as Babel.

OUTPUT FORMAT

The command generates a .pot (Portable Object Template) file, which is a plain text file containing all extracted translatable strings along with their source locations and any associated comments. This file serves as the master template for creating language-specific .po files.

INTERNATIONALIZATION WORKFLOW

Typically, pygettext2.7 is the first step in the internationalization process:
1. Run pygettext2.7 to create a .pot file.
2. Use msginit to create language-specific .po files from the .pot file.
3. Translators edit the .po files.
4. Use msgfmt to compile .po files into binary .mo files for use by applications.

HISTORY

The pygettext utility, including its Python 2.7 specific variant, originated as part of Python's standard library to facilitate internationalization (i18n) for Python applications. It provides a Python-native way to integrate with the GNU gettext internationalization system. The pygettext2.7 variant specifically refers to the version bundled with or intended for use with Python 2.7 environments. Its development paralleled the lifecycle of Python 2.x, providing a crucial tool for developers building localized applications during that era. With the deprecation and end-of-life of Python 2.7, its usage has declined, being superseded by Python 3's pygettext and other more feature-rich alternatives.

SEE ALSO

xgettext(1), msginit(1), msgfmt(1), gettext(1)

Copied to clipboard