# 6.27 `gettext` -- Multilingual internationalization services

The `gettext` module provides internationalization (I18N) and localization (L10N) services for your Python modules and applications. It supports both the GNU `gettext` message catalog API and a higher level, class-based API that may be more appropriate for Python files. The interface described below allows you to write your module and application messages in one natural language, and provide a catalog of translated messages for running under different natural languages.

Some hints on localizing your Python modules and applications are also given.

Subsections

- 6.27.1 GNU gettext API
- 6.27.2 Class-based API
  - 6.27.2.1 The `NullTranslations` class
  - 6.27.2.2 The `GNUTranslations` class
  - 6.27.2.3 Solaris message catalog support
  - 6.27.2.4 The Catalog constructor
- 6.27.3 Internationalizing your programs and modules
  - 6.27.3.1 Localizing your module
  - 6.27.3.2 Localizing your application
  - 6.27.3.3 Changing languages on the fly
  - 6.27.3.4 Deferred translations
- 6.27.4 Acknowledgements