Next: , Previous: , Up: Individual Programming Languages   [Contents][Index]


15.5.2 Python

RPMs

python

Ubuntu packages

python

File extension

py

String syntax

'abc', u'abc', r'abc', ur'abc',
"abc", u"abc", r"abc", ur"abc",
'''abc''', u'''abc''', r'''abc''', ur'''abc''',
"""abc""", u"""abc""", r"""abc""", ur"""abc"""

gettext shorthand

_('abc') etc.

gettext/ngettext functions

gettext.gettext, gettext.dgettext, gettext.ngettext, gettext.dngettext, also ugettext, ungettext

textdomain

gettext.textdomain function, or gettext.install(domain) function

bindtextdomain

gettext.bindtextdomain function, or gettext.install(domain,localedir) function

setlocale

not used by the gettext emulation

Prerequisite

import gettext

Use or emulate GNU gettext

emulate

Extractor

xgettext

Formatting with positions

'...%(ident)d...' % { 'ident': value }
'...{ident}...'.format(ident=value) (see PEP 3101)

Portability

fully portable

po-mode marking

An example is available in the examples directory: hello-python.

A note about format strings: Python supports format strings with unnamed arguments, such as '...%d...', and format strings with named arguments, such as '...%(ident)d...'. The latter are preferable for internationalized programs, for two reasons:

A note about f-strings (PEP 498): xgettext

However, xgettext does not extract f-strings marked for translation that contain sub-expressions. This will not work as expected:

_(f"The file {file[i]} does not exist.")

because the translator is generally not a programmer and should thus not be confronted with expressions from the programming language.

Related software

An internationalization system based on GNU gettext and PO files is Babel.


Next: Java, Previous: C, C++, Objective C, Up: Individual Programming Languages   [Contents][Index]