767 lines
65 KiB
HTML
767 lines
65 KiB
HTML
|
||
<!DOCTYPE html>
|
||
|
||
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh_CN">
|
||
<head>
|
||
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
|
||
|
||
<title>locale --- 国际化服务 — Python 3.8.20 文档</title><meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
|
||
<link rel="stylesheet" href="../_static/pydoctheme.css" type="text/css" />
|
||
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
|
||
|
||
<script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
|
||
<script src="../_static/jquery.js"></script>
|
||
<script src="../_static/underscore.js"></script>
|
||
<script src="../_static/doctools.js"></script>
|
||
<script src="../_static/language_data.js"></script>
|
||
<script src="../_static/translations.js"></script>
|
||
|
||
<script src="../_static/sidebar.js"></script>
|
||
|
||
<link rel="search" type="application/opensearchdescription+xml"
|
||
title="在 Python 3.8.20 文档 中搜索"
|
||
href="../_static/opensearch.xml"/>
|
||
<link rel="author" title="关于这些文档" href="../about.html" />
|
||
<link rel="index" title="索引" href="../genindex.html" />
|
||
<link rel="search" title="搜索" href="../search.html" />
|
||
<link rel="copyright" title="版权所有" href="../copyright.html" />
|
||
<link rel="next" title="程序框架" href="frameworks.html" />
|
||
<link rel="prev" title="gettext --- 多语种国际化服务" href="gettext.html" />
|
||
<link rel="canonical" href="https://docs.python.org/3/library/locale.html" />
|
||
|
||
|
||
|
||
|
||
|
||
<style>
|
||
@media only screen {
|
||
table.full-width-table {
|
||
width: 100%;
|
||
}
|
||
}
|
||
</style>
|
||
<link rel="shortcut icon" type="image/png" href="../_static/py.svg" />
|
||
<script type="text/javascript" src="../_static/copybutton.js"></script>
|
||
<script type="text/javascript" src="../_static/menu.js"></script>
|
||
|
||
</head>
|
||
<body>
|
||
<div class="mobile-nav">
|
||
<input type="checkbox" id="menuToggler" class="toggler__input" aria-controls="navigation"
|
||
aria-pressed="false" aria-expanded="false" role="button" aria-label="Menu" />
|
||
<label for="menuToggler" class="toggler__label">
|
||
<span></span>
|
||
</label>
|
||
<nav class="nav-content" role="navigation">
|
||
<a href="https://www.python.org/" class="nav-logo">
|
||
<img src="../_static/py.svg" alt="Logo"/>
|
||
</a>
|
||
<div class="version_switcher_placeholder"></div>
|
||
<form role="search" class="search" action="../search.html" method="get">
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" class="search-icon">
|
||
<path fill-rule="nonzero"
|
||
d="M15.5 14h-.79l-.28-.27a6.5 6.5 0 001.48-5.34c-.47-2.78-2.79-5-5.59-5.34a6.505 6.505 0 00-7.27 7.27c.34 2.8 2.56 5.12 5.34 5.59a6.5 6.5 0 005.34-1.48l.27.28v.79l4.25 4.25c.41.41 1.08.41 1.49 0 .41-.41.41-1.08 0-1.49L15.5 14zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z" fill="#444"></path>
|
||
</svg>
|
||
<input type="text" name="q" aria-label="快速搜索"/>
|
||
<input type="submit" value="转向"/>
|
||
</form>
|
||
</nav>
|
||
<div class="menu-wrapper">
|
||
<nav class="menu" role="navigation" aria-label="main navigation">
|
||
<div class="language_switcher_placeholder"></div>
|
||
<h3><a href="../contents.html">目录</a></h3>
|
||
<ul>
|
||
<li><a class="reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">locale</span></code> --- 国际化服务</a><ul>
|
||
<li><a class="reference internal" href="#background-details-hints-tips-and-caveats">背景、细节、提示、技巧和注意事项</a></li>
|
||
<li><a class="reference internal" href="#for-extension-writers-and-programs-that-embed-python">针对扩展程序编写人员和嵌入Python 运行的程序</a></li>
|
||
<li><a class="reference internal" href="#access-to-message-catalogs">访问消息目录</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
|
||
<h4>上一个主题</h4>
|
||
<p class="topless"><a href="gettext.html"
|
||
title="上一章"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gettext</span></code> --- 多语种国际化服务</a></p>
|
||
<h4>下一个主题</h4>
|
||
<p class="topless"><a href="frameworks.html"
|
||
title="下一章">程序框架</a></p>
|
||
<div role="note" aria-label="source link">
|
||
<h3>本页</h3>
|
||
<ul class="this-page-menu">
|
||
<li><a href="../bugs.html">报告 Bug</a></li>
|
||
<li>
|
||
<a href="https://github.com/python/cpython/blob/3.8/Doc/library/locale.rst"
|
||
rel="nofollow">显示源代码
|
||
</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</nav>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="outdated-warning" style="padding: .5em; text-align: center; background-color: #FFBABA; color: #6A0E0E;">
|
||
这个文档所针对的是一个已不再受支持的 Python 旧版本。
|
||
你应当升级版本,并阅读
|
||
<a href="/3/library/locale.html"> Python 当前稳定版本的文档</a>.
|
||
</div>
|
||
|
||
<div class="related" role="navigation" aria-label="related navigation">
|
||
<h3>导航</h3>
|
||
<ul>
|
||
<li class="right" style="margin-right: 10px">
|
||
<a href="../genindex.html" title="总目录"
|
||
accesskey="I">索引</a></li>
|
||
<li class="right" >
|
||
<a href="../py-modindex.html" title="Python 模块索引"
|
||
>模块</a> |</li>
|
||
<li class="right" >
|
||
<a href="frameworks.html" title="程序框架"
|
||
accesskey="N">下一页</a> |</li>
|
||
<li class="right" >
|
||
<a href="gettext.html" title="gettext --- 多语种国际化服务"
|
||
accesskey="P">上一页</a> |</li>
|
||
|
||
<li><img src="../_static/py.svg" alt="python logo" style="vertical-align: middle; margin-top: -1px"/></li>
|
||
<li><a href="https://www.python.org/">Python</a> »</li>
|
||
<li class="switchers">
|
||
<div class="language_switcher_placeholder"></div>
|
||
<div class="version_switcher_placeholder"></div>
|
||
</li>
|
||
<li>
|
||
|
||
</li>
|
||
<li id="cpython-language-and-version">
|
||
<a href="../index.html">3.8.20 Documentation</a> »
|
||
</li>
|
||
|
||
<li class="nav-item nav-item-1"><a href="index.html" >Python 标准库</a> »</li>
|
||
<li class="nav-item nav-item-2"><a href="i18n.html" accesskey="U">国际化</a> »</li>
|
||
<li class="right">
|
||
|
||
|
||
<div class="inline-search" role="search">
|
||
<form class="inline-search" action="../search.html" method="get">
|
||
<input placeholder="快速搜索" aria-label="快速搜索" type="text" name="q" />
|
||
<input type="submit" value="转向" />
|
||
<input type="hidden" name="check_keywords" value="yes" />
|
||
<input type="hidden" name="area" value="default" />
|
||
</form>
|
||
</div>
|
||
|
|
||
</li>
|
||
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="document">
|
||
<div class="documentwrapper">
|
||
<div class="bodywrapper">
|
||
<div class="body" role="main">
|
||
|
||
<section id="module-locale">
|
||
<span id="locale-internationalization-services"></span><h1><a class="reference internal" href="#module-locale" title="locale: Internationalization services."><code class="xref py py-mod docutils literal notranslate"><span class="pre">locale</span></code></a> --- 国际化服务<a class="headerlink" href="#module-locale" title="永久链接至标题">¶</a></h1>
|
||
<p><strong>源代码:</strong> <a class="reference external" href="https://github.com/python/cpython/tree/3.8/Lib/locale.py">Lib/locale.py</a></p>
|
||
<hr class="docutils" />
|
||
<p><a class="reference internal" href="#module-locale" title="locale: Internationalization services."><code class="xref py py-mod docutils literal notranslate"><span class="pre">locale</span></code></a> 模块开通了 POSIX 本地化数据库和功能的访问。POSIX 本地化机制让程序员能够为应用程序处理某些本地化的问题,而不需要去了解运行软件的每个国家的全部语言习惯。</p>
|
||
<p id="index-0"><a class="reference internal" href="#module-locale" title="locale: Internationalization services."><code class="xref py py-mod docutils literal notranslate"><span class="pre">locale</span></code></a> 模块是在 <code class="xref py py-mod docutils literal notranslate"><span class="pre">_locale</span></code> 模块的基础上实现的,而 _locale 则又用到了 ANSI C 语言实现的本地化功能。</p>
|
||
<p><a class="reference internal" href="#module-locale" title="locale: Internationalization services."><code class="xref py py-mod docutils literal notranslate"><span class="pre">locale</span></code></a> 模块定义了以下异常和函数:</p>
|
||
<dl class="exception">
|
||
<dt id="locale.Error">
|
||
<em class="property">exception </em><code class="sig-prename descclassname">locale.</code><code class="sig-name descname">Error</code><a class="headerlink" href="#locale.Error" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>当传给 <a class="reference internal" href="#locale.setlocale" title="locale.setlocale"><code class="xref py py-func docutils literal notranslate"><span class="pre">setlocale()</span></code></a> 的 locale 无法识别时,会触发异常。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="function">
|
||
<dt id="locale.setlocale">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">setlocale</code><span class="sig-paren">(</span><em class="sig-param">category</em>, <em class="sig-param">locale=None</em><span class="sig-paren">)</span><a class="headerlink" href="#locale.setlocale" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>如果给定了 <em>locale</em> 而不是 <code class="docutils literal notranslate"><span class="pre">None</span></code>,<a class="reference internal" href="#locale.setlocale" title="locale.setlocale"><code class="xref py py-func docutils literal notranslate"><span class="pre">setlocale()</span></code></a> 会修改 <em>category</em> 的 locale 设置。可用的类别会在下面的数据描述中列出。<em>locale</em> 可以是一个字符串,也可以是两个字符串(语言代码和编码)组成的可迭代对象。若为可迭代对象,则会用地区别名引擎转换为一个地区名称。若为空字符串则指明采用用户的默认设置。如果 locale 设置修改失败,会触发 <a class="reference internal" href="#locale.Error" title="locale.Error"><code class="xref py py-exc docutils literal notranslate"><span class="pre">Error</span></code></a> 异常。如果成功则返回新的 locale 设置。</p>
|
||
<p>如果省略 <em>locale</em> 或为 <code class="docutils literal notranslate"><span class="pre">None</span></code>,将返回 <em>category</em> 但当前设置。</p>
|
||
<p><a class="reference internal" href="#locale.setlocale" title="locale.setlocale"><code class="xref py py-func docutils literal notranslate"><span class="pre">setlocale()</span></code></a> 在大多数系统上都不是线程安全的。应用程序通常会如下调用:</p>
|
||
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">locale</span>
|
||
<span class="n">locale</span><span class="o">.</span><span class="n">setlocale</span><span class="p">(</span><span class="n">locale</span><span class="o">.</span><span class="n">LC_ALL</span><span class="p">,</span> <span class="s1">''</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>这会把所有类别的 locale 都设为用户的默认设置(通常在 <span class="target" id="index-12"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">LANG</span></code> 环境变量中指定)。如果后续 locale 没有改动,则使用多线程应该不会产生问题。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="function">
|
||
<dt id="locale.localeconv">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">localeconv</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#locale.localeconv" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>以字典的形式返回本地约定的数据库。此字典具有以下字符串作为键:</p>
|
||
<table class="docutils align-default">
|
||
<colgroup>
|
||
<col style="width: 24%" />
|
||
<col style="width: 41%" />
|
||
<col style="width: 35%" />
|
||
</colgroup>
|
||
<thead>
|
||
<tr class="row-odd"><th class="head"><p>类别</p></th>
|
||
<th class="head"><p>键</p></th>
|
||
<th class="head"><p>含意</p></th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr class="row-even"><td><p><a class="reference internal" href="#locale.LC_NUMERIC" title="locale.LC_NUMERIC"><code class="xref py py-const docutils literal notranslate"><span class="pre">LC_NUMERIC</span></code></a></p></td>
|
||
<td><p><code class="docutils literal notranslate"><span class="pre">'decimal_point'</span></code></p></td>
|
||
<td><p>小数点字符。</p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td></td>
|
||
<td><p><code class="docutils literal notranslate"><span class="pre">'grouping'</span></code></p></td>
|
||
<td><p>数字列表,指定 <code class="docutils literal notranslate"><span class="pre">'thousands_sep'</span></code> 应该出现的位置。 如果列表以 <a class="reference internal" href="#locale.CHAR_MAX" title="locale.CHAR_MAX"><code class="xref py py-const docutils literal notranslate"><span class="pre">CHAR_MAX</span></code></a> 结束,则不会作分组。如果列表以 <code class="docutils literal notranslate"><span class="pre">0</span></code> 结束,则重复使用最后的分组大小。</p></td>
|
||
</tr>
|
||
<tr class="row-even"><td></td>
|
||
<td><p><code class="docutils literal notranslate"><span class="pre">'thousands_sep'</span></code></p></td>
|
||
<td><p>组之间使用的字符。</p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><a class="reference internal" href="#locale.LC_MONETARY" title="locale.LC_MONETARY"><code class="xref py py-const docutils literal notranslate"><span class="pre">LC_MONETARY</span></code></a></p></td>
|
||
<td><p><code class="docutils literal notranslate"><span class="pre">'int_curr_symbol'</span></code></p></td>
|
||
<td><p>国际货币符号。</p></td>
|
||
</tr>
|
||
<tr class="row-even"><td></td>
|
||
<td><p><code class="docutils literal notranslate"><span class="pre">'currency_symbol'</span></code></p></td>
|
||
<td><p>当地货币符号。</p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td></td>
|
||
<td><p><code class="docutils literal notranslate"><span class="pre">'p_cs_precedes/n_cs_precedes'</span></code></p></td>
|
||
<td><p>货币符号是否在值之前(对于正值或负值)。</p></td>
|
||
</tr>
|
||
<tr class="row-even"><td></td>
|
||
<td><p><code class="docutils literal notranslate"><span class="pre">'p_sep_by_space/n_sep_by_space'</span></code></p></td>
|
||
<td><p>货币符号是否通过空格与值分隔(对于正值或负值)。</p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td></td>
|
||
<td><p><code class="docutils literal notranslate"><span class="pre">'mon_decimal_point'</span></code></p></td>
|
||
<td><p>用于货币金额的小数点。</p></td>
|
||
</tr>
|
||
<tr class="row-even"><td></td>
|
||
<td><p><code class="docutils literal notranslate"><span class="pre">'frac_digits'</span></code></p></td>
|
||
<td><p>货币值的本地格式中使用的小数位数。</p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td></td>
|
||
<td><p><code class="docutils literal notranslate"><span class="pre">'int_frac_digits'</span></code></p></td>
|
||
<td><p>货币价值的国际格式中使用的小数位数。</p></td>
|
||
</tr>
|
||
<tr class="row-even"><td></td>
|
||
<td><p><code class="docutils literal notranslate"><span class="pre">'mon_thousands_sep'</span></code></p></td>
|
||
<td><p>用于货币值的组分隔符。</p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td></td>
|
||
<td><p><code class="docutils literal notranslate"><span class="pre">'mon_grouping'</span></code></p></td>
|
||
<td><p>相当于 <code class="docutils literal notranslate"><span class="pre">'grouping'</span></code> ,用于货币价值。</p></td>
|
||
</tr>
|
||
<tr class="row-even"><td></td>
|
||
<td><p><code class="docutils literal notranslate"><span class="pre">'positive_sign'</span></code></p></td>
|
||
<td><p>用于标注正货币价值的符号。</p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td></td>
|
||
<td><p><code class="docutils literal notranslate"><span class="pre">'negative_sign'</span></code></p></td>
|
||
<td><p>用于注释负货币价值的符号。</p></td>
|
||
</tr>
|
||
<tr class="row-even"><td></td>
|
||
<td><p><code class="docutils literal notranslate"><span class="pre">'p_sign_posn/n_sign_posn'</span></code></p></td>
|
||
<td><p>符号的位置(对于正值或负值),见下文。</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<p>可以将所有数值设置为 <a class="reference internal" href="#locale.CHAR_MAX" title="locale.CHAR_MAX"><code class="xref py py-const docutils literal notranslate"><span class="pre">CHAR_MAX</span></code></a> ,以指示本 locale 中未指定任何值。</p>
|
||
<p>下面给出了 <code class="docutils literal notranslate"><span class="pre">'p_sign_posn'</span></code> 和 <code class="docutils literal notranslate"><span class="pre">'n_sign_posn'</span></code> 的可能值。</p>
|
||
<table class="docutils align-default">
|
||
<colgroup>
|
||
<col style="width: 25%" />
|
||
<col style="width: 75%" />
|
||
</colgroup>
|
||
<thead>
|
||
<tr class="row-odd"><th class="head"><p>值</p></th>
|
||
<th class="head"><p>说明</p></th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">0</span></code></p></td>
|
||
<td><p>被括号括起来的货币和金额。</p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">1</span></code></p></td>
|
||
<td><p>该标志应位于值和货币符号之前。</p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">2</span></code></p></td>
|
||
<td><p>该标志应位于值和货币符号之后。</p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">3</span></code></p></td>
|
||
<td><p>标志应该紧跟在值之前。</p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">4</span></code></p></td>
|
||
<td><p>标志应该紧跟在值之后。</p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">CHAR_MAX</span></code></p></td>
|
||
<td><p>该地区未指定内容。</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<p>该函数将 <code class="docutils literal notranslate"><span class="pre">LC_CTYPE</span></code> 地区设为 <code class="docutils literal notranslate"><span class="pre">LC_NUMERIC</span></code> 地区,若地区不同且数字或货币字符为非 ASCII,则设置为 <code class="docutils literal notranslate"><span class="pre">LC_MONETARY</span></code> 地区。这个临时的改变会影响到其他线程。</p>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">在 3.7 版更改: </span>现在在某些情况下,该函数会将 <code class="docutils literal notranslate"><span class="pre">LC_CTYPE</span></code> 地区设为 <code class="docutils literal notranslate"><span class="pre">LC_NUMERIC</span></code> 地区。</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="function">
|
||
<dt id="locale.nl_langinfo">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">nl_langinfo</code><span class="sig-paren">(</span><em class="sig-param">option</em><span class="sig-paren">)</span><a class="headerlink" href="#locale.nl_langinfo" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>以字符串形式返回一些地区相关的信息。本函数并非在所有系统都可用,而且可用的 option 在不同平台上也可能不同。可填的参数值为数值,在 locale 模块中提供了对应的符号常量。</p>
|
||
<p><a class="reference internal" href="#locale.nl_langinfo" title="locale.nl_langinfo"><code class="xref py py-func docutils literal notranslate"><span class="pre">nl_langinfo()</span></code></a> 函数可接受以下值。大部分含义都取自 GNU C 库。</p>
|
||
<dl class="data">
|
||
<dt id="locale.CODESET">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">CODESET</code><a class="headerlink" href="#locale.CODESET" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>获取一个字符串,代表所选地区采用的字符编码名称。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="data">
|
||
<dt id="locale.D_T_FMT">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">D_T_FMT</code><a class="headerlink" href="#locale.D_T_FMT" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>获取一个字符串,可用作 <a class="reference internal" href="time.html#time.strftime" title="time.strftime"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.strftime()</span></code></a> 的格式串,以便以地区特定格式表示日期和时间。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="data">
|
||
<dt id="locale.D_FMT">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">D_FMT</code><a class="headerlink" href="#locale.D_FMT" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>获取一个字符串,可用作 <a class="reference internal" href="time.html#time.strftime" title="time.strftime"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.strftime()</span></code></a> 的格式串,以便以地区特定格式表示日期。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="data">
|
||
<dt id="locale.T_FMT">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">T_FMT</code><a class="headerlink" href="#locale.T_FMT" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>获取一个字符串,可用作 <a class="reference internal" href="time.html#time.strftime" title="time.strftime"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.strftime()</span></code></a> 的格式串,以便以地区特定格式表示时间。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="data">
|
||
<dt id="locale.T_FMT_AMPM">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">T_FMT_AMPM</code><a class="headerlink" href="#locale.T_FMT_AMPM" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>获取一个字符串,可用作 <a class="reference internal" href="time.html#time.strftime" title="time.strftime"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.strftime()</span></code></a> 的格式串,以便以 am/pm 的格式表示时间。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="data">
|
||
<dt>
|
||
<code class="sig-name descname">DAY_1 ... DAY_7</code></dt>
|
||
<dd><p>获取一周中第 n 天的名称。</p>
|
||
<div class="admonition note">
|
||
<p class="admonition-title">注解</p>
|
||
<p>这里遵循美国惯例,即 <code class="xref py py-const docutils literal notranslate"><span class="pre">DAY_1</span></code> 是星期天,而不是国际惯例(ISO 8601),即星期一是一周的第一天。</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="data">
|
||
<dt>
|
||
<code class="sig-name descname">ABDAY_1 ... ABDAY_7</code></dt>
|
||
<dd><p>获取一周中第 n 天的缩写名称。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="data">
|
||
<dt>
|
||
<code class="sig-name descname">MON_1 ... MON_12</code></dt>
|
||
<dd><p>获取第 n 个月的名称。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="data">
|
||
<dt>
|
||
<code class="sig-name descname">ABMON_1 ... ABMON_12</code></dt>
|
||
<dd><p>获取第 n 个月的缩写名称。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="data">
|
||
<dt id="locale.RADIXCHAR">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">RADIXCHAR</code><a class="headerlink" href="#locale.RADIXCHAR" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>获取小数点字符(小数点、小数逗号等)。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="data">
|
||
<dt id="locale.THOUSEP">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">THOUSEP</code><a class="headerlink" href="#locale.THOUSEP" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>获取千位数(三位数一组)的分隔符。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="data">
|
||
<dt id="locale.YESEXPR">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">YESEXPR</code><a class="headerlink" href="#locale.YESEXPR" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>获取一个可供 regex 函数使用的正则表达式,用于识别需要回答是或否的问题的肯定回答。</p>
|
||
<div class="admonition note">
|
||
<p class="admonition-title">注解</p>
|
||
<p>该表达式的语法适用于 C 库的 <code class="xref c c-func docutils literal notranslate"><span class="pre">regex()</span></code> 函数,可能与 <a class="reference internal" href="re.html#module-re" title="re: Regular expression operations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">re</span></code></a> 中的语法不一样。</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="data">
|
||
<dt id="locale.NOEXPR">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">NOEXPR</code><a class="headerlink" href="#locale.NOEXPR" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>获取一个可供 regex(3) 函数使用的正则表达式,用于识别需要回答是或否的问题的否定回答。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="data">
|
||
<dt id="locale.CRNCYSTR">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">CRNCYSTR</code><a class="headerlink" href="#locale.CRNCYSTR" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>获取货币符号,如果符号应位于数字之前,则在其前面加上“-”;如果符号应位于数字之后,则前面加“+”;如果符号应取代小数点字符,则前面加“.”。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="data">
|
||
<dt id="locale.ERA">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">ERA</code><a class="headerlink" href="#locale.ERA" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>获取一个字符串,代表当前地区使用的纪元。</p>
|
||
<p>大多数地区都没有定义该值。定义了该值的一个案例日本。日本传统的日期表示方法中,包含了当时天皇统治朝代的名称。</p>
|
||
<p>通常没有必要直接使用该值。在格式串中指定 <code class="docutils literal notranslate"><span class="pre">E</span></code> 符号,会让 <a class="reference internal" href="time.html#time.strftime" title="time.strftime"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.strftime()</span></code></a> 函数启用此信息。返回字符串的格式并没有定义,因此不得假定各个系统都能理解。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="data">
|
||
<dt id="locale.ERA_D_T_FMT">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">ERA_D_T_FMT</code><a class="headerlink" href="#locale.ERA_D_T_FMT" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>获取一个字符串,可用作 <a class="reference internal" href="time.html#time.strftime" title="time.strftime"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.strftime()</span></code></a> 的格式串,以便以地区特定格式表示带纪元的日期和时间。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="data">
|
||
<dt id="locale.ERA_D_FMT">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">ERA_D_FMT</code><a class="headerlink" href="#locale.ERA_D_FMT" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>获取一个字符串,可用作 <a class="reference internal" href="time.html#time.strftime" title="time.strftime"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.strftime()</span></code></a> 的格式串,以便以地区特定格式表示带纪元的日期。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="data">
|
||
<dt id="locale.ERA_T_FMT">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">ERA_T_FMT</code><a class="headerlink" href="#locale.ERA_T_FMT" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>获取一个字符串,可用作 <a class="reference internal" href="time.html#time.strftime" title="time.strftime"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.strftime()</span></code></a> 的格式串,以便以地区特定格式表示带纪元的时间。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="data">
|
||
<dt id="locale.ALT_DIGITS">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">ALT_DIGITS</code><a class="headerlink" href="#locale.ALT_DIGITS" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>获取 0 到 99 的表示法,最多不超过 100 个值。</p>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="function">
|
||
<dt id="locale.getdefaultlocale">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">getdefaultlocale</code><span class="sig-paren">(</span><span class="optional">[</span><em class="sig-param">envvars</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#locale.getdefaultlocale" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>尝试确定默认的地区设置,并以 <code class="docutils literal notranslate"><span class="pre">(language</span> <span class="pre">code,</span> <span class="pre">encoding)</span></code> 元组的形式返回。</p>
|
||
<p>根据 POSIX 的规范,未调用 <code class="docutils literal notranslate"><span class="pre">setlocale(LC_ALL,</span> <span class="pre">'')</span></code> 的程序采用可移植的 <code class="docutils literal notranslate"><span class="pre">'C'</span></code> 区域设置运行。 调用 <code class="docutils literal notranslate"><span class="pre">setlocale(LC_ALL,</span> <span class="pre">'')</span></code> 则可采用 <span class="target" id="index-13"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">LANG</span></code> 变量定义的默认区域。 由于不想干扰当前的区域设置,因此就以上述方式进行了模拟。</p>
|
||
<p>为了维持与其他平台的兼容性,不仅需要检测 <span class="target" id="index-14"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">LANG</span></code> 变量,还需要检测 envvars 参数给出的变量列表。首先发现的定义将被采用。 <em>envvars</em> 默认为 GNU gettext 采用的搜索路径;必须包含 <code class="docutils literal notranslate"><span class="pre">'LANG'</span></code> 变量。 GNU gettext 的搜索路径依次包含了 <code class="docutils literal notranslate"><span class="pre">'LC_ALL'</span></code>、<code class="docutils literal notranslate"><span class="pre">'LC_CTYPE'</span></code>、<code class="docutils literal notranslate"><span class="pre">'LANG'</span></code> 和 <code class="docutils literal notranslate"><span class="pre">'LANGUAGE'</span></code>。</p>
|
||
<p>除了 <code class="docutils literal notranslate"><span class="pre">'C'</span></code> 之外,语言代码对应 <span class="target" id="index-15"></span><a class="rfc reference external" href="https://tools.ietf.org/html/rfc1766.html"><strong>RFC 1766</strong></a> 标准。若 <em>语言代码</em> 和 <em>编码</em> 无法确定,则可为 <code class="docutils literal notranslate"><span class="pre">None</span></code>。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="function">
|
||
<dt id="locale.getlocale">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">getlocale</code><span class="sig-paren">(</span><em class="sig-param">category=LC_CTYPE</em><span class="sig-paren">)</span><a class="headerlink" href="#locale.getlocale" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>以列表的形式返回指定地区类别的当前设置,结果包括 <em>语言代码</em> 、<em>编码</em>。<em>category</em> 可以是 <code class="xref py py-const docutils literal notranslate"><span class="pre">LC_*</span></code> 之一, <a class="reference internal" href="#locale.LC_ALL" title="locale.LC_ALL"><code class="xref py py-const docutils literal notranslate"><span class="pre">LC_ALL</span></code></a> 除外。默认为 <a class="reference internal" href="#locale.LC_CTYPE" title="locale.LC_CTYPE"><code class="xref py py-const docutils literal notranslate"><span class="pre">LC_CTYPE</span></code></a>。</p>
|
||
<p>除了 <code class="docutils literal notranslate"><span class="pre">'C'</span></code> 之外,语言代码对应 <span class="target" id="index-16"></span><a class="rfc reference external" href="https://tools.ietf.org/html/rfc1766.html"><strong>RFC 1766</strong></a> 标准。若 <em>语言代码</em> 和 <em>编码</em> 无法确定,则可为 <code class="docutils literal notranslate"><span class="pre">None</span></code>。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="function">
|
||
<dt id="locale.getpreferredencoding">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">getpreferredencoding</code><span class="sig-paren">(</span><em class="sig-param">do_setlocale=True</em><span class="sig-paren">)</span><a class="headerlink" href="#locale.getpreferredencoding" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>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.</p>
|
||
<p>某些系统必须调用 <a class="reference internal" href="#locale.setlocale" title="locale.setlocale"><code class="xref py py-func docutils literal notranslate"><span class="pre">setlocale()</span></code></a> 才能获取用户偏好,所以本函数不是线程安全的。如果不需要或不希望调用 setlocale,<em>do_setlocale</em> 应设为 <code class="docutils literal notranslate"><span class="pre">False</span></code>。</p>
|
||
<p>On Android or in the UTF-8 mode (<a class="reference internal" href="../using/cmdline.html#id5"><code class="xref std std-option docutils literal notranslate"><span class="pre">-X</span></code></a> <code class="docutils literal notranslate"><span class="pre">utf8</span></code> option), always
|
||
return <code class="docutils literal notranslate"><span class="pre">'UTF-8'</span></code>, the locale and the <em>do_setlocale</em> argument are ignored.</p>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">在 3.7 版更改: </span>The function now always returns <code class="docutils literal notranslate"><span class="pre">UTF-8</span></code> on Android or if the UTF-8 mode
|
||
is enabled.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="function">
|
||
<dt id="locale.normalize">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">normalize</code><span class="sig-paren">(</span><em class="sig-param">localename</em><span class="sig-paren">)</span><a class="headerlink" href="#locale.normalize" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>为给定的区域名称返回标准代码。返回的区域代码已经格式化,可供 <a class="reference internal" href="#locale.setlocale" title="locale.setlocale"><code class="xref py py-func docutils literal notranslate"><span class="pre">setlocale()</span></code></a> 使用。 如果标准化操作失败,则返回原名称。</p>
|
||
<p>如果给出的编码无法识别,则本函数默认采用区域代码的默认编码,这正类似于 <a class="reference internal" href="#locale.setlocale" title="locale.setlocale"><code class="xref py py-func docutils literal notranslate"><span class="pre">setlocale()</span></code></a>。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="function">
|
||
<dt id="locale.resetlocale">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">resetlocale</code><span class="sig-paren">(</span><em class="sig-param">category=LC_ALL</em><span class="sig-paren">)</span><a class="headerlink" href="#locale.resetlocale" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>将 <em>category</em> 的区域设为默认值。</p>
|
||
<p>默认设置通过调用 <a class="reference internal" href="#locale.getdefaultlocale" title="locale.getdefaultlocale"><code class="xref py py-func docutils literal notranslate"><span class="pre">getdefaultlocale()</span></code></a> 确定。<em>category</em> 默认为 <a class="reference internal" href="#locale.LC_ALL" title="locale.LC_ALL"><code class="xref py py-const docutils literal notranslate"><span class="pre">LC_ALL</span></code></a>。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="function">
|
||
<dt id="locale.strcoll">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">strcoll</code><span class="sig-paren">(</span><em class="sig-param">string1</em>, <em class="sig-param">string2</em><span class="sig-paren">)</span><a class="headerlink" href="#locale.strcoll" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>根据当前的 <a class="reference internal" href="#locale.LC_COLLATE" title="locale.LC_COLLATE"><code class="xref py py-const docutils literal notranslate"><span class="pre">LC_COLLATE</span></code></a> 设置,对两个字符串进行比较。与其他比较函数一样,根据 <em>string1</em> 位于 <em>string2</em> 之前、之后或是相同,返回负值、、正值或者 <code class="docutils literal notranslate"><span class="pre">0</span></code>。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="function">
|
||
<dt id="locale.strxfrm">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">strxfrm</code><span class="sig-paren">(</span><em class="sig-param">string</em><span class="sig-paren">)</span><a class="headerlink" href="#locale.strxfrm" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>将字符串转换为可用于本地化比较的字符串。例如 <code class="docutils literal notranslate"><span class="pre">strxfrm(s1)</span> <span class="pre"><</span> <span class="pre">strxfrm(s2)</span></code> 相当于 <code class="docutils literal notranslate"><span class="pre">strcoll(s1,</span> <span class="pre">s2)</span> <span class="pre"><</span> <span class="pre">0</span></code>。在重复比较同一个字符串时,可能会用到本函数,比如整理字符串列表时。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="function">
|
||
<dt id="locale.format_string">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">format_string</code><span class="sig-paren">(</span><em class="sig-param">format</em>, <em class="sig-param">val</em>, <em class="sig-param">grouping=False</em>, <em class="sig-param">monetary=False</em><span class="sig-paren">)</span><a class="headerlink" href="#locale.format_string" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>根据当前的 <a class="reference internal" href="#locale.LC_NUMERIC" title="locale.LC_NUMERIC"><code class="xref py py-const docutils literal notranslate"><span class="pre">LC_NUMERIC</span></code></a> 设置,对数字 <em>val</em> 进行格式化。格式将遵循 <code class="docutils literal notranslate"><span class="pre">%</span></code> 运算符的约定。浮点值的小数点会按需修改。若 <em>grouping</em> 为 True,则还会考虑分组。</p>
|
||
<p>若 <em>monetary</em> 为 True,则会用到货币千位分隔符和分组字符串。</p>
|
||
<p>格式化符的处理类似 <code class="docutils literal notranslate"><span class="pre">format</span> <span class="pre">%</span> <span class="pre">val</span></code> ,但会考虑到当前的区域设置。</p>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">在 3.7 版更改: </span>增加了关键字参数 <em>monetary</em> 。</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="function">
|
||
<dt id="locale.format">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">format</code><span class="sig-paren">(</span><em class="sig-param">format</em>, <em class="sig-param">val</em>, <em class="sig-param">grouping=False</em>, <em class="sig-param">monetary=False</em><span class="sig-paren">)</span><a class="headerlink" href="#locale.format" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>请注意,本函数的工作原理与 <a class="reference internal" href="#locale.format_string" title="locale.format_string"><code class="xref py py-meth docutils literal notranslate"><span class="pre">format_string()</span></code></a> 类似,但只认一种 <code class="docutils literal notranslate"><span class="pre">%char</span></code> 格式符。 比如 <code class="docutils literal notranslate"><span class="pre">'%f'</span></code> 和 <code class="docutils literal notranslate"><span class="pre">'%.0f'</span></code> 都是有效的格式符,但 <code class="docutils literal notranslate"><span class="pre">'%f</span> <span class="pre">KiB'</span></code> 则不是。</p>
|
||
<p>若想用到全部的格式化串,请采用 <a class="reference internal" href="#locale.format_string" title="locale.format_string"><code class="xref py py-func docutils literal notranslate"><span class="pre">format_string()</span></code></a>。</p>
|
||
<div class="deprecated">
|
||
<p><span class="versionmodified deprecated">3.7 版后已移除: </span>请改用 <a class="reference internal" href="#locale.format_string" title="locale.format_string"><code class="xref py py-meth docutils literal notranslate"><span class="pre">format_string()</span></code></a> 。</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="function">
|
||
<dt id="locale.currency">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">currency</code><span class="sig-paren">(</span><em class="sig-param">val</em>, <em class="sig-param">symbol=True</em>, <em class="sig-param">grouping=False</em>, <em class="sig-param">international=False</em><span class="sig-paren">)</span><a class="headerlink" href="#locale.currency" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>根据当前的 <a class="reference internal" href="#locale.LC_MONETARY" title="locale.LC_MONETARY"><code class="xref py py-const docutils literal notranslate"><span class="pre">LC_MONETARY</span></code></a> 设置,对数字 <em>val</em> 进行格式化。</p>
|
||
<p>如果 <em>symbol</em> 为 True(默认值),则返回的字符串将包含货币符号。如果 <em>grouping</em> 为 True(非默认值),则会进行分组。如果 <em>international</em> 为 True(非默认值),将采用国际货币符号。</p>
|
||
<p>请注意,本函数对区域 “C” 无效,所以必须先通过 <a class="reference internal" href="#locale.setlocale" title="locale.setlocale"><code class="xref py py-func docutils literal notranslate"><span class="pre">setlocale()</span></code></a> 设置一个区域。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="function">
|
||
<dt id="locale.str">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">str</code><span class="sig-paren">(</span><em class="sig-param">float</em><span class="sig-paren">)</span><a class="headerlink" href="#locale.str" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>对浮点数进行格式化,格式要求与内置函数 <code class="docutils literal notranslate"><span class="pre">str(float)</span></code> 相同,但会考虑小数点。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="function">
|
||
<dt id="locale.delocalize">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">delocalize</code><span class="sig-paren">(</span><em class="sig-param">string</em><span class="sig-paren">)</span><a class="headerlink" href="#locale.delocalize" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>根据 <a class="reference internal" href="#locale.LC_NUMERIC" title="locale.LC_NUMERIC"><code class="xref py py-const docutils literal notranslate"><span class="pre">LC_NUMERIC</span></code></a> 的设置,将字符串转换为标准化的数字字符串。</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">3.5 新版功能.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="function">
|
||
<dt id="locale.atof">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">atof</code><span class="sig-paren">(</span><em class="sig-param">string</em><span class="sig-paren">)</span><a class="headerlink" href="#locale.atof" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>根据 <a class="reference internal" href="#locale.LC_NUMERIC" title="locale.LC_NUMERIC"><code class="xref py py-const docutils literal notranslate"><span class="pre">LC_NUMERIC</span></code></a> 的设置,将字符串转换为浮点数。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="function">
|
||
<dt id="locale.atoi">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">atoi</code><span class="sig-paren">(</span><em class="sig-param">string</em><span class="sig-paren">)</span><a class="headerlink" href="#locale.atoi" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>按照 <a class="reference internal" href="#locale.LC_NUMERIC" title="locale.LC_NUMERIC"><code class="xref py py-const docutils literal notranslate"><span class="pre">LC_NUMERIC</span></code></a> 的约定,将字符串转换为整数。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="data">
|
||
<dt id="locale.LC_CTYPE">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">LC_CTYPE</code><a class="headerlink" href="#locale.LC_CTYPE" title="永久链接至目标">¶</a></dt>
|
||
<dd><p id="index-6">字符型函数的区域类别。根据该类别的设置,模块 <a class="reference internal" href="string.html#module-string" title="string: Common string operations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">string</span></code></a> 中处理大小写的函数会改变操作方式。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="data">
|
||
<dt id="locale.LC_COLLATE">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">LC_COLLATE</code><a class="headerlink" href="#locale.LC_COLLATE" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>字符串排序会用到的区域类别。 将会影响 <a class="reference internal" href="#module-locale" title="locale: Internationalization services."><code class="xref py py-mod docutils literal notranslate"><span class="pre">locale</span></code></a> 模块的 <a class="reference internal" href="#locale.strcoll" title="locale.strcoll"><code class="xref py py-func docutils literal notranslate"><span class="pre">strcoll()</span></code></a> 和 <a class="reference internal" href="#locale.strxfrm" title="locale.strxfrm"><code class="xref py py-func docutils literal notranslate"><span class="pre">strxfrm()</span></code></a> 函数。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="data">
|
||
<dt id="locale.LC_TIME">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">LC_TIME</code><a class="headerlink" href="#locale.LC_TIME" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>格式化时间时会用到的区域类别。 <a class="reference internal" href="time.html#time.strftime" title="time.strftime"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.strftime()</span></code></a> 函数会参考这些约定。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="data">
|
||
<dt id="locale.LC_MONETARY">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">LC_MONETARY</code><a class="headerlink" href="#locale.LC_MONETARY" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>格式化货币值时会用到的区域类别。可用值可由 <a class="reference internal" href="#locale.localeconv" title="locale.localeconv"><code class="xref py py-func docutils literal notranslate"><span class="pre">localeconv()</span></code></a> 函数获取。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="data">
|
||
<dt id="locale.LC_MESSAGES">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">LC_MESSAGES</code><a class="headerlink" href="#locale.LC_MESSAGES" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>显示消息时用到的区域类别。目前 Python 不支持应用定制的本地化消息。 由操作系统显示的消息,比如由 <a class="reference internal" href="os.html#os.strerror" title="os.strerror"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.strerror()</span></code></a> 返回的消息可能会受到该类别的影响。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="data">
|
||
<dt id="locale.LC_NUMERIC">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">LC_NUMERIC</code><a class="headerlink" href="#locale.LC_NUMERIC" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>格式化数字时用到的区域类别。 <a class="reference internal" href="#module-locale" title="locale: Internationalization services."><code class="xref py py-mod docutils literal notranslate"><span class="pre">locale</span></code></a> 模块的 <a class="reference internal" href="#locale.format" title="locale.format"><code class="xref py py-func docutils literal notranslate"><span class="pre">format()</span></code></a> 、 <a class="reference internal" href="#locale.atoi" title="locale.atoi"><code class="xref py py-func docutils literal notranslate"><span class="pre">atoi()</span></code></a> 、 <a class="reference internal" href="#locale.atof" title="locale.atof"><code class="xref py py-func docutils literal notranslate"><span class="pre">atof()</span></code></a> 和 <a class="reference internal" href="#locale.str" title="locale.str"><code class="xref py py-func docutils literal notranslate"><span class="pre">str()</span></code></a> 函数会受到该类别的影响。其他所有数字格式化操作不受影响。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="data">
|
||
<dt id="locale.LC_ALL">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">LC_ALL</code><a class="headerlink" href="#locale.LC_ALL" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>混合所有的区域设置。如果在区域改动时使用该标志,将尝试设置所有类别的区域参数。只要有任何一个类别设置失败,就不会修改任何类别。在使用此标志获取区域设置时,会返回一个代表所有类别设置的字符串。之后可用此字符串恢复设置。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="data">
|
||
<dt id="locale.CHAR_MAX">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">CHAR_MAX</code><a class="headerlink" href="#locale.CHAR_MAX" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>一个符号常量, <a class="reference internal" href="#locale.localeconv" title="locale.localeconv"><code class="xref py py-func docutils literal notranslate"><span class="pre">localeconv()</span></code></a> 返回多个值时将会用到。</p>
|
||
</dd></dl>
|
||
|
||
<p>示例:</p>
|
||
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="kn">import</span> <span class="nn">locale</span>
|
||
<span class="gp">>>> </span><span class="n">loc</span> <span class="o">=</span> <span class="n">locale</span><span class="o">.</span><span class="n">getlocale</span><span class="p">()</span> <span class="c1"># get current locale</span>
|
||
<span class="go"># use German locale; name might vary with platform</span>
|
||
<span class="gp">>>> </span><span class="n">locale</span><span class="o">.</span><span class="n">setlocale</span><span class="p">(</span><span class="n">locale</span><span class="o">.</span><span class="n">LC_ALL</span><span class="p">,</span> <span class="s1">'de_DE'</span><span class="p">)</span>
|
||
<span class="gp">>>> </span><span class="n">locale</span><span class="o">.</span><span class="n">strcoll</span><span class="p">(</span><span class="s1">'f</span><span class="se">\xe4</span><span class="s1">n'</span><span class="p">,</span> <span class="s1">'foo'</span><span class="p">)</span> <span class="c1"># compare a string containing an umlaut</span>
|
||
<span class="gp">>>> </span><span class="n">locale</span><span class="o">.</span><span class="n">setlocale</span><span class="p">(</span><span class="n">locale</span><span class="o">.</span><span class="n">LC_ALL</span><span class="p">,</span> <span class="s1">''</span><span class="p">)</span> <span class="c1"># use user's preferred locale</span>
|
||
<span class="gp">>>> </span><span class="n">locale</span><span class="o">.</span><span class="n">setlocale</span><span class="p">(</span><span class="n">locale</span><span class="o">.</span><span class="n">LC_ALL</span><span class="p">,</span> <span class="s1">'C'</span><span class="p">)</span> <span class="c1"># use default (C) locale</span>
|
||
<span class="gp">>>> </span><span class="n">locale</span><span class="o">.</span><span class="n">setlocale</span><span class="p">(</span><span class="n">locale</span><span class="o">.</span><span class="n">LC_ALL</span><span class="p">,</span> <span class="n">loc</span><span class="p">)</span> <span class="c1"># restore saved locale</span>
|
||
</pre></div>
|
||
</div>
|
||
<section id="background-details-hints-tips-and-caveats">
|
||
<h2>背景、细节、提示、技巧和注意事项<a class="headerlink" href="#background-details-hints-tips-and-caveats" title="永久链接至标题">¶</a></h2>
|
||
<p>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.</p>
|
||
<p>当程序第一次启动时,无论用户偏好定义成什么,区域值都是 <code class="docutils literal notranslate"><span class="pre">C</span></code>。不过有一个例外,就是在启动时修改 <a class="reference internal" href="#locale.LC_CTYPE" title="locale.LC_CTYPE"><code class="xref py py-data docutils literal notranslate"><span class="pre">LC_CTYPE</span></code></a> 类别,设置当前区域编码为用户偏好编码。程序必须调用 <code class="docutils literal notranslate"><span class="pre">setlocale(LC_ALL,</span> <span class="pre">'')</span></code> 明确表示用户偏好区域将设为其他类别。</p>
|
||
<p>若要从库程序中调用 <a class="reference internal" href="#locale.setlocale" title="locale.setlocale"><code class="xref py py-func docutils literal notranslate"><span class="pre">setlocale()</span></code></a> ,通常这不是个好主意,因为副作用是会影响整个程序。保存和恢复区域设置也几乎一样糟糕:不仅代价高昂,而且会影响到恢复之前运行的其他线程。</p>
|
||
<p>如果是要编写通用模块,需要有一种不受区域设置影响的操作方式(比如某些用到 <a class="reference internal" href="time.html#time.strftime" title="time.strftime"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.strftime()</span></code></a> 的格式),将不得不寻找一种不用标准库的方案。更好的办法是说服自己,可以采纳区域设置。只有在万不得已的情况下,才能用文档标注出模块与非 <code class="docutils literal notranslate"><span class="pre">C</span></code> 区域设置不兼容。</p>
|
||
<p>根据区域设置进行数字运算的唯一方法,就是采用本模块定义的函数:<a class="reference internal" href="#locale.atof" title="locale.atof"><code class="xref py py-func docutils literal notranslate"><span class="pre">atof()</span></code></a> 、 <a class="reference internal" href="#locale.atoi" title="locale.atoi"><code class="xref py py-func docutils literal notranslate"><span class="pre">atoi()</span></code></a> 、 <a class="reference internal" href="#locale.format" title="locale.format"><code class="xref py py-func docutils literal notranslate"><span class="pre">format()</span></code></a> 、 <a class="reference internal" href="#locale.str" title="locale.str"><code class="xref py py-func docutils literal notranslate"><span class="pre">str()</span></code></a>。</p>
|
||
<p>无法根据区域设置进行大小写转换和字符分类。对于(Unicode)文本字符串来说,这些操作都是根据字符值进行的;而对于字节符串来说,转换和分类则是根据字节的 ASCII 值进行的,高位被置位的字节(即非 ASCII 字节)永远不会被转换或被视作字母或空白符之类。</p>
|
||
</section>
|
||
<section id="for-extension-writers-and-programs-that-embed-python">
|
||
<span id="embedding-locale"></span><h2>针对扩展程序编写人员和嵌入Python 运行的程序<a class="headerlink" href="#for-extension-writers-and-programs-that-embed-python" title="永久链接至标题">¶</a></h2>
|
||
<p>除了要查询当前区域,扩展模块不应去调用 <a class="reference internal" href="#locale.setlocale" title="locale.setlocale"><code class="xref py py-func docutils literal notranslate"><span class="pre">setlocale()</span></code></a>。但由于返回值只能用于恢复设置,所以也没什么用(也许只能用于确认是否为 <code class="docutils literal notranslate"><span class="pre">C</span></code>)。</p>
|
||
<p>当 Python 代码利用 <a class="reference internal" href="#module-locale" title="locale: Internationalization services."><code class="xref py py-mod docutils literal notranslate"><span class="pre">locale</span></code></a> 模块修改区域设置时,也会影响到嵌入 Python 运行的应用程序。如果嵌入运行的程序不希望发生这种情况,则应从 <code class="file docutils literal notranslate"><span class="pre">config.c</span></code> 文件的内置模块表中删除 <code class="xref py py-mod docutils literal notranslate"><span class="pre">_locale</span></code> 扩展模块(所有操作均是由它完成的),并确保 <code class="xref py py-mod docutils literal notranslate"><span class="pre">_locale</span></code> 模块不能成为一个共享库。</p>
|
||
</section>
|
||
<section id="access-to-message-catalogs">
|
||
<span id="locale-gettext"></span><h2>访问消息目录<a class="headerlink" href="#access-to-message-catalogs" title="永久链接至标题">¶</a></h2>
|
||
<dl class="function">
|
||
<dt id="locale.gettext">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">gettext</code><span class="sig-paren">(</span><em class="sig-param">msg</em><span class="sig-paren">)</span><a class="headerlink" href="#locale.gettext" title="永久链接至目标">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="function">
|
||
<dt id="locale.dgettext">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">dgettext</code><span class="sig-paren">(</span><em class="sig-param">domain</em>, <em class="sig-param">msg</em><span class="sig-paren">)</span><a class="headerlink" href="#locale.dgettext" title="永久链接至目标">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="function">
|
||
<dt id="locale.dcgettext">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">dcgettext</code><span class="sig-paren">(</span><em class="sig-param">domain</em>, <em class="sig-param">msg</em>, <em class="sig-param">category</em><span class="sig-paren">)</span><a class="headerlink" href="#locale.dcgettext" title="永久链接至目标">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="function">
|
||
<dt id="locale.textdomain">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">textdomain</code><span class="sig-paren">(</span><em class="sig-param">domain</em><span class="sig-paren">)</span><a class="headerlink" href="#locale.textdomain" title="永久链接至目标">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="function">
|
||
<dt id="locale.bindtextdomain">
|
||
<code class="sig-prename descclassname">locale.</code><code class="sig-name descname">bindtextdomain</code><span class="sig-paren">(</span><em class="sig-param">domain</em>, <em class="sig-param">dir</em><span class="sig-paren">)</span><a class="headerlink" href="#locale.bindtextdomain" title="永久链接至目标">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<p>在提供 gettext 接口的系统中,locale 模块暴露出了 C 库的接口。它由 <code class="xref py py-func docutils literal notranslate"><span class="pre">gettext()</span></code> 、<code class="xref py py-func docutils literal notranslate"><span class="pre">dgettext()</span></code> 、<code class="xref py py-func docutils literal notranslate"><span class="pre">dcgettext()</span></code> 、 <code class="xref py py-func docutils literal notranslate"><span class="pre">textdomain()</span></code> 、<code class="xref py py-func docutils literal notranslate"><span class="pre">bindtextdomain()</span></code> 和 <code class="xref py py-func docutils literal notranslate"><span class="pre">bind_textdomain_codeset()</span></code> 等函数组成。 他们与 <a class="reference internal" href="gettext.html#module-gettext" title="gettext: Multilingual internationalization services."><code class="xref py py-mod docutils literal notranslate"><span class="pre">gettext</span></code></a> 模块中的同名函数类似,但采用了 C 库二进制格式的消息目录,以及 C 库的搜索算法来查找消息目录。</p>
|
||
<p>Python 应用程序通常不需要调用这些函数,而应改用 <a class="reference internal" href="gettext.html#module-gettext" title="gettext: Multilingual internationalization services."><code class="xref py py-mod docutils literal notranslate"><span class="pre">gettext</span></code></a>。这条规则的一个已知例外,是与附加 C 库链接的应用程序,他们在内部调用了 <code class="xref c c-func docutils literal notranslate"><span class="pre">gettext()</span></code> 或 <code class="xref c c-func docutils literal notranslate"><span class="pre">dcgettext()</span></code>。对于这些应用程序,可能有必要绑定文本域,以便库可以准确找到其消息目录。</p>
|
||
</section>
|
||
</section>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||
<div class="sphinxsidebarwrapper">
|
||
<h3><a href="../contents.html">目录</a></h3>
|
||
<ul>
|
||
<li><a class="reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">locale</span></code> --- 国际化服务</a><ul>
|
||
<li><a class="reference internal" href="#background-details-hints-tips-and-caveats">背景、细节、提示、技巧和注意事项</a></li>
|
||
<li><a class="reference internal" href="#for-extension-writers-and-programs-that-embed-python">针对扩展程序编写人员和嵌入Python 运行的程序</a></li>
|
||
<li><a class="reference internal" href="#access-to-message-catalogs">访问消息目录</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
|
||
<h4>上一个主题</h4>
|
||
<p class="topless"><a href="gettext.html"
|
||
title="上一章"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gettext</span></code> --- 多语种国际化服务</a></p>
|
||
<h4>下一个主题</h4>
|
||
<p class="topless"><a href="frameworks.html"
|
||
title="下一章">程序框架</a></p>
|
||
<div role="note" aria-label="source link">
|
||
<h3>本页</h3>
|
||
<ul class="this-page-menu">
|
||
<li><a href="../bugs.html">报告 Bug</a></li>
|
||
<li>
|
||
<a href="https://github.com/python/cpython/blob/3.8/Doc/library/locale.rst"
|
||
rel="nofollow">显示源代码
|
||
</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="clearer"></div>
|
||
</div>
|
||
<div class="related" role="navigation" aria-label="related navigation">
|
||
<h3>导航</h3>
|
||
<ul>
|
||
<li class="right" style="margin-right: 10px">
|
||
<a href="../genindex.html" title="总目录"
|
||
>索引</a></li>
|
||
<li class="right" >
|
||
<a href="../py-modindex.html" title="Python 模块索引"
|
||
>模块</a> |</li>
|
||
<li class="right" >
|
||
<a href="frameworks.html" title="程序框架"
|
||
>下一页</a> |</li>
|
||
<li class="right" >
|
||
<a href="gettext.html" title="gettext --- 多语种国际化服务"
|
||
>上一页</a> |</li>
|
||
|
||
<li><img src="../_static/py.svg" alt="python logo" style="vertical-align: middle; margin-top: -1px"/></li>
|
||
<li><a href="https://www.python.org/">Python</a> »</li>
|
||
<li class="switchers">
|
||
<div class="language_switcher_placeholder"></div>
|
||
<div class="version_switcher_placeholder"></div>
|
||
</li>
|
||
<li>
|
||
|
||
</li>
|
||
<li id="cpython-language-and-version">
|
||
<a href="../index.html">3.8.20 Documentation</a> »
|
||
</li>
|
||
|
||
<li class="nav-item nav-item-1"><a href="index.html" >Python 标准库</a> »</li>
|
||
<li class="nav-item nav-item-2"><a href="i18n.html" >国际化</a> »</li>
|
||
<li class="right">
|
||
|
||
|
||
<div class="inline-search" role="search">
|
||
<form class="inline-search" action="../search.html" method="get">
|
||
<input placeholder="快速搜索" aria-label="快速搜索" type="text" name="q" />
|
||
<input type="submit" value="转向" />
|
||
<input type="hidden" name="check_keywords" value="yes" />
|
||
<input type="hidden" name="area" value="default" />
|
||
</form>
|
||
</div>
|
||
|
|
||
</li>
|
||
|
||
</ul>
|
||
</div>
|
||
<div class="footer">
|
||
© <a href="../copyright.html">版权所有</a> 2001-2024, Python Software Foundation.
|
||
<br />
|
||
This page is licensed under the Python Software Foundation License Version 2.
|
||
<br />
|
||
Examples, recipes, and other code in the documentation are additionally licensed under the Zero Clause BSD License.
|
||
<br />
|
||
|
||
<br />
|
||
|
||
The Python Software Foundation is a non-profit corporation.
|
||
<a href="https://www.python.org/psf/donations/">Please donate.</a>
|
||
<br />
|
||
<br />
|
||
|
||
最后更新于 12月 09, 2024.
|
||
<a href="https://docs.python.org/3/bugs.html">Found a bug</a>?
|
||
<br />
|
||
|
||
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 2.4.4.
|
||
</div>
|
||
|
||
</body>
|
||
</html> |