### Navigation

- index
- modules |
- next |
- previous |
- TurboGears 2.1.5 documentation »
- Search:
- Extended Table of Contents »
- The Gears in Detail »
- Modules »

# `pylons.i18n.translation` – Translation/Localization functions

Translation/Localization functions.

Provides `gettext` translation functions via an app’s `pylons.translator` and get/set_lang for changing the language translated to.

## Module Contents

exception `pylons.i18n.translation.``LanguageError`

  Exception raised when a problem occurs with changing languages

class `pylons.i18n.translation.``LazyString`(func, *args, **kwargs)

  Has a number of lazily evaluated functions replicating a string. Just override the eval() method to produce the actual value.

  This method copied from TurboGears.

`pylons.i18n.translation.``lazify`(func)

  Decorator to return a lazy-evaluated version of the original

`pylons.i18n.translation.``gettext_noop`(value)

  Mark a string for translation without translating it. Returns value.

  Used for global strings, e.g.:

      foo = N_('Hello')

      class Bar:
          def __init__(self):
              self.local_foo = _(foo)

      h.set_lang('fr')
      assert Bar().local_foo == 'Bonjour'
      h.set_lang('es')
      assert Bar().local_foo == 'Hola'
      assert foo == 'Hello'

`pylons.i18n.translation.``gettext`(value)

  Mark a string for translation. Returns the localized string of value.

  Mark a string to be localized as follows:

      gettext('This should be in lots of languages')

`pylons.i18n.translation.``ugettext`(value)

  Mark a string for translation. Returns the localized unicode string of value.

  Mark a string to be localized as follows:

      _('This should be in lots of languages')

`pylons.i18n.translation.``ngettext`(singular, plural, n)

  Mark a string for translation. Returns the localized string of the pluralized value.

  This does a plural-forms lookup of a message id. `singular` is used as the message id for purposes of lookup in the catalog, while `n` is used to determine which plural form to use. The returned message is a string.

  Mark a string to be localized as follows:

      ngettext('There is %(num)d file here', 'There are %(num)d files here',
               n) % {'num': n}

`pylons.i18n.translation.``ungettext`(singular, plural, n)

  Mark a string for translation. Returns the localized unicode string of the pluralized value.

  This does a plural-forms lookup of a message id. `singular` is used as the message id for purposes of lookup in the catalog, while `n` is used to determine which plural form to use. The returned message is a Unicode string.

  Mark a string to be localized as follows:

      ungettext('There is %(num)d file here', 'There are %(num)d files here',
                n) % {'num': n}

`pylons.i18n.translation.``set_lang`(lang, **kwargs)

  Set the current language used for translations.

  `lang` should be a string or a list of strings. If a list of strings, the first language is set as the main and the subsequent languages are added as fallbacks.

`pylons.i18n.translation.``get_lang`()

  Return the current i18n language used

`pylons.i18n.translation.``add_fallback`(lang, **kwargs)

  Add a fallback language from which words not matched in other languages will be translated to.

  This fallback will be associated with the currently selected language – that is, resetting the language via set_lang() resets the current fallbacks.

  This function can be called multiple times to add multiple fallbacks.