mirror of
https://github.com/python/cpython.git
synced 2025-09-01 14:38:00 +00:00

svn+ssh://pythondev@svn.python.org/python/trunk ........ r53624 | peter.astrand | 2007-02-02 20:06:36 +0100 (Fri, 02 Feb 2007) | 1 line We had several if statements checking the value of a fd. This is unsafe, since valid fds might be zero. We should check for not None instead. ........ r53635 | kurt.kaiser | 2007-02-05 07:03:18 +0100 (Mon, 05 Feb 2007) | 2 lines Add 'raw' support to configHandler. Patch 1650174 Tal Einat. ........ r53641 | kurt.kaiser | 2007-02-06 00:02:16 +0100 (Tue, 06 Feb 2007) | 5 lines 1. Calltips now 'handle' tuples in the argument list (display '<tuple>' :) Suggested solution by Christos Georgiou, Bug 791968. 2. Clean up tests, were not failing when they should have been. 4. Remove some camelcase and an unneeded try/except block. ........ r53644 | kurt.kaiser | 2007-02-06 04:21:40 +0100 (Tue, 06 Feb 2007) | 2 lines Clean up ModifiedInterpreter.runcode() structure ........ r53646 | peter.astrand | 2007-02-06 16:37:50 +0100 (Tue, 06 Feb 2007) | 1 line Applied patch 1124861.3.patch to solve bug #1124861: Automatically create pipes on Windows, if GetStdHandle fails. Will backport. ........ r53648 | lars.gustaebel | 2007-02-06 19:38:13 +0100 (Tue, 06 Feb 2007) | 4 lines Patch #1652681: create nonexistent files in append mode and allow appending to empty files. ........ r53649 | kurt.kaiser | 2007-02-06 20:09:43 +0100 (Tue, 06 Feb 2007) | 4 lines Updated patch (CodeContext.061217.patch) to [ 1362975 ] CodeContext - Improved text indentation Tal Einat 16Dec06 ........ r53650 | kurt.kaiser | 2007-02-06 20:21:19 +0100 (Tue, 06 Feb 2007) | 2 lines narrow exception per [ 1540849 ] except too broad ........ r53653 | kurt.kaiser | 2007-02-07 04:39:41 +0100 (Wed, 07 Feb 2007) | 4 lines [ 1621265 ] Auto-completion list placement Move AC window below input line unless not enough space, then put it above. Patch: Tal Einat ........ r53654 | kurt.kaiser | 2007-02-07 09:07:13 +0100 (Wed, 07 Feb 2007) | 2 lines Handle AttributeError during calltip lookup ........ r53656 | raymond.hettinger | 2007-02-07 21:08:22 +0100 (Wed, 07 Feb 2007) | 3 lines SF #1615701: make d.update(m) honor __getitem__() and keys() in dict subclasses ........ r53658 | raymond.hettinger | 2007-02-07 22:04:20 +0100 (Wed, 07 Feb 2007) | 1 line SF: 1397711 Set docs conflated immutable and hashable ........ r53660 | raymond.hettinger | 2007-02-07 22:42:17 +0100 (Wed, 07 Feb 2007) | 1 line Check for a common user error with defaultdict(). ........ r53662 | raymond.hettinger | 2007-02-07 23:24:07 +0100 (Wed, 07 Feb 2007) | 1 line Bug #1575169: operator.isSequenceType() now returns False for subclasses of dict. ........ r53664 | raymond.hettinger | 2007-02-08 00:49:03 +0100 (Thu, 08 Feb 2007) | 1 line Silence compiler warning ........ r53666 | raymond.hettinger | 2007-02-08 01:07:32 +0100 (Thu, 08 Feb 2007) | 1 line Do not let overflows in enumerate() and count() pass silently. ........ r53668 | raymond.hettinger | 2007-02-08 01:50:39 +0100 (Thu, 08 Feb 2007) | 1 line Bypass set specific optimizations for set and frozenset subclasses. ........ r53670 | raymond.hettinger | 2007-02-08 02:42:35 +0100 (Thu, 08 Feb 2007) | 1 line Fix docstring bug ........ r53671 | martin.v.loewis | 2007-02-08 10:13:36 +0100 (Thu, 08 Feb 2007) | 3 lines Bug #1653736: Complain about keyword arguments to time.isoformat. Will backport to 2.5. ........ r53679 | kurt.kaiser | 2007-02-08 23:58:18 +0100 (Thu, 08 Feb 2007) | 6 lines Corrected some bugs in AutoComplete. Also, Page Up/Down in ACW implemented; mouse and cursor selection in ACWindow implemented; double Tab inserts current selection and closes ACW (similar to double-click and Return); scroll wheel now works in ACW. Added AutoComplete instructions to IDLE Help. ........ r53689 | martin.v.loewis | 2007-02-09 13:19:32 +0100 (Fri, 09 Feb 2007) | 3 lines Bug #1653736: Properly discard third argument to slot_nb_inplace_power. Will backport. ........ r53691 | martin.v.loewis | 2007-02-09 13:36:48 +0100 (Fri, 09 Feb 2007) | 4 lines Bug #1600860: Search for shared python library in LIBDIR, not lib/python/config, on "linux" and "gnu" systems. Will backport. ........ r53693 | martin.v.loewis | 2007-02-09 13:58:49 +0100 (Fri, 09 Feb 2007) | 2 lines Update broken link. Will backport to 2.5. ........ r53697 | georg.brandl | 2007-02-09 19:48:41 +0100 (Fri, 09 Feb 2007) | 2 lines Bug #1656078: typo in in profile docs. ........ r53731 | brett.cannon | 2007-02-11 06:36:00 +0100 (Sun, 11 Feb 2007) | 3 lines Change a very minor inconsistency (that is purely cosmetic) in the AST definition. ........ r53735 | skip.montanaro | 2007-02-11 19:24:37 +0100 (Sun, 11 Feb 2007) | 1 line fix trace.py --ignore-dir ........ r53741 | brett.cannon | 2007-02-11 20:44:41 +0100 (Sun, 11 Feb 2007) | 3 lines Check in changed Python-ast.c from a cosmetic change to Python.asdl (in r53731). ........ r53751 | brett.cannon | 2007-02-12 04:51:02 +0100 (Mon, 12 Feb 2007) | 5 lines Modify Parser/asdl_c.py so that the __version__ number for Python/Python-ast.c is specified at the top of the file. Also add a note that Python/Python-ast.c needs to be committed separately after a change to the AST grammar to capture the revision number of the change (which is what __version__ is set to). ........ r53752 | lars.gustaebel | 2007-02-12 10:25:53 +0100 (Mon, 12 Feb 2007) | 3 lines Bug #1656581: Point out that external file objects are supposed to be at position 0. ........ r53754 | martin.v.loewis | 2007-02-12 13:21:10 +0100 (Mon, 12 Feb 2007) | 3 lines Patch 1463026: Support default namespace in XMLGenerator. Fixes #847665. Will backport. ........ r53757 | armin.rigo | 2007-02-12 17:23:24 +0100 (Mon, 12 Feb 2007) | 4 lines Fix the line to what is my guess at the original author's meaning. (The line has no effect anyway, but is present because it's customary call the base class __init__). ........ r53763 | martin.v.loewis | 2007-02-13 09:34:45 +0100 (Tue, 13 Feb 2007) | 3 lines Patch #685268: Consider a package's __path__ in imputil. Will backport. ........ r53765 | martin.v.loewis | 2007-02-13 10:49:38 +0100 (Tue, 13 Feb 2007) | 2 lines Patch #698833: Support file decryption in zipfile. ........ r53766 | martin.v.loewis | 2007-02-13 11:10:39 +0100 (Tue, 13 Feb 2007) | 3 lines Patch #1517891: Make 'a' create the file if it doesn't exist. Fixes #1514451. ........ r53767 | martin.v.loewis | 2007-02-13 13:08:24 +0100 (Tue, 13 Feb 2007) | 3 lines Bug #1658794: Remove extraneous 'this'. Will backport to 2.5. ........ r53769 | martin.v.loewis | 2007-02-13 13:14:19 +0100 (Tue, 13 Feb 2007) | 3 lines Patch #1657276: Make NETLINK_DNRTMSG conditional. Will backport. ........ r53771 | lars.gustaebel | 2007-02-13 17:09:24 +0100 (Tue, 13 Feb 2007) | 4 lines Patch #1647484: Renamed GzipFile's filename attribute to name. The filename attribute is still accessible as a property that emits a DeprecationWarning. ........ r53772 | lars.gustaebel | 2007-02-13 17:24:00 +0100 (Tue, 13 Feb 2007) | 3 lines Strip the '.gz' extension from the filename that is written to the gzip header. ........ r53774 | martin.v.loewis | 2007-02-14 11:07:37 +0100 (Wed, 14 Feb 2007) | 2 lines Patch #1432399: Add HCI sockets. ........ r53775 | martin.v.loewis | 2007-02-14 12:30:07 +0100 (Wed, 14 Feb 2007) | 2 lines Update 1432399 to removal of _BT_SOCKADDR_MEMB. ........ r53776 | martin.v.loewis | 2007-02-14 12:30:56 +0100 (Wed, 14 Feb 2007) | 3 lines Ignore directory time stamps when considering whether to rerun libffi configure. ........ r53778 | lars.gustaebel | 2007-02-14 15:45:12 +0100 (Wed, 14 Feb 2007) | 4 lines A missing binary mode in AppendTest caused failures in Windows Buildbot. ........ r53782 | martin.v.loewis | 2007-02-15 10:51:35 +0100 (Thu, 15 Feb 2007) | 2 lines Patch #1397848: add the reasoning behind no-resize-on-shrinkage. ........ r53783 | georg.brandl | 2007-02-15 11:37:59 +0100 (Thu, 15 Feb 2007) | 2 lines Make functools.wraps() docs a bit clearer. ........ r53785 | georg.brandl | 2007-02-15 12:29:04 +0100 (Thu, 15 Feb 2007) | 2 lines Patch #1494140: Add documentation for the new struct.Struct object. ........ r53787 | georg.brandl | 2007-02-15 12:29:55 +0100 (Thu, 15 Feb 2007) | 2 lines Add missing \versionadded. ........ r53800 | brett.cannon | 2007-02-15 23:54:39 +0100 (Thu, 15 Feb 2007) | 11 lines Update the encoding package's search function to use absolute imports when calling __import__. This helps make the expected search locations for encoding modules be more explicit. One could use an explicit value for __path__ when making the call to __import__ to force the exact location searched for encodings. This would give the most strict search path possible if one is worried about malicious code being imported. The unfortunate side-effect of that is that if __path__ was modified on 'encodings' on purpose in a safe way it would not be picked up in future __import__ calls. ........ r53801 | brett.cannon | 2007-02-16 20:33:01 +0100 (Fri, 16 Feb 2007) | 2 lines Make the __import__ call in encodings.__init__ absolute with a level 0 call. ........ r53809 | vinay.sajip | 2007-02-16 23:36:24 +0100 (Fri, 16 Feb 2007) | 1 line Minor fix for currentframe (SF #1652788). ........ r53818 | raymond.hettinger | 2007-02-19 03:03:19 +0100 (Mon, 19 Feb 2007) | 3 lines Extend work on revision 52962: Eliminate redundant calls to PyObject_Hash(). ........ r53820 | raymond.hettinger | 2007-02-19 05:08:43 +0100 (Mon, 19 Feb 2007) | 1 line Add merge() function to heapq. ........ r53821 | raymond.hettinger | 2007-02-19 06:28:28 +0100 (Mon, 19 Feb 2007) | 1 line Add tie-breaker count to preserve sort stability. ........ r53822 | raymond.hettinger | 2007-02-19 07:59:32 +0100 (Mon, 19 Feb 2007) | 1 line Use C heapreplace() instead of slower _siftup() in pure python. ........ r53823 | raymond.hettinger | 2007-02-19 08:30:21 +0100 (Mon, 19 Feb 2007) | 1 line Add test for merge stability ........ r53824 | raymond.hettinger | 2007-02-19 10:14:10 +0100 (Mon, 19 Feb 2007) | 1 line Provide an example of defaultdict with non-zero constant factory function. ........ r53825 | lars.gustaebel | 2007-02-19 10:54:47 +0100 (Mon, 19 Feb 2007) | 2 lines Moved misplaced news item. ........ r53826 | martin.v.loewis | 2007-02-19 11:55:19 +0100 (Mon, 19 Feb 2007) | 3 lines Patch #1490190: posixmodule now includes os.chflags() and os.lchflags() functions on platforms where the underlying system calls are available. ........ r53827 | raymond.hettinger | 2007-02-19 19:15:04 +0100 (Mon, 19 Feb 2007) | 1 line Fixup docstrings for merge(). ........ r53829 | raymond.hettinger | 2007-02-19 21:44:04 +0100 (Mon, 19 Feb 2007) | 1 line Fixup set/dict interoperability. ........ r53837 | raymond.hettinger | 2007-02-21 06:20:38 +0100 (Wed, 21 Feb 2007) | 1 line Add itertools.izip_longest(). ........ r53838 | raymond.hettinger | 2007-02-21 18:22:05 +0100 (Wed, 21 Feb 2007) | 1 line Remove filler struct item and fix leak. ........
527 lines
21 KiB
TeX
527 lines
21 KiB
TeX
\section{\module{locale} ---
|
|
Internationalization services}
|
|
|
|
\declaremodule{standard}{locale}
|
|
\modulesynopsis{Internationalization services.}
|
|
\moduleauthor{Martin von L\"owis}{martin@v.loewis.de}
|
|
\sectionauthor{Martin von L\"owis}{martin@v.loewis.de}
|
|
|
|
|
|
The \module{locale} module opens access to the \POSIX{} locale
|
|
database and functionality. The \POSIX{} locale mechanism allows
|
|
programmers to deal with certain cultural issues in an application,
|
|
without requiring the programmer to know all the specifics of each
|
|
country where the software is executed.
|
|
|
|
The \module{locale} module is implemented on top of the
|
|
\module{_locale}\refbimodindex{_locale} module, which in turn uses an
|
|
ANSI C locale implementation if available.
|
|
|
|
The \module{locale} module defines the following exception and
|
|
functions:
|
|
|
|
|
|
\begin{excdesc}{Error}
|
|
Exception raised when \function{setlocale()} fails.
|
|
\end{excdesc}
|
|
|
|
\begin{funcdesc}{setlocale}{category\optional{, locale}}
|
|
If \var{locale} is specified, it may be a string, a tuple of the
|
|
form \code{(\var{language code}, \var{encoding})}, or \code{None}.
|
|
If it is a tuple, it is converted to a string using the locale
|
|
aliasing engine. If \var{locale} is given and not \code{None},
|
|
\function{setlocale()} modifies the locale setting for the
|
|
\var{category}. The available categories are listed in the data
|
|
description below. The value is the name of a locale. An empty
|
|
string specifies the user's default settings. If the modification of
|
|
the locale fails, the exception \exception{Error} is raised. If
|
|
successful, the new locale setting is returned.
|
|
|
|
If \var{locale} is omitted or \code{None}, the current setting for
|
|
\var{category} is returned.
|
|
|
|
\function{setlocale()} is not thread safe on most systems.
|
|
Applications typically start with a call of
|
|
|
|
\begin{verbatim}
|
|
import locale
|
|
locale.setlocale(locale.LC_ALL, '')
|
|
\end{verbatim}
|
|
|
|
This sets the locale for all categories to the user's default
|
|
setting (typically specified in the \envvar{LANG} environment
|
|
variable). If the locale is not changed thereafter, using
|
|
multithreading should not cause problems.
|
|
|
|
\versionchanged[Added support for tuple values of the \var{locale}
|
|
parameter]{2.0}
|
|
\end{funcdesc}
|
|
|
|
\begin{funcdesc}{localeconv}{}
|
|
Returns the database of the local conventions as a dictionary.
|
|
This dictionary has the following strings as keys:
|
|
|
|
\begin{tableiii}{l|l|p{3in}}{constant}{Category}{Key}{Meaning}
|
|
\lineiii{LC_NUMERIC}{\code{'decimal_point'}}
|
|
{Decimal point character.}
|
|
\lineiii{}{\code{'grouping'}}
|
|
{Sequence of numbers specifying which relative positions
|
|
the \code{'thousands_sep'} is expected. If the sequence is
|
|
terminated with \constant{CHAR_MAX}, no further grouping
|
|
is performed. If the sequence terminates with a \code{0},
|
|
the last group size is repeatedly used.}
|
|
\lineiii{}{\code{'thousands_sep'}}
|
|
{Character used between groups.}\hline
|
|
\lineiii{LC_MONETARY}{\code{'int_curr_symbol'}}
|
|
{International currency symbol.}
|
|
\lineiii{}{\code{'currency_symbol'}}
|
|
{Local currency symbol.}
|
|
\lineiii{}{\code{'p_cs_precedes/n_cs_precedes'}}
|
|
{Whether the currency symbol precedes the value (for positive resp.
|
|
negative values).}
|
|
\lineiii{}{\code{'p_sep_by_space/n_sep_by_space'}}
|
|
{Whether the currency symbol is separated from the value
|
|
by a space (for positive resp. negative values).}
|
|
\lineiii{}{\code{'mon_decimal_point'}}
|
|
{Decimal point used for monetary values.}
|
|
\lineiii{}{\code{'frac_digits'}}
|
|
{Number of fractional digits used in local formatting
|
|
of monetary values.}
|
|
\lineiii{}{\code{'int_frac_digits'}}
|
|
{Number of fractional digits used in international
|
|
formatting of monetary values.}
|
|
\lineiii{}{\code{'mon_thousands_sep'}}
|
|
{Group separator used for monetary values.}
|
|
\lineiii{}{\code{'mon_grouping'}}
|
|
{Equivalent to \code{'grouping'}, used for monetary
|
|
values.}
|
|
\lineiii{}{\code{'positive_sign'}}
|
|
{Symbol used to annotate a positive monetary value.}
|
|
\lineiii{}{\code{'negative_sign'}}
|
|
{Symbol used to annotate a negative monetary value.}
|
|
\lineiii{}{\code{'p_sign_posn/n_sign_posn'}}
|
|
{The position of the sign (for positive resp. negative values), see below.}
|
|
\end{tableiii}
|
|
|
|
All numeric values can be set to \constant{CHAR_MAX} to indicate that
|
|
there is no value specified in this locale.
|
|
|
|
The possible values for \code{'p_sign_posn'} and
|
|
\code{'n_sign_posn'} are given below.
|
|
|
|
\begin{tableii}{c|l}{code}{Value}{Explanation}
|
|
\lineii{0}{Currency and value are surrounded by parentheses.}
|
|
\lineii{1}{The sign should precede the value and currency symbol.}
|
|
\lineii{2}{The sign should follow the value and currency symbol.}
|
|
\lineii{3}{The sign should immediately precede the value.}
|
|
\lineii{4}{The sign should immediately follow the value.}
|
|
\lineii{\constant{CHAR_MAX}}{Nothing is specified in this locale.}
|
|
\end{tableii}
|
|
\end{funcdesc}
|
|
|
|
\begin{funcdesc}{nl_langinfo}{option}
|
|
|
|
Return some locale-specific information as a string. This function is
|
|
not available on all systems, and the set of possible options might
|
|
also vary across platforms. The possible argument values are numbers,
|
|
for which symbolic constants are available in the locale module.
|
|
|
|
\end{funcdesc}
|
|
|
|
\begin{funcdesc}{getdefaultlocale}{\optional{envvars}}
|
|
Tries to determine the default locale settings and returns
|
|
them as a tuple of the form \code{(\var{language code},
|
|
\var{encoding})}.
|
|
|
|
According to \POSIX, a program which has not called
|
|
\code{setlocale(LC_ALL, '')} runs using the portable \code{'C'}
|
|
locale. Calling \code{setlocale(LC_ALL, '')} lets it use the
|
|
default locale as defined by the \envvar{LANG} variable. Since we
|
|
do not want to interfere with the current locale setting we thus
|
|
emulate the behavior in the way described above.
|
|
|
|
To maintain compatibility with other platforms, not only the
|
|
\envvar{LANG} variable is tested, but a list of variables given as
|
|
envvars parameter. The first found to be defined will be
|
|
used. \var{envvars} defaults to the search path used in GNU gettext;
|
|
it must always contain the variable name \samp{LANG}. The GNU
|
|
gettext search path contains \code{'LANGUAGE'}, \code{'LC_ALL'},
|
|
\code{'LC_CTYPE'}, and \code{'LANG'}, in that order.
|
|
|
|
Except for the code \code{'C'}, the language code corresponds to
|
|
\rfc{1766}. \var{language code} and \var{encoding} may be
|
|
\code{None} if their values cannot be determined.
|
|
\versionadded{2.0}
|
|
\end{funcdesc}
|
|
|
|
\begin{funcdesc}{getlocale}{\optional{category}}
|
|
Returns the current setting for the given locale category as
|
|
sequence containing \var{language code}, \var{encoding}.
|
|
\var{category} may be one of the \constant{LC_*} values except
|
|
\constant{LC_ALL}. It defaults to \constant{LC_CTYPE}.
|
|
|
|
Except for the code \code{'C'}, the language code corresponds to
|
|
\rfc{1766}. \var{language code} and \var{encoding} may be
|
|
\code{None} if their values cannot be determined.
|
|
\versionadded{2.0}
|
|
\end{funcdesc}
|
|
|
|
\begin{funcdesc}{getpreferredencoding}{\optional{do_setlocale}}
|
|
Return the encoding used for text data, according to user
|
|
preferences. User preferences are expressed differently on
|
|
different systems, and might not be available programmatically on
|
|
some systems, so this function only returns a guess.
|
|
|
|
On some systems, it is necessary to invoke \function{setlocale}
|
|
to obtain the user preferences, so this function is not thread-safe.
|
|
If invoking setlocale is not necessary or desired, \var{do_setlocale}
|
|
should be set to \code{False}.
|
|
|
|
\versionadded{2.3}
|
|
\end{funcdesc}
|
|
|
|
\begin{funcdesc}{normalize}{localename}
|
|
Returns a normalized locale code for the given locale name. The
|
|
returned locale code is formatted for use with
|
|
\function{setlocale()}. If normalization fails, the original name
|
|
is returned unchanged.
|
|
|
|
If the given encoding is not known, the function defaults to
|
|
the default encoding for the locale code just like
|
|
\function{setlocale()}.
|
|
\versionadded{2.0}
|
|
\end{funcdesc}
|
|
|
|
\begin{funcdesc}{resetlocale}{\optional{category}}
|
|
Sets the locale for \var{category} to the default setting.
|
|
|
|
The default setting is determined by calling
|
|
\function{getdefaultlocale()}. \var{category} defaults to
|
|
\constant{LC_ALL}.
|
|
\versionadded{2.0}
|
|
\end{funcdesc}
|
|
|
|
\begin{funcdesc}{strcoll}{string1, string2}
|
|
Compares two strings according to the current
|
|
\constant{LC_COLLATE} setting. As any other compare function,
|
|
returns a negative, or a positive value, or \code{0}, depending on
|
|
whether \var{string1} collates before or after \var{string2} or is
|
|
equal to it.
|
|
\end{funcdesc}
|
|
|
|
\begin{funcdesc}{strxfrm}{string}
|
|
Transforms a string to one that can be used for the built-in
|
|
function \function{cmp()}\bifuncindex{cmp}, and still returns
|
|
locale-aware results. This function can be used when the same
|
|
string is compared repeatedly, e.g. when collating a sequence of
|
|
strings.
|
|
\end{funcdesc}
|
|
|
|
\begin{funcdesc}{format}{format, val\optional{, grouping\optional{, monetary}}}
|
|
Formats a number \var{val} according to the current
|
|
\constant{LC_NUMERIC} setting. The format follows the conventions
|
|
of the \code{\%} operator. For floating point values, the decimal
|
|
point is modified if appropriate. If \var{grouping} is true, also
|
|
takes the grouping into account.
|
|
|
|
If \var{monetary} is true, the conversion uses monetary thousands
|
|
separator and grouping strings.
|
|
|
|
Please note that this function will only work for exactly one \%char
|
|
specifier. For whole format strings, use \function{format_string()}.
|
|
|
|
\versionchanged[Added the \var{monetary} parameter]{2.5}
|
|
\end{funcdesc}
|
|
|
|
\begin{funcdesc}{format_string}{format, val\optional{, grouping}}
|
|
Processes formatting specifiers as in \code{format \% val},
|
|
but takes the current locale settings into account.
|
|
|
|
\versionadded{2.5}
|
|
\end{funcdesc}
|
|
|
|
\begin{funcdesc}{currency}{val\optional{, symbol\optional{, grouping\optional{, international}}}}
|
|
Formats a number \var{val} according to the current \constant{LC_MONETARY}
|
|
settings.
|
|
|
|
The returned string includes the currency symbol if \var{symbol} is true,
|
|
which is the default.
|
|
If \var{grouping} is true (which is not the default), grouping is done with
|
|
the value.
|
|
If \var{international} is true (which is not the default), the international
|
|
currency symbol is used.
|
|
|
|
Note that this function will not work with the `C' locale, so you have to set
|
|
a locale via \function{setlocale()} first.
|
|
|
|
\versionadded{2.5}
|
|
\end{funcdesc}
|
|
|
|
\begin{funcdesc}{str}{float}
|
|
Formats a floating point number using the same format as the
|
|
built-in function \code{str(\var{float})}, but takes the decimal
|
|
point into account.
|
|
\end{funcdesc}
|
|
|
|
\begin{funcdesc}{atof}{string}
|
|
Converts a string to a floating point number, following the
|
|
\constant{LC_NUMERIC} settings.
|
|
\end{funcdesc}
|
|
|
|
\begin{funcdesc}{atoi}{string}
|
|
Converts a string to an integer, following the
|
|
\constant{LC_NUMERIC} conventions.
|
|
\end{funcdesc}
|
|
|
|
\begin{datadesc}{LC_CTYPE}
|
|
\refstmodindex{string}
|
|
Locale category for the character type functions. Depending on the
|
|
settings of this category, the functions of module
|
|
\refmodule{string} dealing with case change their behaviour.
|
|
\end{datadesc}
|
|
|
|
\begin{datadesc}{LC_COLLATE}
|
|
Locale category for sorting strings. The functions
|
|
\function{strcoll()} and \function{strxfrm()} of the
|
|
\module{locale} module are affected.
|
|
\end{datadesc}
|
|
|
|
\begin{datadesc}{LC_TIME}
|
|
Locale category for the formatting of time. The function
|
|
\function{time.strftime()} follows these conventions.
|
|
\end{datadesc}
|
|
|
|
\begin{datadesc}{LC_MONETARY}
|
|
Locale category for formatting of monetary values. The available
|
|
options are available from the \function{localeconv()} function.
|
|
\end{datadesc}
|
|
|
|
\begin{datadesc}{LC_MESSAGES}
|
|
Locale category for message display. Python currently does not
|
|
support application specific locale-aware messages. Messages
|
|
displayed by the operating system, like those returned by
|
|
\function{os.strerror()} might be affected by this category.
|
|
\end{datadesc}
|
|
|
|
\begin{datadesc}{LC_NUMERIC}
|
|
Locale category for formatting numbers. The functions
|
|
\function{format()}, \function{atoi()}, \function{atof()} and
|
|
\function{str()} of the \module{locale} module are affected by that
|
|
category. All other numeric formatting operations are not
|
|
affected.
|
|
\end{datadesc}
|
|
|
|
\begin{datadesc}{LC_ALL}
|
|
Combination of all locale settings. If this flag is used when the
|
|
locale is changed, setting the locale for all categories is
|
|
attempted. If that fails for any category, no category is changed at
|
|
all. When the locale is retrieved using this flag, a string
|
|
indicating the setting for all categories is returned. This string
|
|
can be later used to restore the settings.
|
|
\end{datadesc}
|
|
|
|
\begin{datadesc}{CHAR_MAX}
|
|
This is a symbolic constant used for different values returned by
|
|
\function{localeconv()}.
|
|
\end{datadesc}
|
|
|
|
The \function{nl_langinfo} function accepts one of the following keys.
|
|
Most descriptions are taken from the corresponding description in the
|
|
GNU C library.
|
|
|
|
\begin{datadesc}{CODESET}
|
|
Return a string with the name of the character encoding used in the
|
|
selected locale.
|
|
\end{datadesc}
|
|
|
|
\begin{datadesc}{D_T_FMT}
|
|
Return a string that can be used as a format string for strftime(3) to
|
|
represent time and date in a locale-specific way.
|
|
\end{datadesc}
|
|
|
|
\begin{datadesc}{D_FMT}
|
|
Return a string that can be used as a format string for strftime(3) to
|
|
represent a date in a locale-specific way.
|
|
\end{datadesc}
|
|
|
|
\begin{datadesc}{T_FMT}
|
|
Return a string that can be used as a format string for strftime(3) to
|
|
represent a time in a locale-specific way.
|
|
\end{datadesc}
|
|
|
|
\begin{datadesc}{T_FMT_AMPM}
|
|
The return value can be used as a format string for `strftime' to
|
|
represent time in the am/pm format.
|
|
\end{datadesc}
|
|
|
|
\begin{datadesc}{DAY_1 ... DAY_7}
|
|
Return name of the n-th day of the week. \warning{This
|
|
follows the US convention of \constant{DAY_1} being Sunday, not the
|
|
international convention (ISO 8601) that Monday is the first day of
|
|
the week.}
|
|
\end{datadesc}
|
|
|
|
\begin{datadesc}{ABDAY_1 ... ABDAY_7}
|
|
Return abbreviated name of the n-th day of the week.
|
|
\end{datadesc}
|
|
|
|
\begin{datadesc}{MON_1 ... MON_12}
|
|
Return name of the n-th month.
|
|
\end{datadesc}
|
|
|
|
\begin{datadesc}{ABMON_1 ... ABMON_12}
|
|
Return abbreviated name of the n-th month.
|
|
\end{datadesc}
|
|
|
|
\begin{datadesc}{RADIXCHAR}
|
|
Return radix character (decimal dot, decimal comma, etc.)
|
|
\end{datadesc}
|
|
|
|
\begin{datadesc}{THOUSEP}
|
|
Return separator character for thousands (groups of three digits).
|
|
\end{datadesc}
|
|
|
|
\begin{datadesc}{YESEXPR}
|
|
Return a regular expression that can be used with the regex
|
|
function to recognize a positive response to a yes/no question.
|
|
\warning{The expression is in the syntax suitable for the
|
|
\cfunction{regex()} function from the C library, which might differ
|
|
from the syntax used in \refmodule{re}.}
|
|
\end{datadesc}
|
|
|
|
\begin{datadesc}{NOEXPR}
|
|
Return a regular expression that can be used with the regex(3)
|
|
function to recognize a negative response to a yes/no question.
|
|
\end{datadesc}
|
|
|
|
\begin{datadesc}{CRNCYSTR}
|
|
Return the currency symbol, preceded by "-" if the symbol should
|
|
appear before the value, "+" if the symbol should appear after the
|
|
value, or "." if the symbol should replace the radix character.
|
|
\end{datadesc}
|
|
|
|
\begin{datadesc}{ERA}
|
|
The return value represents the era used in the current locale.
|
|
|
|
Most locales do not define this value. An example of a locale which
|
|
does define this value is the Japanese one. In Japan, the traditional
|
|
representation of dates includes the name of the era corresponding to
|
|
the then-emperor's reign.
|
|
|
|
Normally it should not be necessary to use this value directly.
|
|
Specifying the \code{E} modifier in their format strings causes the
|
|
\function{strftime} function to use this information. The format of the
|
|
returned string is not specified, and therefore you should not assume
|
|
knowledge of it on different systems.
|
|
\end{datadesc}
|
|
|
|
\begin{datadesc}{ERA_YEAR}
|
|
The return value gives the year in the relevant era of the locale.
|
|
\end{datadesc}
|
|
|
|
\begin{datadesc}{ERA_D_T_FMT}
|
|
This return value can be used as a format string for
|
|
\function{strftime} to represent dates and times in a locale-specific
|
|
era-based way.
|
|
\end{datadesc}
|
|
|
|
\begin{datadesc}{ERA_D_FMT}
|
|
This return value can be used as a format string for
|
|
\function{strftime} to represent time in a locale-specific era-based
|
|
way.
|
|
\end{datadesc}
|
|
|
|
\begin{datadesc}{ALT_DIGITS}
|
|
The return value is a representation of up to 100 values used to
|
|
represent the values 0 to 99.
|
|
\end{datadesc}
|
|
|
|
Example:
|
|
|
|
\begin{verbatim}
|
|
>>> import locale
|
|
>>> loc = locale.getlocale(locale.LC_ALL) # get current locale
|
|
>>> locale.setlocale(locale.LC_ALL, 'de_DE') # use German locale; name might vary with platform
|
|
>>> locale.strcoll('f\xe4n', 'foo') # compare a string containing an umlaut
|
|
>>> locale.setlocale(locale.LC_ALL, '') # use user's preferred locale
|
|
>>> locale.setlocale(locale.LC_ALL, 'C') # use default (C) locale
|
|
>>> locale.setlocale(locale.LC_ALL, loc) # restore saved locale
|
|
\end{verbatim}
|
|
|
|
|
|
\subsection{Background, details, hints, tips and caveats}
|
|
|
|
The C standard defines the locale as a program-wide property that may
|
|
be relatively expensive to change. On top of that, some
|
|
implementation are broken in such a way that frequent locale changes
|
|
may cause core dumps. This makes the locale somewhat painful to use
|
|
correctly.
|
|
|
|
Initially, when a program is started, the locale is the \samp{C} locale, no
|
|
matter what the user's preferred locale is. The program must
|
|
explicitly say that it wants the user's preferred locale settings by
|
|
calling \code{setlocale(LC_ALL, '')}.
|
|
|
|
It is generally a bad idea to call \function{setlocale()} in some library
|
|
routine, since as a side effect it affects the entire program. Saving
|
|
and restoring it is almost as bad: it is expensive and affects other
|
|
threads that happen to run before the settings have been restored.
|
|
|
|
If, when coding a module for general use, you need a locale
|
|
independent version of an operation that is affected by the locale
|
|
(such as \function{string.lower()}, or certain formats used with
|
|
\function{time.strftime()}), you will have to find a way to do it
|
|
without using the standard library routine. Even better is convincing
|
|
yourself that using locale settings is okay. Only as a last resort
|
|
should you document that your module is not compatible with
|
|
non-\samp{C} locale settings.
|
|
|
|
The case conversion functions in the
|
|
\refmodule{string}\refstmodindex{string} module are affected by the
|
|
locale settings. When a call to the \function{setlocale()} function
|
|
changes the \constant{LC_CTYPE} settings, the variables
|
|
\code{string.lowercase}, \code{string.uppercase} and
|
|
\code{string.letters} are recalculated. Note that code that uses
|
|
these variable through `\keyword{from} ... \keyword{import} ...',
|
|
e.g.\ \code{from string import letters}, is not affected by subsequent
|
|
\function{setlocale()} calls.
|
|
|
|
The only way to perform numeric operations according to the locale
|
|
is to use the special functions defined by this module:
|
|
\function{atof()}, \function{atoi()}, \function{format()},
|
|
\function{str()}.
|
|
|
|
\subsection{For extension writers and programs that embed Python
|
|
\label{embedding-locale}}
|
|
|
|
Extension modules should never call \function{setlocale()}, except to
|
|
find out what the current locale is. But since the return value can
|
|
only be used portably to restore it, that is not very useful (except
|
|
perhaps to find out whether or not the locale is \samp{C}).
|
|
|
|
When Python code uses the \module{locale} module to change the locale,
|
|
this also affects the embedding application. If the embedding
|
|
application doesn't want this to happen, it should remove the
|
|
\module{_locale} extension module (which does all the work) from the
|
|
table of built-in modules in the \file{config.c} file, and make sure
|
|
that the \module{_locale} module is not accessible as a shared library.
|
|
|
|
|
|
\subsection{Access to message catalogs \label{locale-gettext}}
|
|
|
|
The locale module exposes the C library's gettext interface on systems
|
|
that provide this interface. It consists of the functions
|
|
\function{gettext()}, \function{dgettext()}, \function{dcgettext()},
|
|
\function{textdomain()}, \function{bindtextdomain()}, and
|
|
\function{bind_textdomain_codeset()}. These are similar to the same
|
|
functions in the \refmodule{gettext} module, but use the C library's
|
|
binary format for message catalogs, and the C library's search
|
|
algorithms for locating message catalogs.
|
|
|
|
Python applications should normally find no need to invoke these
|
|
functions, and should use \refmodule{gettext} instead. A known
|
|
exception to this rule are applications that link use additional C
|
|
libraries which internally invoke \cfunction{gettext()} or
|
|
\function{dcgettext()}. For these applications, it may be necessary to
|
|
bind the text domain, so that the libraries can properly locate their
|
|
message catalogs.
|