Gettext/Python
Next: Java, Previous: C, Up: List of 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
,uabc
,rabc
,urabc
,"""abc"""
,u"""abc"""
,r"""abc"""
,ur"""abc"""
- gettext shorthand
_('abc')
etc.- gettext/ngettext functions
gettext.gettext
,gettext.dgettext
,gettext.ngettext
,gettext.dngettext
, alsougettext
,ungettext
- textdomain
gettext.textdomain
function, orgettext.install(domain)
function- bindtextdomain
gettext.bindtextdomain
function, orgettext.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 }
- 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:
When a format string takes more than one argument, the translator can provide a translation that uses the arguments in a different order, if the format string uses named arguments. For example, the translator can reformulate
"'%(volume)s' has only %(freespace)d bytes free."
to
"Only %(freespace)d bytes free on '%(volume)s'."
Additionally, the identifiers also provide some context to the translator.
- In the context of plural forms, the format string used for the singular form
does not use the numeric argument in many languages. Even in English, one
prefers to write
"one hour"
instead of"1 hour"
. Omitting individual arguments from format strings like this is only possible with the named argument syntax. (With unnamed arguments, Python – unlike C – verifies that the format string uses all supplied arguments.)
Next: Java, Previous: C, Up: List of Programming Languages [Contents][Index]