forked from AFPy/python-docs-fr
771 lines
27 KiB
Plaintext
771 lines
27 KiB
Plaintext
# SOME DESCRIPTIVE TITLE.
|
|
# Copyright (C) 2001-2016, Python Software Foundation
|
|
# This file is distributed under the same license as the Python package.
|
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
|
#
|
|
#, fuzzy
|
|
msgid ""
|
|
msgstr ""
|
|
"Project-Id-Version: Python 3.6\n"
|
|
"Report-Msgid-Bugs-To: \n"
|
|
"POT-Creation-Date: 2017-04-02 22:11+0200\n"
|
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
|
"Language: \n"
|
|
"MIME-Version: 1.0\n"
|
|
"Content-Type: text/plain; charset=UTF-8\n"
|
|
"Content-Transfer-Encoding: 8bit\n"
|
|
|
|
#: ../Doc/library/gettext.rst:2
|
|
msgid ":mod:`gettext` --- Multilingual internationalization services"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:10
|
|
msgid "**Source code:** :source:`Lib/gettext.py`"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:14
|
|
msgid ""
|
|
"The :mod:`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."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:22
|
|
msgid ""
|
|
"Some hints on localizing your Python modules and applications are also given."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:26
|
|
msgid "GNU :program:`gettext` API"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:28
|
|
msgid ""
|
|
"The :mod:`gettext` module defines the following API, which is very similar "
|
|
"to the GNU :program:`gettext` API. If you use this API you will affect the "
|
|
"translation of your entire application globally. Often this is what you "
|
|
"want if your application is monolingual, with the choice of language "
|
|
"dependent on the locale of your user. If you are localizing a Python "
|
|
"module, or if your application needs to switch languages on the fly, you "
|
|
"probably want to use the class-based API instead."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:39
|
|
msgid ""
|
|
"Bind the *domain* to the locale directory *localedir*. More concretely, :"
|
|
"mod:`gettext` will look for binary :file:`.mo` files for the given domain "
|
|
"using the path (on Unix): :file:`localedir/language/LC_MESSAGES/domain.mo`, "
|
|
"where *languages* is searched for in the environment variables :envvar:"
|
|
"`LANGUAGE`, :envvar:`LC_ALL`, :envvar:`LC_MESSAGES`, and :envvar:`LANG` "
|
|
"respectively."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:45
|
|
msgid ""
|
|
"If *localedir* is omitted or ``None``, then the current binding for *domain* "
|
|
"is returned. [#]_"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:51
|
|
msgid ""
|
|
"Bind the *domain* to *codeset*, changing the encoding of strings returned by "
|
|
"the :func:`gettext` family of functions. If *codeset* is omitted, then the "
|
|
"current binding is returned."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:58
|
|
msgid ""
|
|
"Change or query the current global domain. If *domain* is ``None``, then "
|
|
"the current global domain is returned, otherwise the global domain is set to "
|
|
"*domain*, which is returned."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:65
|
|
msgid ""
|
|
"Return the localized translation of *message*, based on the current global "
|
|
"domain, language, and locale directory. This function is usually aliased "
|
|
"as :func:`_` in the local namespace (see examples below)."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:72
|
|
msgid ""
|
|
"Equivalent to :func:`gettext`, but the translation is returned in the "
|
|
"preferred system encoding, if no other encoding was explicitly set with :"
|
|
"func:`bind_textdomain_codeset`."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:79
|
|
msgid ""
|
|
"Like :func:`gettext`, but look the message up in the specified *domain*."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:84
|
|
msgid ""
|
|
"Equivalent to :func:`dgettext`, but the translation is returned in the "
|
|
"preferred system encoding, if no other encoding was explicitly set with :"
|
|
"func:`bind_textdomain_codeset`."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:91
|
|
msgid ""
|
|
"Like :func:`gettext`, but consider plural forms. If a translation is found, "
|
|
"apply the plural formula to *n*, and return the resulting message (some "
|
|
"languages have more than two plural forms). If no translation is found, "
|
|
"return *singular* if *n* is 1; return *plural* otherwise."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:96
|
|
msgid ""
|
|
"The Plural formula is taken from the catalog header. It is a C or Python "
|
|
"expression that has a free variable *n*; the expression evaluates to the "
|
|
"index of the plural in the catalog. See `the GNU gettext documentation "
|
|
"<https://www.gnu.org/software/gettext/manual/gettext.html>`__ for the "
|
|
"precise syntax to be used in :file:`.po` files and the formulas for a "
|
|
"variety of languages."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:106
|
|
msgid ""
|
|
"Equivalent to :func:`ngettext`, but the translation is returned in the "
|
|
"preferred system encoding, if no other encoding was explicitly set with :"
|
|
"func:`bind_textdomain_codeset`."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:113
|
|
msgid ""
|
|
"Like :func:`ngettext`, but look the message up in the specified *domain*."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:118
|
|
msgid ""
|
|
"Equivalent to :func:`dngettext`, but the translation is returned in the "
|
|
"preferred system encoding, if no other encoding was explicitly set with :"
|
|
"func:`bind_textdomain_codeset`."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:123
|
|
msgid ""
|
|
"Note that GNU :program:`gettext` also defines a :func:`dcgettext` method, "
|
|
"but this was deemed not useful and so it is currently unimplemented."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:126
|
|
msgid "Here's an example of typical usage for this API::"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:137
|
|
msgid "Class-based API"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:139
|
|
msgid ""
|
|
"The class-based API of the :mod:`gettext` module gives you more flexibility "
|
|
"and greater convenience than the GNU :program:`gettext` API. It is the "
|
|
"recommended way of localizing your Python applications and modules. :mod:"
|
|
"`gettext` defines a \"translations\" class which implements the parsing of "
|
|
"GNU :file:`.mo` format files, and has methods for returning strings. "
|
|
"Instances of this \"translations\" class can also install themselves in the "
|
|
"built-in namespace as the function :func:`_`."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:150
|
|
msgid ""
|
|
"This function implements the standard :file:`.mo` file search algorithm. It "
|
|
"takes a *domain*, identical to what :func:`textdomain` takes. Optional "
|
|
"*localedir* is as in :func:`bindtextdomain` Optional *languages* is a list "
|
|
"of strings, where each string is a language code."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:155
|
|
msgid ""
|
|
"If *localedir* is not given, then the default system locale directory is "
|
|
"used. [#]_ If *languages* is not given, then the following environment "
|
|
"variables are searched: :envvar:`LANGUAGE`, :envvar:`LC_ALL`, :envvar:"
|
|
"`LC_MESSAGES`, and :envvar:`LANG`. The first one returning a non-empty "
|
|
"value is used for the *languages* variable. The environment variables should "
|
|
"contain a colon separated list of languages, which will be split on the "
|
|
"colon to produce the expected list of language code strings."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:163
|
|
msgid ""
|
|
":func:`find` then expands and normalizes the languages, and then iterates "
|
|
"through them, searching for an existing file built of these components:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:166
|
|
msgid ":file:`{localedir}/{language}/LC_MESSAGES/{domain}.mo`"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:168
|
|
msgid ""
|
|
"The first such file name that exists is returned by :func:`find`. If no such "
|
|
"file is found, then ``None`` is returned. If *all* is given, it returns a "
|
|
"list of all file names, in the order in which they appear in the languages "
|
|
"list or the environment variables."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:176
|
|
msgid ""
|
|
"Return a :class:`Translations` instance based on the *domain*, *localedir*, "
|
|
"and *languages*, which are first passed to :func:`find` to get a list of the "
|
|
"associated :file:`.mo` file paths. Instances with identical :file:`.mo` "
|
|
"file names are cached. The actual class instantiated is either *class_* if "
|
|
"provided, otherwise :class:`GNUTranslations`. The class's constructor must "
|
|
"take a single :term:`file object` argument. If provided, *codeset* will "
|
|
"change the charset used to encode translated strings in the :meth:`lgettext` "
|
|
"and :meth:`lngettext` methods."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:185
|
|
msgid ""
|
|
"If multiple files are found, later files are used as fallbacks for earlier "
|
|
"ones. To allow setting the fallback, :func:`copy.copy` is used to clone each "
|
|
"translation object from the cache; the actual instance data is still shared "
|
|
"with the cache."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:190
|
|
msgid ""
|
|
"If no :file:`.mo` file is found, this function raises :exc:`OSError` if "
|
|
"*fallback* is false (which is the default), and returns a :class:"
|
|
"`NullTranslations` instance if *fallback* is true."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:194
|
|
msgid ":exc:`IOError` used to be raised instead of :exc:`OSError`."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:200
|
|
msgid ""
|
|
"This installs the function :func:`_` in Python's builtins namespace, based "
|
|
"on *domain*, *localedir*, and *codeset* which are passed to the function :"
|
|
"func:`translation`."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:204
|
|
msgid ""
|
|
"For the *names* parameter, please see the description of the translation "
|
|
"object's :meth:`~NullTranslations.install` method."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:207
|
|
msgid ""
|
|
"As seen below, you usually mark the strings in your application that are "
|
|
"candidates for translation, by wrapping them in a call to the :func:`_` "
|
|
"function, like this::"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:213
|
|
msgid ""
|
|
"For convenience, you want the :func:`_` function to be installed in Python's "
|
|
"builtins namespace, so it is easily accessible in all modules of your "
|
|
"application."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:219
|
|
msgid "The :class:`NullTranslations` class"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:221
|
|
msgid ""
|
|
"Translation classes are what actually implement the translation of original "
|
|
"source file message strings to translated message strings. The base class "
|
|
"used by all translation classes is :class:`NullTranslations`; this provides "
|
|
"the basic interface you can use to write your own specialized translation "
|
|
"classes. Here are the methods of :class:`NullTranslations`:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:230
|
|
msgid ""
|
|
"Takes an optional :term:`file object` *fp*, which is ignored by the base "
|
|
"class. Initializes \"protected\" instance variables *_info* and *_charset* "
|
|
"which are set by derived classes, as well as *_fallback*, which is set "
|
|
"through :meth:`add_fallback`. It then calls ``self._parse(fp)`` if *fp* is "
|
|
"not ``None``."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:238
|
|
msgid ""
|
|
"No-op'd in the base class, this method takes file object *fp*, and reads the "
|
|
"data from the file, initializing its message catalog. If you have an "
|
|
"unsupported message catalog file format, you should override this method to "
|
|
"parse your format."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:246
|
|
msgid ""
|
|
"Add *fallback* as the fallback object for the current translation object. A "
|
|
"translation object should consult the fallback if it cannot provide a "
|
|
"translation for a given message."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:253
|
|
msgid ""
|
|
"If a fallback has been set, forward :meth:`gettext` to the fallback. "
|
|
"Otherwise, return the translated message. Overridden in derived classes."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:259
|
|
msgid ""
|
|
"If a fallback has been set, forward :meth:`lgettext` to the fallback. "
|
|
"Otherwise, return the translated message. Overridden in derived classes."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:265
|
|
msgid ""
|
|
"If a fallback has been set, forward :meth:`ngettext` to the fallback. "
|
|
"Otherwise, return the translated message. Overridden in derived classes."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:271
|
|
msgid ""
|
|
"If a fallback has been set, forward :meth:`lngettext` to the fallback. "
|
|
"Otherwise, return the translated message. Overridden in derived classes."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:277
|
|
msgid "Return the \"protected\" :attr:`_info` variable."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:282
|
|
msgid ""
|
|
"Return the \"protected\" :attr:`_charset` variable, which is the encoding of "
|
|
"the message catalog file."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:288
|
|
msgid ""
|
|
"Return the \"protected\" :attr:`_output_charset` variable, which defines the "
|
|
"encoding used to return translated messages in :meth:`lgettext` and :meth:"
|
|
"`lngettext`."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:295
|
|
msgid ""
|
|
"Change the \"protected\" :attr:`_output_charset` variable, which defines the "
|
|
"encoding used to return translated messages."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:301
|
|
msgid ""
|
|
"This method installs :meth:`self.gettext` into the built-in namespace, "
|
|
"binding it to ``_``."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:304
|
|
msgid ""
|
|
"If the *names* parameter is given, it must be a sequence containing the "
|
|
"names of functions you want to install in the builtins namespace in addition "
|
|
"to :func:`_`. Supported names are ``'gettext'`` (bound to :meth:`self."
|
|
"gettext`), ``'ngettext'`` (bound to :meth:`self.ngettext`), ``'lgettext'`` "
|
|
"and ``'lngettext'``."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:310
|
|
msgid ""
|
|
"Note that this is only one way, albeit the most convenient way, to make the :"
|
|
"func:`_` function available to your application. Because it affects the "
|
|
"entire application globally, and specifically the built-in namespace, "
|
|
"localized modules should never install :func:`_`. Instead, they should use "
|
|
"this code to make :func:`_` available to their module::"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:320
|
|
msgid ""
|
|
"This puts :func:`_` only in the module's global namespace and so only "
|
|
"affects calls within this module."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:325
|
|
msgid "The :class:`GNUTranslations` class"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:327
|
|
msgid ""
|
|
"The :mod:`gettext` module provides one additional class derived from :class:"
|
|
"`NullTranslations`: :class:`GNUTranslations`. This class overrides :meth:"
|
|
"`_parse` to enable reading GNU :program:`gettext` format :file:`.mo` files "
|
|
"in both big-endian and little-endian format."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:332
|
|
msgid ""
|
|
":class:`GNUTranslations` parses optional meta-data out of the translation "
|
|
"catalog. It is convention with GNU :program:`gettext` to include meta-data "
|
|
"as the translation for the empty string. This meta-data is in :rfc:`822`\\ -"
|
|
"style ``key: value`` pairs, and should contain the ``Project-Id-Version`` "
|
|
"key. If the key ``Content-Type`` is found, then the ``charset`` property is "
|
|
"used to initialize the \"protected\" :attr:`_charset` instance variable, "
|
|
"defaulting to ``None`` if not found. If the charset encoding is specified, "
|
|
"then all message ids and message strings read from the catalog are converted "
|
|
"to Unicode using this encoding, else ASCII encoding is assumed."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:342
|
|
msgid ""
|
|
"Since message ids are read as Unicode strings too, all :meth:`*gettext` "
|
|
"methods will assume message ids as Unicode strings, not byte strings."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:345
|
|
msgid ""
|
|
"The entire set of key/value pairs are placed into a dictionary and set as "
|
|
"the \"protected\" :attr:`_info` instance variable."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:348
|
|
msgid ""
|
|
"If the :file:`.mo` file's magic number is invalid, the major version number "
|
|
"is unexpected, or if other problems occur while reading the file, "
|
|
"instantiating a :class:`GNUTranslations` class can raise :exc:`OSError`."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:352
|
|
msgid ""
|
|
"The following methods are overridden from the base class implementation:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:357
|
|
msgid ""
|
|
"Look up the *message* id in the catalog and return the corresponding message "
|
|
"string, as a Unicode string. If there is no entry in the catalog for the "
|
|
"*message* id, and a fallback has been set, the look up is forwarded to the "
|
|
"fallback's :meth:`gettext` method. Otherwise, the *message* id is returned."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:365 ../Doc/library/gettext.rst:392
|
|
msgid ""
|
|
"Equivalent to :meth:`gettext`, but the translation is returned as a "
|
|
"bytestring encoded in the selected output charset, or in the preferred "
|
|
"system encoding if no encoding was explicitly set with :meth:"
|
|
"`set_output_charset`."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:372
|
|
msgid ""
|
|
"Do 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 string is a Unicode string."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:376
|
|
msgid ""
|
|
"If the message id is not found in the catalog, and a fallback is specified, "
|
|
"the request is forwarded to the fallback's :meth:`ngettext` method. "
|
|
"Otherwise, when *n* is 1 *singular* is returned, and *plural* is returned in "
|
|
"all other cases."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:380
|
|
msgid "Here is an example::"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:398
|
|
msgid "Solaris message catalog support"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:400
|
|
msgid ""
|
|
"The Solaris operating system defines its own binary :file:`.mo` file format, "
|
|
"but since no documentation can be found on this format, it is not supported "
|
|
"at this time."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:406
|
|
msgid "The Catalog constructor"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:410
|
|
msgid ""
|
|
"GNOME uses a version of the :mod:`gettext` module by James Henstridge, but "
|
|
"this version has a slightly different API. Its documented usage was::"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:418
|
|
msgid ""
|
|
"For compatibility with this older module, the function :func:`Catalog` is an "
|
|
"alias for the :func:`translation` function described above."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:421
|
|
msgid ""
|
|
"One difference between this module and Henstridge's: his catalog objects "
|
|
"supported access through a mapping API, but this appears to be unused and so "
|
|
"is not currently supported."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:427
|
|
msgid "Internationalizing your programs and modules"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:429
|
|
msgid ""
|
|
"Internationalization (I18N) refers to the operation by which a program is "
|
|
"made aware of multiple languages. Localization (L10N) refers to the "
|
|
"adaptation of your program, once internationalized, to the local language "
|
|
"and cultural habits. In order to provide multilingual messages for your "
|
|
"Python programs, you need to take the following steps:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:435
|
|
msgid ""
|
|
"prepare your program or module by specially marking translatable strings"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:437
|
|
msgid ""
|
|
"run a suite of tools over your marked files to generate raw messages catalogs"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:439
|
|
msgid "create language specific translations of the message catalogs"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:441
|
|
msgid ""
|
|
"use the :mod:`gettext` module so that message strings are properly translated"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:443
|
|
msgid ""
|
|
"In order to prepare your code for I18N, you need to look at all the strings "
|
|
"in your files. Any string that needs to be translated should be marked by "
|
|
"wrapping it in ``_('...')`` --- that is, a call to the function :func:`_`. "
|
|
"For example::"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:453
|
|
msgid ""
|
|
"In this example, the string ``'writing a log message'`` is marked as a "
|
|
"candidate for translation, while the strings ``'mylog.txt'`` and ``'w'`` are "
|
|
"not."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:456
|
|
msgid ""
|
|
"There are a few tools to extract the strings meant for translation. The "
|
|
"original GNU :program:`gettext` only supported C or C++ source code but its "
|
|
"extended version :program:`xgettext` scans code written in a number of "
|
|
"languages, including Python, to find strings marked as translatable. `Babel "
|
|
"<http://babel.pocoo.org/>`__ is a Python internationalization library that "
|
|
"includes a :file:`pybabel` script to extract and compile message catalogs. "
|
|
"François Pinard's program called :program:`xpot` does a similar job and is "
|
|
"available as part of his `po-utils package <https://github.com/pinard/po-"
|
|
"utils>`__."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:466
|
|
msgid ""
|
|
"(Python also includes pure-Python versions of these programs, called :"
|
|
"program:`pygettext.py` and :program:`msgfmt.py`; some Python distributions "
|
|
"will install them for you. :program:`pygettext.py` is similar to :program:"
|
|
"`xgettext`, but only understands Python source code and cannot handle other "
|
|
"programming languages such as C or C++. :program:`pygettext.py` supports a "
|
|
"command-line interface similar to :program:`xgettext`; for details on its "
|
|
"use, run ``pygettext.py --help``. :program:`msgfmt.py` is binary compatible "
|
|
"with GNU :program:`msgfmt`. With these two programs, you may not need the "
|
|
"GNU :program:`gettext` package to internationalize your Python applications.)"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:478
|
|
msgid ""
|
|
":program:`xgettext`, :program:`pygettext`, and similar tools generate :file:"
|
|
"`.po` files that are message catalogs. They are structured human-readable "
|
|
"files that contain every marked string in the source code, along with a "
|
|
"placeholder for the translated versions of these strings."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:484
|
|
msgid ""
|
|
"Copies of these :file:`.po` files are then handed over to the individual "
|
|
"human translators who write translations for every supported natural "
|
|
"language. They send back the completed language-specific versions as a :"
|
|
"file:`<language-name>.po` file that's compiled into a machine-readable :file:"
|
|
"`.mo` binary catalog file using the :program:`msgfmt` program. The :file:`."
|
|
"mo` files are used by the :mod:`gettext` module for the actual translation "
|
|
"processing at run-time."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:493
|
|
msgid ""
|
|
"How you use the :mod:`gettext` module in your code depends on whether you "
|
|
"are internationalizing a single module or your entire application. The next "
|
|
"two sections will discuss each case."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:499
|
|
msgid "Localizing your module"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:501
|
|
msgid ""
|
|
"If you are localizing your module, you must take care not to make global "
|
|
"changes, e.g. to the built-in namespace. You should not use the GNU "
|
|
"``gettext`` API but instead the class-based API."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:505
|
|
msgid ""
|
|
"Let's say your module is called \"spam\" and the module's various natural "
|
|
"language translation :file:`.mo` files reside in :file:`/usr/share/locale` "
|
|
"in GNU :program:`gettext` format. Here's what you would put at the top of "
|
|
"your module::"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:516
|
|
msgid "Localizing your application"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:518
|
|
msgid ""
|
|
"If you are localizing your application, you can install the :func:`_` "
|
|
"function globally into the built-in namespace, usually in the main driver "
|
|
"file of your application. This will let all your application-specific files "
|
|
"just use ``_('...')`` without having to explicitly install it in each file."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:523
|
|
msgid ""
|
|
"In the simple case then, you need only add the following bit of code to the "
|
|
"main driver file of your application::"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:529
|
|
msgid ""
|
|
"If you need to set the locale directory, you can pass it into the :func:"
|
|
"`install` function::"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:537
|
|
msgid "Changing languages on the fly"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:539
|
|
msgid ""
|
|
"If your program needs to support many languages at the same time, you may "
|
|
"want to create multiple translation instances and then switch between them "
|
|
"explicitly, like so::"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:560
|
|
msgid "Deferred translations"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:562
|
|
msgid ""
|
|
"In most coding situations, strings are translated where they are coded. "
|
|
"Occasionally however, you need to mark strings for translation, but defer "
|
|
"actual translation until later. A classic example is::"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:575
|
|
msgid ""
|
|
"Here, you want to mark the strings in the ``animals`` list as being "
|
|
"translatable, but you don't actually want to translate them until they are "
|
|
"printed."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:579
|
|
msgid "Here is one way you can handle this situation::"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:595
|
|
msgid ""
|
|
"This works because the dummy definition of :func:`_` simply returns the "
|
|
"string unchanged. And this dummy definition will temporarily override any "
|
|
"definition of :func:`_` in the built-in namespace (until the :keyword:`del` "
|
|
"command). Take care, though if you have a previous definition of :func:`_` "
|
|
"in the local namespace."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:601
|
|
msgid ""
|
|
"Note that the second use of :func:`_` will not identify \"a\" as being "
|
|
"translatable to the :program:`gettext` program, because the parameter is not "
|
|
"a string literal."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:605
|
|
msgid "Another way to handle this is with the following example::"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:619
|
|
msgid ""
|
|
"In this case, you are marking translatable strings with the function :func:"
|
|
"`N_`, which won't conflict with any definition of :func:`_`. However, you "
|
|
"will need to teach your message extraction program to look for translatable "
|
|
"strings marked with :func:`N_`. :program:`xgettext`, :program:`pygettext`, "
|
|
"``pybabel extract``, and :program:`xpot` all support this through the use of "
|
|
"the :option:`!-k` command-line switch. The choice of :func:`N_` here is "
|
|
"totally arbitrary; it could have just as easily been :func:"
|
|
"`MarkThisStringForTranslation`."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:630
|
|
msgid "Acknowledgements"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:632
|
|
msgid ""
|
|
"The following people contributed code, feedback, design suggestions, "
|
|
"previous implementations, and valuable experience to the creation of this "
|
|
"module:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:635
|
|
msgid "Peter Funk"
|
|
msgstr "Peter Funk"
|
|
|
|
#: ../Doc/library/gettext.rst:637
|
|
msgid "James Henstridge"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:639
|
|
msgid "Juan David Ibáñez Palomar"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:641
|
|
msgid "Marc-André Lemburg"
|
|
msgstr "Marc-André Lemburg"
|
|
|
|
#: ../Doc/library/gettext.rst:643
|
|
msgid "Martin von Löwis"
|
|
msgstr "Martin von Löwis"
|
|
|
|
#: ../Doc/library/gettext.rst:645
|
|
msgid "François Pinard"
|
|
msgstr "François Pinard"
|
|
|
|
#: ../Doc/library/gettext.rst:647
|
|
msgid "Barry Warsaw"
|
|
msgstr "Barry Warsaw"
|
|
|
|
#: ../Doc/library/gettext.rst:649
|
|
msgid "Gustavo Niemeyer"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:652
|
|
msgid "Footnotes"
|
|
msgstr "Notes"
|
|
|
|
#: ../Doc/library/gettext.rst:653
|
|
msgid ""
|
|
"The default locale directory is system dependent; for example, on RedHat "
|
|
"Linux it is :file:`/usr/share/locale`, but on Solaris it is :file:`/usr/lib/"
|
|
"locale`. The :mod:`gettext` module does not try to support these system "
|
|
"dependent defaults; instead its default is :file:`sys.prefix/share/locale`. "
|
|
"For this reason, it is always best to call :func:`bindtextdomain` with an "
|
|
"explicit absolute path at the start of your application."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/gettext.rst:660
|
|
msgid "See the footnote for :func:`bindtextdomain` above."
|
|
msgstr ""
|