# 22. Internationalization

The modules described in this chapter help you write software that is independent of language and locale by providing mechanisms for selecting a language to be used in program messages or by tailoring output to match local conventions.

The list of modules described in this chapter is:

- 22.1. `gettext` — Multilingual internationalization services
  - 22.1.1. GNU gettext API
  - 22.1.2. Class-based API
    - 22.1.2.1. The `NullTranslations` class
    - 22.1.2.2. The `GNUTranslations` class
    - 22.1.2.3. Solaris message catalog support
    - 22.1.2.4. The Catalog constructor
  - 22.1.3. Internationalizing your programs and modules
    - 22.1.3.1. Localizing your module
    - 22.1.3.2. Localizing your application
    - 22.1.3.3. Changing languages on the fly
    - 22.1.3.4. Deferred translations
    - 22.1.3.5. `gettext()` vs. `lgettext()`
  - 22.1.4. Acknowledgements
- 22.2. `locale` — Internationalization services
  - 22.2.1. Background, details, hints, tips and caveats
  - 22.2.2. For extension writers and programs that embed Python
  - 22.2.3. Access to message catalogs