summaryrefslogtreecommitdiffstats
path: root/Lib/gettext.py
diff options
context:
space:
mode:
authorHai Shi <shihai1992@gmail.com>2020-05-14 01:22:30 (GMT)
committerGitHub <noreply@github.com>2020-05-14 01:22:30 (GMT)
commit7443d42021d433da0497f8ba651daa47e7dc1991 (patch)
tree8acdb504b61890d1511cbde00098ffd0225cf6af /Lib/gettext.py
parent6f2f475d5a2cd7675dce844f3af436ba919ef92b (diff)
downloadcpython-7443d42021d433da0497f8ba651daa47e7dc1991.zip
cpython-7443d42021d433da0497f8ba651daa47e7dc1991.tar.gz
cpython-7443d42021d433da0497f8ba651daa47e7dc1991.tar.bz2
bpo-40275: Import locale module lazily in gettext (GH-19905)
Diffstat (limited to 'Lib/gettext.py')
-rw-r--r--Lib/gettext.py8
1 files changed, 7 insertions, 1 deletions
diff --git a/Lib/gettext.py b/Lib/gettext.py
index b98f501..77b67ae 100644
--- a/Lib/gettext.py
+++ b/Lib/gettext.py
@@ -46,7 +46,6 @@ internationalized, to the local language and cultural habits.
# find this format documented anywhere.
-import locale
import os
import re
import sys
@@ -210,6 +209,7 @@ def c2py(plural):
def _expand_lang(loc):
+ import locale
loc = locale.normalize(loc)
COMPONENT_CODESET = 1 << 0
COMPONENT_TERRITORY = 1 << 1
@@ -278,6 +278,7 @@ class NullTranslations:
import warnings
warnings.warn('lgettext() is deprecated, use gettext() instead',
DeprecationWarning, 2)
+ import locale
if self._fallback:
with warnings.catch_warnings():
warnings.filterwarnings('ignore', r'.*\blgettext\b.*',
@@ -299,6 +300,7 @@ class NullTranslations:
import warnings
warnings.warn('lngettext() is deprecated, use ngettext() instead',
DeprecationWarning, 2)
+ import locale
if self._fallback:
with warnings.catch_warnings():
warnings.filterwarnings('ignore', r'.*\blngettext\b.*',
@@ -462,6 +464,7 @@ class GNUTranslations(NullTranslations):
import warnings
warnings.warn('lgettext() is deprecated, use gettext() instead',
DeprecationWarning, 2)
+ import locale
missing = object()
tmsg = self._catalog.get(message, missing)
if tmsg is missing:
@@ -476,6 +479,7 @@ class GNUTranslations(NullTranslations):
import warnings
warnings.warn('lngettext() is deprecated, use ngettext() instead',
DeprecationWarning, 2)
+ import locale
try:
tmsg = self._catalog[(msgid1, self.plural(n))]
except KeyError:
@@ -668,6 +672,7 @@ def ldgettext(domain, message):
import warnings
warnings.warn('ldgettext() is deprecated, use dgettext() instead',
DeprecationWarning, 2)
+ import locale
codeset = _localecodesets.get(domain)
try:
with warnings.catch_warnings():
@@ -695,6 +700,7 @@ def ldngettext(domain, msgid1, msgid2, n):
import warnings
warnings.warn('ldngettext() is deprecated, use dngettext() instead',
DeprecationWarning, 2)
+ import locale
codeset = _localecodesets.get(domain)
try:
with warnings.catch_warnings():