Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-langtable for
openSUSE:Factory checked in at 2026-06-29 17:29:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-langtable (Old)
and /work/SRC/openSUSE:Factory/.python-langtable.new.11887 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-langtable"
Mon Jun 29 17:29:20 2026 rev:16 rq:1362048 version:0.0.71
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-langtable/python-langtable.changes
2026-05-24 19:34:35.980689599 +0200
+++
/work/SRC/openSUSE:Factory/.python-langtable.new.11887/python-langtable.changes
2026-06-29 17:29:24.984099145 +0200
@@ -1,0 +2,14 @@
+Sat Jun 27 21:00:40 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 0.0.71:
+ * langtable.py: Fix deprecation warning: `langtable.py:2652:
+ UserWarning: pkg_resources is deprecated as an API`
+ * Add xdq, sus, mrh, hrx, brh, ary, en_SE.UTF-8
+ * Get new translations and translation changes from CLDR
+ * setup.py: use open() instead of deprecated codecs.open(),
+ declare minimum Python version >= 3.8
+ * Add Yangon timezone id part
+ * languages.xml: Rename Asia/Rangoon to Asia/Yangon
+ * territories.xml: Rename Asia/Rangoon to Asia/Yangon
+
+-------------------------------------------------------------------
Old:
----
langtable-0.0.70.tar.gz
New:
----
langtable-0.0.71.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-langtable.spec ++++++
--- /var/tmp/diff_new_pack.ZoUfG0/_old 2026-06-29 17:29:26.016134025 +0200
+++ /var/tmp/diff_new_pack.ZoUfG0/_new 2026-06-29 17:29:26.016134025 +0200
@@ -28,7 +28,7 @@
%define skip_python2 1
%global literalpython python
Name: python-langtable%{psuffix}
-Version: 0.0.70
+Version: 0.0.71
Release: 0
Summary: Database to guess defaults for locale settings
# the translations in languages.xml and territories.xml are (mostly)
++++++ langtable-0.0.70.tar.gz -> langtable-0.0.71.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/langtable-0.0.70/ChangeLog
new/langtable-0.0.71/ChangeLog
--- old/langtable-0.0.70/ChangeLog 2026-02-02 19:12:03.000000000 +0100
+++ new/langtable-0.0.71/ChangeLog 2026-06-08 10:14:29.000000000 +0200
@@ -1,3 +1,13 @@
+2026-06-03 Mike FABIAN <[email protected]>
+
+ * langtable.py: Fix deprecation warning: `langtable.py:2652:
UserWarning: pkg_resources is deprecated as an API`
+ * Add xdq, sus, mrh, hrx, brh, ary, en_SE.UTF-8
+ * Get new translations and translation changes from CLDR
+ * setup.py: use open() instead of deprecated codecs.open(), declare
minimum Python version >= 3.8
+ * Add Yangon timezone id part
+ * languages.xml: Rename Asia/Rangoon to Asia/Yangon
+ * territories.xml: Rename Asia/Rangoon to Asia/Yangon
+
2026-02-02 Mike FABIAN <[email protected]>
* Add a few dz keyboards (Resolves:
https://github.com/mike-fabian/langtable/issues/25)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/langtable-0.0.70/PKG-INFO
new/langtable-0.0.71/PKG-INFO
--- old/langtable-0.0.70/PKG-INFO 2026-02-02 20:00:26.330881400 +0100
+++ new/langtable-0.0.71/PKG-INFO 2026-06-08 17:54:33.941590800 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: langtable
-Version: 0.0.70
+Version: 0.0.71
Summary: guess reasonable defaults for locale, keyboard, territory, ...
Home-page: https://github.com/mike-fabian/langtable
Author: Mike FABIAN
@@ -12,6 +12,7 @@
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
Classifier: Topic :: System :: Installation/Setup
+Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: COPYING
Dynamic: author
@@ -22,6 +23,7 @@
Dynamic: home-page
Dynamic: license
Dynamic: license-file
+Dynamic: requires-python
Dynamic: summary
# langtable
Binary files old/langtable-0.0.70/langtable/data/keyboards.xml.gz and
new/langtable-0.0.71/langtable/data/keyboards.xml.gz differ
Binary files old/langtable-0.0.70/langtable/data/languages.xml.gz and
new/langtable-0.0.71/langtable/data/languages.xml.gz differ
Binary files old/langtable-0.0.70/langtable/data/territories.xml.gz and
new/langtable-0.0.71/langtable/data/territories.xml.gz differ
Binary files old/langtable-0.0.70/langtable/data/timezoneidparts.xml.gz and
new/langtable-0.0.71/langtable/data/timezoneidparts.xml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/langtable-0.0.70/langtable/langtable.py
new/langtable-0.0.71/langtable/langtable.py
--- old/langtable-0.0.70/langtable/langtable.py 2024-07-17 16:17:21.000000000
+0200
+++ new/langtable-0.0.71/langtable/langtable.py 2026-06-08 09:41:22.000000000
+0200
@@ -205,7 +205,7 @@
class keyboard_db_item: # pylint: disable=too-few-public-methods
'''Holds information for one keyboard layout'''
- def __init__(self, description=None, ascii=True, languages=None,
territories = None, comment=None):
+ def __init__(self, description=None, ascii=True, languages=None,
territories=None, comment=None): # pylint: disable=redefined-builtin
self.description = description
self.ascii = ascii
self.comment = comment
@@ -2240,7 +2240,7 @@
**Examples:**
>>> list_common_keyboards()
- ['af(ps)', 'al', 'am', 'ara', 'au', 'az', 'ba', 'be(oss)', 'bg', 'br',
'bt', 'by', 'ca(eng)', 'ca(ike)', 'ch', 'cn', 'cn(ug)', 'cz', 'de(nodeadkeys)',
'dk', 'ee', 'es', 'es(ast)', 'es(cat)', 'et', 'fi', 'fo', 'fr(bre)', 'fr(oss)',
'gb', 'ge', 'gr', 'hr', 'hu', 'ie(CloGaelach)', 'il', 'in(eng)', 'ir', 'is',
'it', 'jp', 'ke', 'kg', 'kh', 'kr', 'kz', 'la', 'latam', 'lt', 'lv',
'ma(tifinagh)', 'mk', 'mm', 'mn', 'mt', 'mv', 'ng', 'ng(hausa)', 'ng(igbo)',
'ng(yoruba)', 'no', 'np', 'ph', 'pk', 'pl', 'pt', 'ro', 'rs', 'rs(latin)',
'ru', 'ru(bak)', 'ru(chm)', 'ru(cv)', 'ru(kom)', 'ru(os_winkeys)', 'ru(sah)',
'ru(tt)', 'ru(udm)', 'ru(xal)', 'se', 'si', 'sk', 'sn', 'syc', 'th', 'tj',
'tm', 'tr', 'tr(crh)', 'tr(ku)', 'tw', 'ua', 'us', 'us(altgr-intl)',
'us(euro)', 'us(intl)', 'uz', 'vn', 'za']
+ ['af(ps)', 'al', 'am', 'ara', 'au', 'az', 'ba', 'be(oss)', 'bg', 'br',
'bt', 'by', 'ca(eng)', 'ca(ike)', 'ch', 'cn', 'cn(ug)', 'cz', 'de(nodeadkeys)',
'dk', 'ee', 'es', 'es(ast)', 'es(cat)', 'et', 'fi', 'fo', 'fr(bre)', 'fr(oss)',
'gb', 'ge', 'gr', 'hr', 'hu', 'ie(CloGaelach)', 'il', 'in(eng)', 'ir', 'is',
'it', 'jp', 'ke', 'kg', 'kh', 'kr', 'kz', 'la', 'latam', 'lt', 'lv', 'ma',
'ma(tifinagh)', 'mk', 'mm', 'mn', 'mt', 'mv', 'ng', 'ng(hausa)', 'ng(igbo)',
'ng(yoruba)', 'no', 'np', 'ph', 'pk', 'pl', 'pt', 'ro', 'rs', 'rs(latin)',
'ru', 'ru(bak)', 'ru(chm)', 'ru(cv)', 'ru(kom)', 'ru(os_winkeys)', 'ru(sah)',
'ru(tt)', 'ru(udm)', 'ru(xal)', 'se', 'si', 'sk', 'sn', 'syc', 'th', 'tj',
'tm', 'tr', 'tr(crh)', 'tr(ku)', 'tw', 'ua', 'us', 'us(altgr-intl)',
'us(euro)', 'us(intl)', 'uz', 'vn', 'za']
>>> list_common_keyboards(languageId='fr')
['fr(oss)']
>>> list_common_keyboards(territoryId='CA')
@@ -2640,19 +2640,18 @@
'''
Return version of langtable
'''
- # pkg_resources is part of setuptools
- import pkg_resources # type: ignore pylint:
disable=import-outside-toplevel
- return pkg_resources.require("langtable")[0].version
+ from importlib import metadata # pylint: disable=import-outside-toplevel
+ return metadata.distribution('langtable').version
def info():
'''
Print some info about langtable
'''
- # pkg_resources is part of setuptools
- import pkg_resources # type: ignore pylint:
disable=import-outside-toplevel
- project_name = pkg_resources.require("langtable")[0].project_name
- version = pkg_resources.require("langtable")[0].version
- module_path = pkg_resources.require("langtable")[0].module_path
+ from importlib import metadata # pylint: disable=import-outside-toplevel
+ dist = metadata.distribution('langtable')
+ project_name = dist.metadata['Name']
+ version = dist.version
+ module_path = os.path.dirname(os.path.realpath(__file__))
print(f'Project name: = {project_name}')
print(f'Version: = {version}')
print(f'Module path: = {module_path}')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/langtable-0.0.70/langtable.egg-info/PKG-INFO
new/langtable-0.0.71/langtable.egg-info/PKG-INFO
--- old/langtable-0.0.70/langtable.egg-info/PKG-INFO 2026-02-02
20:00:26.000000000 +0100
+++ new/langtable-0.0.71/langtable.egg-info/PKG-INFO 2026-06-08
17:54:33.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: langtable
-Version: 0.0.70
+Version: 0.0.71
Summary: guess reasonable defaults for locale, keyboard, territory, ...
Home-page: https://github.com/mike-fabian/langtable
Author: Mike FABIAN
@@ -12,6 +12,7 @@
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
Classifier: Topic :: System :: Installation/Setup
+Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: COPYING
Dynamic: author
@@ -22,6 +23,7 @@
Dynamic: home-page
Dynamic: license
Dynamic: license-file
+Dynamic: requires-python
Dynamic: summary
# langtable
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/langtable-0.0.70/main.py new/langtable-0.0.71/main.py
--- old/langtable-0.0.70/main.py 2024-05-07 18:53:40.000000000 +0200
+++ new/langtable-0.0.71/main.py 2026-06-03 13:20:40.000000000 +0200
@@ -82,6 +82,7 @@
'Saigon': 'Ho_Chi_Minh',
'Katmandu': 'Kathmandu',
'Ponape': 'Pohnpei',
+ 'Rangoon': 'Yangon',
}
def read_translations_from_cldr_file(file = None):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/langtable-0.0.70/setup.py
new/langtable-0.0.71/setup.py
--- old/langtable-0.0.70/setup.py 2026-02-02 19:10:21.000000000 +0100
+++ new/langtable-0.0.71/setup.py 2026-06-08 10:03:32.000000000 +0200
@@ -1,17 +1,22 @@
#!/usr/bin/python3
-
+'''Setup script for langtable.'''
+import os
import setuptools
-import codecs
+
+here = os.path.abspath(os.path.dirname(__file__))
+with open(os.path.join(here, 'README.md'), encoding='UTF-8') as readme:
+ long_description = readme.read()
setuptools.setup(
# do not zip the egg file to be able to access the *.xml.gz files
# within the egg directory easily:
zip_safe=False,
name='langtable',
- version='0.0.70',
+ version='0.0.71',
+ python_requires='>=3.8',
packages=setuptools.find_packages(),
description='guess reasonable defaults for locale, keyboard, territory,
...',
- long_description=codecs.open('README.md', encoding='UTF-8').read(),
+ long_description=long_description,
long_description_content_type='text/markdown',
license="GPL-3.0-or-later",
author='Mike FABIAN',
@@ -21,23 +26,6 @@
package_data={
'langtable': ['data/*.xml.gz', 'schemas/*.rng'],
},
- # data_files is for installing the data files outside of the package with:
- #
- # ./setup.py install_data --install-dir=dirname
- #
- # data_files = [
- # ('data',
- # ['langtable/data/keyboards.xml.gz',
- # 'langtable/data/languages.xml.gz',
- # 'langtable/data/territories.xml.gz',
- # 'langtable/data/timezones.xml.gz',
- # 'langtable/data/timezoneidparts.xml.gz']),
- # ('schemas',
- # ['langtable/schemas/keyboards.rng',
- # 'langtable/schemas/languages.rng',
- # 'langtable/schemas/territories.rng',
- # 'langtable/schemas/timezones.rng',
- # 'langtable/schemas/timezoneidparts.rng'])],
classifiers=[
'Development Status :: 2 - Pre-Alpha',
'Environment :: Console',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/langtable-0.0.70/test_cases.py
new/langtable-0.0.71/test_cases.py
--- old/langtable-0.0.70/test_cases.py 2026-01-30 13:29:48.000000000 +0100
+++ new/langtable-0.0.71/test_cases.py 2026-06-03 13:33:45.000000000 +0200
@@ -93,7 +93,7 @@
['eo.UTF-8']
>>> list_locales(show_weights=False, languageId="en") # doctest:
+NORMALIZE_WHITESPACE
- ['en_US.UTF-8', 'en_GB.UTF-8', 'en_IN.UTF-8', 'en_AU.UTF-8',
'en_CA.UTF-8', 'en_DK.UTF-8', 'en_IE.UTF-8', 'en_NZ.UTF-8', 'en_NG.UTF-8',
'en_HK.UTF-8', 'en_PH.UTF-8', 'en_SG.UTF-8', 'en_ZA.UTF-8', 'en_ZM.UTF-8',
'en_ZW.UTF-8', 'en_BW.UTF-8', 'en_AG.UTF-8', 'en_IL.UTF-8']
+ ['en_US.UTF-8', 'en_GB.UTF-8', 'en_IN.UTF-8', 'en_AU.UTF-8',
'en_CA.UTF-8', 'en_DK.UTF-8', 'en_IE.UTF-8', 'en_NZ.UTF-8', 'en_NG.UTF-8',
'en_HK.UTF-8', 'en_PH.UTF-8', 'en_SG.UTF-8', 'en_ZA.UTF-8', 'en_ZM.UTF-8',
'en_ZW.UTF-8', 'en_BW.UTF-8', 'en_AG.UTF-8', 'en_IL.UTF-8', 'en_SE.UTF-8']
# I put es_ES first here which is kind of arbitrary, Spain isn’t the
# country with the biggest number of Spanish speaking people, but that
@@ -821,7 +821,7 @@
+: ['cn']
>>> _test_language_territory(show_weights=False, languageId="en",
territoryId="SG") # doctest: +NORMALIZE_WHITESPACE
- en: ['en_US.UTF-8', 'en_GB.UTF-8', 'en_IN.UTF-8', 'en_AU.UTF-8',
'en_CA.UTF-8', 'en_DK.UTF-8', 'en_IE.UTF-8', 'en_NZ.UTF-8', 'en_NG.UTF-8',
'en_HK.UTF-8', 'en_PH.UTF-8', 'en_SG.UTF-8', 'en_ZA.UTF-8', 'en_ZM.UTF-8',
'en_ZW.UTF-8', 'en_BW.UTF-8', 'en_AG.UTF-8', 'en_IL.UTF-8']
+ en: ['en_US.UTF-8', 'en_GB.UTF-8', 'en_IN.UTF-8', 'en_AU.UTF-8',
'en_CA.UTF-8', 'en_DK.UTF-8', 'en_IE.UTF-8', 'en_NZ.UTF-8', 'en_NG.UTF-8',
'en_HK.UTF-8', 'en_PH.UTF-8', 'en_SG.UTF-8', 'en_ZA.UTF-8', 'en_ZM.UTF-8',
'en_ZW.UTF-8', 'en_BW.UTF-8', 'en_AG.UTF-8', 'en_IL.UTF-8', 'en_SE.UTF-8']
SG: ['en_SG.UTF-8', 'zh_SG.UTF-8']
+: ['en_SG.UTF-8']
en: ['us', 'gb', 'au']
@@ -829,7 +829,7 @@
+: ['us']
>>> _test_language_territory(show_weights=False, languageId="en",
territoryId="AU") # doctest: +NORMALIZE_WHITESPACE
- en: ['en_US.UTF-8', 'en_GB.UTF-8', 'en_IN.UTF-8', 'en_AU.UTF-8',
'en_CA.UTF-8', 'en_DK.UTF-8', 'en_IE.UTF-8', 'en_NZ.UTF-8', 'en_NG.UTF-8',
'en_HK.UTF-8', 'en_PH.UTF-8', 'en_SG.UTF-8', 'en_ZA.UTF-8', 'en_ZM.UTF-8',
'en_ZW.UTF-8', 'en_BW.UTF-8', 'en_AG.UTF-8', 'en_IL.UTF-8']
+ en: ['en_US.UTF-8', 'en_GB.UTF-8', 'en_IN.UTF-8', 'en_AU.UTF-8',
'en_CA.UTF-8', 'en_DK.UTF-8', 'en_IE.UTF-8', 'en_NZ.UTF-8', 'en_NG.UTF-8',
'en_HK.UTF-8', 'en_PH.UTF-8', 'en_SG.UTF-8', 'en_ZA.UTF-8', 'en_ZM.UTF-8',
'en_ZW.UTF-8', 'en_BW.UTF-8', 'en_AG.UTF-8', 'en_IL.UTF-8', 'en_SE.UTF-8']
AU: ['en_AU.UTF-8']
+: ['en_AU.UTF-8']
en: ['us', 'gb', 'au']
@@ -2134,7 +2134,7 @@
>>> print(langtable.timezone_name(timezoneId='Pacific/Pago_Pago',
languageIdQuery='ast')) # doctest: +NORMALIZE_WHITESPACE
Océanu Pacíficu/Pago Pago
>>> print(list_common_keyboards()) # doctest: +NORMALIZE_WHITESPACE
- ['af(ps)', 'al', 'am', 'ara', 'au', 'az', 'ba', 'be(oss)', 'bg', 'br',
'bt', 'by', 'ca(eng)', 'ca(ike)', 'ch', 'cn', 'cn(ug)', 'cz', 'de(nodeadkeys)',
'dk', 'ee', 'es', 'es(ast)', 'es(cat)', 'et', 'fi', 'fo', 'fr(bre)', 'fr(oss)',
'gb', 'ge', 'gr', 'hr', 'hu', 'ie(CloGaelach)', 'il', 'in(eng)', 'ir', 'is',
'it', 'jp', 'ke', 'kg', 'kh', 'kr', 'kz', 'la', 'latam', 'lt', 'lv',
'ma(tifinagh)', 'mk', 'mm', 'mn', 'mt', 'mv', 'ng', 'ng(hausa)', 'ng(igbo)',
'ng(yoruba)', 'no', 'np', 'ph', 'pk', 'pl', 'pt', 'ro', 'rs', 'rs(latin)',
'ru', 'ru(bak)', 'ru(chm)', 'ru(cv)', 'ru(kom)', 'ru(os_winkeys)', 'ru(sah)',
'ru(tt)', 'ru(udm)', 'ru(xal)', 'se', 'si', 'sk', 'sn', 'syc', 'th', 'tj',
'tm', 'tr', 'tr(crh)', 'tr(ku)', 'tw', 'ua', 'us', 'us(altgr-intl)',
'us(euro)', 'us(intl)', 'uz', 'vn', 'za']
+ ['af(ps)', 'al', 'am', 'ara', 'au', 'az', 'ba', 'be(oss)', 'bg', 'br',
'bt', 'by', 'ca(eng)', 'ca(ike)', 'ch', 'cn', 'cn(ug)', 'cz', 'de(nodeadkeys)',
'dk', 'ee', 'es', 'es(ast)', 'es(cat)', 'et', 'fi', 'fo', 'fr(bre)', 'fr(oss)',
'gb', 'ge', 'gr', 'hr', 'hu', 'ie(CloGaelach)', 'il', 'in(eng)', 'ir', 'is',
'it', 'jp', 'ke', 'kg', 'kh', 'kr', 'kz', 'la', 'latam', 'lt', 'lv', 'ma',
'ma(tifinagh)', 'mk', 'mm', 'mn', 'mt', 'mv', 'ng', 'ng(hausa)', 'ng(igbo)',
'ng(yoruba)', 'no', 'np', 'ph', 'pk', 'pl', 'pt', 'ro', 'rs', 'rs(latin)',
'ru', 'ru(bak)', 'ru(chm)', 'ru(cv)', 'ru(kom)', 'ru(os_winkeys)', 'ru(sah)',
'ru(tt)', 'ru(udm)', 'ru(xal)', 'se', 'si', 'sk', 'sn', 'syc', 'th', 'tj',
'tm', 'tr', 'tr(crh)', 'tr(ku)', 'tw', 'ua', 'us', 'us(altgr-intl)',
'us(euro)', 'us(intl)', 'uz', 'vn', 'za']
>>> print(list_common_keyboards(languageId='fr')) # doctest:
+NORMALIZE_WHITESPACE
['fr(oss)']
>>> print(list_common_keyboards(territoryId='CA')) # doctest:
+NORMALIZE_WHITESPACE
@@ -2155,17 +2155,17 @@
['ar', 'en', 'fr', 'de', 'ja', 'zh', 'ru', 'es']
>>> print(list_all_languages()) # doctest: +NORMALIZE_WHITESPACE
- ['aa', 'ab', 'ady', 'af', 'agq', 'agr', 'ak', 'am', 'an', 'ann', 'anp',
'apc', 'ar', 'arn', 'as', 'asa', 'ast', 'ath', 'av', 'ay', 'ayc', 'ayr', 'az',
'ba', 'bal', 'bas', 'be', 'bem', 'ber', 'bew', 'bez', 'bg', 'bgc', 'bgn',
'bhb', 'bho', 'bi', 'bih', 'bin', 'blo', 'blt', 'bm', 'bn', 'bo', 'bqi', 'br',
'brx', 'bs', 'bss', 'bua', 'byn', 'ca', 'ca_ES_VALENCIA', 'cad', 'cch', 'ccp',
'ce', 'ceb', 'cgg', 'ch', 'chm', 'cho', 'chr', 'cic', 'ckb', 'cmc', 'cmn',
'co', 'cop', 'crh', 'cs', 'csb', 'csw', 'cu', 'cv', 'cy', 'da', 'dav', 'de',
'dje', 'doi', 'dra', 'dsb', 'dua', 'dv', 'dyo', 'dz', 'ebu', 'ee', 'el', 'en',
'eo', 'es', 'et', 'eu', 'ewo', 'fa', 'fat', 'ff', 'fi', 'fil', 'fj', 'fo',
'fr', 'frr', 'fur', 'fy', 'ga', 'gaa', 'gbm', 'gd', 'gez', 'gl', 'glk', 'gn',
'grc', 'gsw', 'gu', 'guz', 'gv', 'ha', 'hak', 'haw', 'he', 'hi', 'hif', 'hil',
'hne', 'hnj', 'ho', 'hr', 'hsb', 'ht', 'hu', 'hy', 'hz', 'ia', 'id', 'ie',
'ig', 'ii', 'ik', 'ilo', 'io', 'is', 'isv', 'it', 'iu', 'iw', 'ja', 'jbo
', 'jgo', 'jmc', 'jv', 'ka', 'kaa', 'kab', 'kaj', 'kam', 'kbd', 'kcg', 'kde',
'kea', 'kek', 'ken', 'kg', 'kgp', 'khb', 'khq', 'ki', 'kj', 'kk', 'kkj', 'kl',
'kln', 'km', 'kn', 'ko', 'kok', 'kpe', 'kr', 'ks', 'ks_Arab', 'ks_Deva', 'ksb',
'ksf', 'ksh', 'ku', 'kum', 'kv', 'kw', 'kwm', 'kxv', 'kxv_Deva', 'kxv_Orya',
'kxv_Telu', 'ky', 'la', 'lag', 'lah', 'lb', 'lez', 'lg', 'li', 'lij', 'lkt',
'lld', 'lmo', 'ln', 'lo', 'lrc', 'lt', 'ltg', 'lu', 'luo', 'luy', 'lv', 'lzh',
'lzz', 'mag', 'mai', 'mas', 'mdf', 'mer', 'mfe', 'mg', 'mgh', 'mgo', 'mh',
'mhn', 'mhr', 'mi', 'mic', 'miq', 'mjw', 'mk', 'ml', 'mn', 'mni', 'mnw', 'mo',
'moh', 'mos', 'mr', 'ms', 'mt', 'mua', 'mus', 'mww', 'my', 'myv', 'mzn', 'na',
'nan', 'naq', 'nb', 'nd', 'nds', 'ne', 'new', 'ng', 'nhn', 'niu', 'nl', 'nmg',
'nn', 'nnh', 'no', 'nqo', 'nr', 'nso', 'nus', 'nv', 'ny', 'nyn', 'oc', 'oka',
'om', 'or', 'os', 'osa', 'ota', 'pa', 'pap', 'pcm', 'pi', 'pis', 'pl', 'pms',
'prg', 'ps', 'pt', 'qu', 'quc', 'quh', 'quz', 'raj', 'rhg',
'rif', 'rm', 'rn', 'ro', 'rof', 'ru', 'rw', 'rwk', 'sa', 'sah', 'saq', 'sat',
'sbp', 'sc', 'scn', 'sco', 'sd', 'sd_Arab', 'sd_Deva', 'sdh', 'se', 'seh',
'sel', 'ses', 'sg', 'sgs', 'sh', 'shi', 'shn', 'shs', 'si', 'sid', 'sk', 'skr',
'sl', 'sm', 'sma', 'smj', 'smn', 'sms', 'sn', 'so', 'sq', 'sr', 'sr_Cyrl',
'sr_Latn', 'ss', 'ssy', 'st', 'su', 'suz', 'sv', 'sw', 'syc', 'syr', 'szl',
'ta', 'tai', 'tcy', 'te', 'teo', 'tet', 'tg', 'th', 'the', 'ti', 'tig', 'tk',
'tl', 'tn', 'to', 'tok', 'tpi', 'tr', 'trv', 'trw', 'ts', 'tt', 'tt_Cyrl',
'tt_Latn', 'tw', 'twq', 'txg', 'ty', 'tyv', 'tzm', 'udm', 'ug', 'uk', 'unm',
'ur', 'uz', 'vai', 've', 'vec', 'vi', 'vmw', 'vo', 'vot', 'vun', 'wa', 'wae',
'wal', 'wbp', 'wen', 'wo', 'wuu', 'xal', 'xh', 'xnr', 'xnr_Deva', 'xnr_Takr',
'xog', 'xzh', 'yap', 'yav', 'yi', 'yo', 'yrl', 'yue', 'yuw', 'za', 'zgh', 'zh',
'zh_Hans', 'zh_Hans_CN', 'zh_Hans_SG', 'zh_Hant', 'zh_Hant_HK', 'zh_Hant_MO',
'zh_Hant_TW', 'zu']
+ ['aa', 'ab', 'ady', 'af', 'agq', 'agr', 'ak', 'am', 'an', 'ann', 'anp',
'apc', 'ar', 'arn', 'ary', 'as', 'asa', 'ast', 'ath', 'av', 'ay', 'ayc', 'ayr',
'az', 'ba', 'bal', 'bas', 'be', 'bem', 'ber', 'bew', 'bez', 'bg', 'bgc', 'bgn',
'bhb', 'bho', 'bi', 'bih', 'bin', 'blo', 'blt', 'bm', 'bn', 'bo', 'bqi', 'br',
'brh', 'brx', 'bs', 'bss', 'bua', 'byn', 'ca', 'ca_ES_VALENCIA', 'cad', 'cch',
'ccp', 'ce', 'ceb', 'cgg', 'ch', 'chm', 'cho', 'chr', 'cic', 'ckb', 'cmc',
'cmn', 'co', 'cop', 'crh', 'cs', 'csb', 'csw', 'cu', 'cv', 'cy', 'da', 'dav',
'de', 'dje', 'doi', 'dra', 'dsb', 'dua', 'dv', 'dyo', 'dz', 'ebu', 'ee', 'el',
'en', 'eo', 'es', 'et', 'eu', 'ewo', 'fa', 'fat', 'ff', 'fi', 'fil', 'fj',
'fo', 'fr', 'frr', 'fur', 'fy', 'ga', 'gaa', 'gbm', 'gd', 'gez', 'gl', 'glk',
'gn', 'grc', 'gsw', 'gu', 'guz', 'gv', 'ha', 'hak', 'haw', 'he', 'hi', 'hif',
'hil', 'hne', 'hnj', 'ho', 'hr', 'hrx', 'hsb', 'ht', 'hu', 'hy', 'hz', 'ia',
'id', 'ie', 'ig', 'ii', 'ik', 'ilo', 'io', 'is', 'isv', 'it', '
iu', 'iw', 'ja', 'jbo', 'jgo', 'jmc', 'jv', 'ka', 'kaa', 'kab', 'kaj', 'kam',
'kbd', 'kcg', 'kde', 'kea', 'kek', 'ken', 'kg', 'kgp', 'khb', 'khq', 'ki',
'kj', 'kk', 'kkj', 'kl', 'kln', 'km', 'kn', 'ko', 'kok', 'kpe', 'kr', 'ks',
'ks_Arab', 'ks_Deva', 'ksb', 'ksf', 'ksh', 'ku', 'kum', 'kv', 'kw', 'kwm',
'kxv', 'kxv_Deva', 'kxv_Orya', 'kxv_Telu', 'ky', 'la', 'lag', 'lah', 'lb',
'lez', 'lg', 'li', 'lij', 'lkt', 'lld', 'lmo', 'ln', 'lo', 'lrc', 'lt', 'ltg',
'lu', 'luo', 'luy', 'lv', 'lzh', 'lzz', 'mag', 'mai', 'mas', 'mdf', 'mer',
'mfe', 'mg', 'mgh', 'mgo', 'mh', 'mhn', 'mhr', 'mi', 'mic', 'miq', 'mjw', 'mk',
'ml', 'mn', 'mni', 'mnw', 'mo', 'moh', 'mos', 'mr', 'mrh', 'ms', 'mt', 'mua',
'mus', 'mww', 'my', 'myv', 'mzn', 'na', 'nan', 'naq', 'nb', 'nd', 'nds', 'ne',
'new', 'ng', 'nhn', 'niu', 'nl', 'nmg', 'nn', 'nnh', 'no', 'nqo', 'nr', 'nso',
'nus', 'nv', 'ny', 'nyn', 'oc', 'oka', 'om', 'or', 'os', 'osa', 'ota', 'pa',
'pap', 'pcm', 'pi', 'pis', 'pl', 'pms', 'prg', 'ps', 'pt', 'qu', 'quc',
'quh', 'quz', 'raj', 'rhg', 'rif', 'rm', 'rn', 'ro', 'rof', 'ru', 'rw',
'rwk', 'sa', 'sah', 'saq', 'sat', 'sbp', 'sc', 'scn', 'sco', 'sd', 'sd_Arab',
'sd_Deva', 'sdh', 'se', 'seh', 'sel', 'ses', 'sg', 'sgs', 'sh', 'shi', 'shn',
'shs', 'si', 'sid', 'sk', 'skr', 'sl', 'sm', 'sma', 'smj', 'smn', 'sms', 'sn',
'so', 'sq', 'sr', 'sr_Cyrl', 'sr_Latn', 'ss', 'ssy', 'st', 'su', 'sus', 'suz',
'sv', 'sw', 'syc', 'syr', 'szl', 'ta', 'tai', 'tcy', 'te', 'teo', 'tet', 'tg',
'th', 'the', 'ti', 'tig', 'tk', 'tl', 'tn', 'to', 'tok', 'tpi', 'tr', 'trv',
'trw', 'ts', 'tt', 'tt_Cyrl', 'tt_Latn', 'tw', 'twq', 'txg', 'ty', 'tyv',
'tzm', 'udm', 'ug', 'uk', 'unm', 'ur', 'uz', 'vai', 've', 'vec', 'vi', 'vmw',
'vo', 'vot', 'vun', 'wa', 'wae', 'wal', 'wbp', 'wen', 'wo', 'wuu', 'xal',
'xdq', 'xh', 'xnr', 'xnr_Deva', 'xnr_Takr', 'xog', 'xzh', 'yap', 'yav', 'yi',
'yo', 'yrl', 'yue', 'yuw', 'za', 'zgh', 'zh', 'zh_Hans', 'zh_Hans_CN',
'zh_Hans_SG', 'zh_Hant', 'zh_Hant_HK', 'zh_Hant_MO', 'zh_Hant_TW', 'zu']
>>> print(list_all_locales()) # doctest: +NORMALIZE_WHITESPACE
- ['aa_DJ.UTF-8', 'aa_ER.UTF-8', 'aa_ET.UTF-8', 'ab_GE.UTF-8',
'af_ZA.UTF-8', 'agr_PE.UTF-8', 'ak_GH.UTF-8', 'am_ET.UTF-8', 'an_ES.UTF-8',
'anp_IN.UTF-8', 'ar_AE.UTF-8', 'ar_BH.UTF-8', 'ar_DZ.UTF-8', 'ar_EG.UTF-8',
'ar_IN.UTF-8', 'ar_IQ.UTF-8', 'ar_JO.UTF-8', 'ar_KW.UTF-8', 'ar_LB.UTF-8',
'ar_LY.UTF-8', 'ar_MA.UTF-8', 'ar_OM.UTF-8', 'ar_QA.UTF-8', 'ar_SA.UTF-8',
'ar_SD.UTF-8', 'ar_SS.UTF-8', 'ar_SY.UTF-8', 'ar_TN.UTF-8', 'ar_YE.UTF-8',
'as_IN.UTF-8', 'ast_ES.UTF-8', 'ayc_PE.UTF-8', 'az_AZ.UTF-8', 'az_IR.UTF-8',
'be_BY.UTF-8', 'be_BY.UTF-8@latin', 'bem_ZM.UTF-8', 'ber_DZ.UTF-8',
'ber_MA.UTF-8', 'bg_BG.UTF-8', 'bhb_IN.UTF-8', 'bho_IN.UTF-8', 'bho_NP.UTF-8',
'bi_VU.UTF-8', 'bn_BD.UTF-8', 'bn_IN.UTF-8', 'bo_CN.UTF-8', 'bo_IN.UTF-8',
'br_FR.UTF-8', 'brx_IN.UTF-8', 'bs_BA.UTF-8', 'byn_ER.UTF-8', 'ca_AD.UTF-8',
'ca_ES.UTF-8', 'ca_ES.UTF-8@valencia', 'ca_FR.UTF-8', 'ca_IT.UTF-8',
'ce_RU.UTF-8', 'chr_US.UTF-8', 'ckb_IQ.UTF-8', 'cmn_TW.UTF-8', 'crh_RU.UTF-8',
'crh_UA.UTF-8', 'cs_CZ.UTF-8',
'csb_PL.UTF-8', 'cv_RU.UTF-8', 'cy_GB.UTF-8', 'da_DK.UTF-8', 'de_AT.UTF-8',
'de_BE.UTF-8', 'de_CH.UTF-8', 'de_DE.UTF-8', 'de_IT.UTF-8', 'de_LI.UTF-8',
'de_LU.UTF-8', 'doi_IN.UTF-8', 'dsb_DE.UTF-8', 'dv_MV.UTF-8', 'dz_BT.UTF-8',
'el_CY.UTF-8', 'el_GR.UTF-8', 'en_AG.UTF-8', 'en_AU.UTF-8', 'en_BW.UTF-8',
'en_CA.UTF-8', 'en_DK.UTF-8', 'en_GB.UTF-8', 'en_HK.UTF-8', 'en_IE.UTF-8',
'en_IL.UTF-8', 'en_IN.UTF-8', 'en_NG.UTF-8', 'en_NZ.UTF-8', 'en_PH.UTF-8',
'en_SC.UTF-8', 'en_SG.UTF-8', 'en_US.UTF-8', 'en_ZA.UTF-8', 'en_ZM.UTF-8',
'en_ZW.UTF-8', 'eo.UTF-8', 'es_AR.UTF-8', 'es_BO.UTF-8', 'es_CL.UTF-8',
'es_CO.UTF-8', 'es_CR.UTF-8', 'es_CU.UTF-8', 'es_DO.UTF-8', 'es_EC.UTF-8',
'es_ES.UTF-8', 'es_GT.UTF-8', 'es_HN.UTF-8', 'es_MX.UTF-8', 'es_NI.UTF-8',
'es_PA.UTF-8', 'es_PE.UTF-8', 'es_PR.UTF-8', 'es_PY.UTF-8', 'es_SV.UTF-8',
'es_US.UTF-8', 'es_UY.UTF-8', 'es_VE.UTF-8', 'et_EE.UTF-8', 'eu_ES.UTF-8',
'fa_IR.UTF-8', 'ff_SN.UTF-8', 'fi_FI.UTF-8', 'fil_PH.UTF-8', 'fo_FO.UTF-8',
'fr_BE.UTF-8', 'fr_CA
.UTF-8', 'fr_CH.UTF-8', 'fr_FR.UTF-8', 'fr_HT.UTF-8', 'fr_LU.UTF-8',
'fur_IT.UTF-8', 'fy_DE.UTF-8', 'fy_NL.UTF-8', 'ga_IE.UTF-8', 'gbm_IN.UTF-8',
'gd_GB.UTF-8', 'gez_ER.UTF-8', 'gez_ER.UTF-8@abegede', 'gez_ET.UTF-8',
'gez_ET.UTF-8@abegede', 'gl_ES.UTF-8', 'glk_IR.UTF-8', 'gu_IN.UTF-8',
'gv_GB.UTF-8', 'ha_NG.UTF-8', 'hak_TW.UTF-8', 'he_IL.UTF-8', 'hi_IN.UTF-8',
'hif_FJ.UTF-8', 'hne_IN.UTF-8', 'hr_HR.UTF-8', 'hsb_DE.UTF-8', 'ht_HT.UTF-8',
'hu_HU.UTF-8', 'hy_AM.UTF-8', 'ia_FR.UTF-8', 'id_ID.UTF-8', 'ig_NG.UTF-8',
'ik_CA.UTF-8', 'ilo_PH.UTF-8', 'is_IS.UTF-8', 'it_CH.UTF-8', 'it_IT.UTF-8',
'iu_CA.UTF-8', 'iw_IL.UTF-8', 'ja_JP.UTF-8', 'ka_GE.UTF-8', 'kab_DZ.UTF-8',
'kk_KZ.UTF-8', 'kl_GL.UTF-8', 'km_KH.UTF-8', 'kn_IN.UTF-8', 'ko_KR.UTF-8',
'kok_IN.UTF-8', 'ks_IN.UTF-8', 'ks_IN.UTF-8@devanagari', 'ku_TR.UTF-8',
'kv_RU.UTF-8', 'kw_GB.UTF-8', 'ky_KG.UTF-8', 'lb_LU.UTF-8', 'lg_UG.UTF-8',
'li_BE.UTF-8', 'li_NL.UTF-8', 'lij_IT.UTF-8', 'ln_CD.UTF-8', 'lo_LA.UTF-8',
'lt_LT.UTF-8', 'ltg_LV.UTF-8',
'lv_LV.UTF-8', 'lzh_TW.UTF-8', 'mag_IN.UTF-8', 'mai_IN.UTF-8', 'mai_NP.UTF-8',
'mdf_RU.UTF-8', 'mfe_MU.UTF-8', 'mg_MG.UTF-8', 'mhr_RU.UTF-8', 'mi_NZ.UTF-8',
'miq_NI.UTF-8', 'mjw_IN.UTF-8', 'mk_MK.UTF-8', 'ml_IN.UTF-8', 'mn_MN.UTF-8',
'mni_IN.UTF-8', 'mnw_MM.UTF-8', 'mr_IN.UTF-8', 'ms_MY.UTF-8', 'mt_MT.UTF-8',
'my_MM.UTF-8', 'nan_TW.UTF-8', 'nan_TW.UTF-8@latin', 'nb_NO.UTF-8',
'nds_DE.UTF-8', 'nds_NL.UTF-8', 'ne_NP.UTF-8', 'nhn_MX.UTF-8', 'niu_NU.UTF-8',
'niu_NZ.UTF-8', 'nl_AW.UTF-8', 'nl_BE.UTF-8', 'nl_NL.UTF-8', 'nn_NO.UTF-8',
'no_NO.UTF-8', 'nr_ZA.UTF-8', 'nso_ZA.UTF-8', 'oc_FR.UTF-8', 'om_ET.UTF-8',
'om_KE.UTF-8', 'or_IN.UTF-8', 'os_RU.UTF-8', 'pa_IN.UTF-8', 'pa_PK.UTF-8',
'pap_AN.UTF-8', 'pap_AW.UTF-8', 'pap_CW.UTF-8', 'pl_PL.UTF-8', 'ps_AF.UTF-8',
'pt_BR.UTF-8', 'pt_PT.UTF-8', 'quz_PE.UTF-8', 'raj_IN.UTF-8', 'rif_MA.UTF-8',
'ro_RO.UTF-8', 'ru_RU.UTF-8', 'ru_UA.UTF-8', 'rw_RW.UTF-8', 'sa_IN.UTF-8',
'sah_RU.UTF-8', 'sat_IN.UTF-8', 'sc_IT.UTF-8', 'scn_IT.UTF-8', 'sd_IN.UTF-8',
'sd
_IN.UTF-8@devanagari', 'se_NO.UTF-8', 'sgs_LT.UTF-8', 'shn_MM.UTF-8',
'shs_CA.UTF-8', 'si_LK.UTF-8', 'sid_ET.UTF-8', 'sk_SK.UTF-8', 'sl_SI.UTF-8',
'sm_WS.UTF-8', 'so_DJ.UTF-8', 'so_ET.UTF-8', 'so_KE.UTF-8', 'so_SO.UTF-8',
'sq_AL.UTF-8', 'sq_MK.UTF-8', 'sr_ME.UTF-8', 'sr_ME.UTF-8@latin',
'sr_RS.UTF-8', 'sr_RS.UTF-8@latin', 'ss_ZA.UTF-8', 'ssy_ER.UTF-8',
'st_ZA.UTF-8', 'su_ID.UTF-8', 'sv_FI.UTF-8', 'sv_SE.UTF-8', 'sw_KE.UTF-8',
'sw_TZ.UTF-8', 'syr.UTF-8', 'szl_PL.UTF-8', 'ta_IN.UTF-8', 'ta_LK.UTF-8',
'ta_SG.UTF-8', 'tcy_IN.UTF-8', 'te_IN.UTF-8', 'tg_TJ.UTF-8', 'th_TH.UTF-8',
'the_NP.UTF-8', 'ti_ER.UTF-8', 'ti_ET.UTF-8', 'tig_ER.UTF-8', 'tk_TM.UTF-8',
'tl_PH.UTF-8', 'tn_BW.UTF-8', 'tn_ZA.UTF-8', 'to_TO.UTF-8', 'tok.UTF-8',
'tpi_PG.UTF-8', 'tr_CY.UTF-8', 'tr_TR.UTF-8', 'ts_ZA.UTF-8', 'tt_RU.UTF-8',
'tt_RU.UTF-8@iqtelif', 'ug_CN.UTF-8', 'uk_UA.UTF-8', 'unm_US.UTF-8',
'ur_IN.UTF-8', 'ur_PK.UTF-8', 'uz_UZ.UTF-8', 'uz_UZ.UTF-8@cyrillic',
've_ZA.UTF-8', 'vi_VN.UTF-8', 'wa_BE.UTF-8', 'wae_CH.
UTF-8', 'wal_ET.UTF-8', 'wo_SN.UTF-8', 'xh_ZA.UTF-8', 'yi_US.UTF-8',
'yo_NG.UTF-8', 'yue_HK.UTF-8', 'yuw_PG.UTF-8', 'zgh_MA.UTF-8', 'zh_CN.UTF-8',
'zh_HK.UTF-8', 'zh_MO.UTF-8', 'zh_SG.UTF-8', 'zh_TW.UTF-8', 'zu_ZA.UTF-8']
+ ['aa_DJ.UTF-8', 'aa_ER.UTF-8', 'aa_ET.UTF-8', 'ab_GE.UTF-8',
'af_ZA.UTF-8', 'agr_PE.UTF-8', 'ak_GH.UTF-8', 'am_ET.UTF-8', 'an_ES.UTF-8',
'anp_IN.UTF-8', 'ar_AE.UTF-8', 'ar_BH.UTF-8', 'ar_DZ.UTF-8', 'ar_EG.UTF-8',
'ar_IN.UTF-8', 'ar_IQ.UTF-8', 'ar_JO.UTF-8', 'ar_KW.UTF-8', 'ar_LB.UTF-8',
'ar_LY.UTF-8', 'ar_MA.UTF-8', 'ar_OM.UTF-8', 'ar_QA.UTF-8', 'ar_SA.UTF-8',
'ar_SD.UTF-8', 'ar_SS.UTF-8', 'ar_SY.UTF-8', 'ar_TN.UTF-8', 'ar_YE.UTF-8',
'as_IN.UTF-8', 'ast_ES.UTF-8', 'ayc_PE.UTF-8', 'az_AZ.UTF-8', 'az_IR.UTF-8',
'be_BY.UTF-8', 'be_BY.UTF-8@latin', 'bem_ZM.UTF-8', 'ber_DZ.UTF-8',
'ber_MA.UTF-8', 'bg_BG.UTF-8', 'bhb_IN.UTF-8', 'bho_IN.UTF-8', 'bho_NP.UTF-8',
'bi_VU.UTF-8', 'bn_BD.UTF-8', 'bn_IN.UTF-8', 'bo_CN.UTF-8', 'bo_IN.UTF-8',
'br_FR.UTF-8', 'brx_IN.UTF-8', 'bs_BA.UTF-8', 'byn_ER.UTF-8', 'ca_AD.UTF-8',
'ca_ES.UTF-8', 'ca_ES.UTF-8@valencia', 'ca_FR.UTF-8', 'ca_IT.UTF-8',
'ce_RU.UTF-8', 'chr_US.UTF-8', 'ckb_IQ.UTF-8', 'cmn_TW.UTF-8', 'crh_RU.UTF-8',
'crh_UA.UTF-8', 'cs_CZ.UTF-8',
'csb_PL.UTF-8', 'cv_RU.UTF-8', 'cy_GB.UTF-8', 'da_DK.UTF-8', 'de_AT.UTF-8',
'de_BE.UTF-8', 'de_CH.UTF-8', 'de_DE.UTF-8', 'de_IT.UTF-8', 'de_LI.UTF-8',
'de_LU.UTF-8', 'doi_IN.UTF-8', 'dsb_DE.UTF-8', 'dv_MV.UTF-8', 'dz_BT.UTF-8',
'el_CY.UTF-8', 'el_GR.UTF-8', 'en_AG.UTF-8', 'en_AU.UTF-8', 'en_BW.UTF-8',
'en_CA.UTF-8', 'en_DK.UTF-8', 'en_GB.UTF-8', 'en_HK.UTF-8', 'en_IE.UTF-8',
'en_IL.UTF-8', 'en_IN.UTF-8', 'en_NG.UTF-8', 'en_NZ.UTF-8', 'en_PH.UTF-8',
'en_SC.UTF-8', 'en_SE.UTF-8', 'en_SG.UTF-8', 'en_US.UTF-8', 'en_ZA.UTF-8',
'en_ZM.UTF-8', 'en_ZW.UTF-8', 'eo.UTF-8', 'es_AR.UTF-8', 'es_BO.UTF-8',
'es_CL.UTF-8', 'es_CO.UTF-8', 'es_CR.UTF-8', 'es_CU.UTF-8', 'es_DO.UTF-8',
'es_EC.UTF-8', 'es_ES.UTF-8', 'es_GT.UTF-8', 'es_HN.UTF-8', 'es_MX.UTF-8',
'es_NI.UTF-8', 'es_PA.UTF-8', 'es_PE.UTF-8', 'es_PR.UTF-8', 'es_PY.UTF-8',
'es_SV.UTF-8', 'es_US.UTF-8', 'es_UY.UTF-8', 'es_VE.UTF-8', 'et_EE.UTF-8',
'eu_ES.UTF-8', 'fa_IR.UTF-8', 'ff_SN.UTF-8', 'fi_FI.UTF-8', 'fil_PH.UTF-8',
'fo_FO.UTF-8', 'fr_BE
.UTF-8', 'fr_CA.UTF-8', 'fr_CH.UTF-8', 'fr_FR.UTF-8', 'fr_HT.UTF-8',
'fr_LU.UTF-8', 'fur_IT.UTF-8', 'fy_DE.UTF-8', 'fy_NL.UTF-8', 'ga_IE.UTF-8',
'gbm_IN.UTF-8', 'gd_GB.UTF-8', 'gez_ER.UTF-8', 'gez_ER.UTF-8@abegede',
'gez_ET.UTF-8', 'gez_ET.UTF-8@abegede', 'gl_ES.UTF-8', 'glk_IR.UTF-8',
'gu_IN.UTF-8', 'gv_GB.UTF-8', 'ha_NG.UTF-8', 'hak_TW.UTF-8', 'he_IL.UTF-8',
'hi_IN.UTF-8', 'hif_FJ.UTF-8', 'hne_IN.UTF-8', 'hr_HR.UTF-8', 'hsb_DE.UTF-8',
'ht_HT.UTF-8', 'hu_HU.UTF-8', 'hy_AM.UTF-8', 'ia_FR.UTF-8', 'id_ID.UTF-8',
'ig_NG.UTF-8', 'ik_CA.UTF-8', 'ilo_PH.UTF-8', 'is_IS.UTF-8', 'it_CH.UTF-8',
'it_IT.UTF-8', 'iu_CA.UTF-8', 'iw_IL.UTF-8', 'ja_JP.UTF-8', 'ka_GE.UTF-8',
'kab_DZ.UTF-8', 'kk_KZ.UTF-8', 'kl_GL.UTF-8', 'km_KH.UTF-8', 'kn_IN.UTF-8',
'ko_KR.UTF-8', 'kok_IN.UTF-8', 'ks_IN.UTF-8', 'ks_IN.UTF-8@devanagari',
'ku_TR.UTF-8', 'kv_RU.UTF-8', 'kw_GB.UTF-8', 'ky_KG.UTF-8', 'lb_LU.UTF-8',
'lg_UG.UTF-8', 'li_BE.UTF-8', 'li_NL.UTF-8', 'lij_IT.UTF-8', 'ln_CD.UTF-8',
'lo_LA.UTF-8', 'lt_LT.UTF-8', '
ltg_LV.UTF-8', 'lv_LV.UTF-8', 'lzh_TW.UTF-8', 'mag_IN.UTF-8', 'mai_IN.UTF-8',
'mai_NP.UTF-8', 'mdf_RU.UTF-8', 'mfe_MU.UTF-8', 'mg_MG.UTF-8', 'mhr_RU.UTF-8',
'mi_NZ.UTF-8', 'miq_NI.UTF-8', 'mjw_IN.UTF-8', 'mk_MK.UTF-8', 'ml_IN.UTF-8',
'mn_MN.UTF-8', 'mni_IN.UTF-8', 'mnw_MM.UTF-8', 'mr_IN.UTF-8', 'ms_MY.UTF-8',
'mt_MT.UTF-8', 'my_MM.UTF-8', 'nan_TW.UTF-8', 'nan_TW.UTF-8@latin',
'nb_NO.UTF-8', 'nds_DE.UTF-8', 'nds_NL.UTF-8', 'ne_NP.UTF-8', 'nhn_MX.UTF-8',
'niu_NU.UTF-8', 'niu_NZ.UTF-8', 'nl_AW.UTF-8', 'nl_BE.UTF-8', 'nl_NL.UTF-8',
'nn_NO.UTF-8', 'no_NO.UTF-8', 'nr_ZA.UTF-8', 'nso_ZA.UTF-8', 'oc_FR.UTF-8',
'om_ET.UTF-8', 'om_KE.UTF-8', 'or_IN.UTF-8', 'os_RU.UTF-8', 'pa_IN.UTF-8',
'pa_PK.UTF-8', 'pap_AN.UTF-8', 'pap_AW.UTF-8', 'pap_CW.UTF-8', 'pl_PL.UTF-8',
'ps_AF.UTF-8', 'pt_BR.UTF-8', 'pt_PT.UTF-8', 'quz_PE.UTF-8', 'raj_IN.UTF-8',
'rif_MA.UTF-8', 'ro_RO.UTF-8', 'ru_RU.UTF-8', 'ru_UA.UTF-8', 'rw_RW.UTF-8',
'sa_IN.UTF-8', 'sah_RU.UTF-8', 'sat_IN.UTF-8', 'sc_IT.UTF-8', 'scn_IT.UTF-8',
'sd
_IN.UTF-8', 'sd_IN.UTF-8@devanagari', 'se_NO.UTF-8', 'sgs_LT.UTF-8',
'shn_MM.UTF-8', 'shs_CA.UTF-8', 'si_LK.UTF-8', 'sid_ET.UTF-8', 'sk_SK.UTF-8',
'sl_SI.UTF-8', 'sm_WS.UTF-8', 'so_DJ.UTF-8', 'so_ET.UTF-8', 'so_KE.UTF-8',
'so_SO.UTF-8', 'sq_AL.UTF-8', 'sq_MK.UTF-8', 'sr_ME.UTF-8',
'sr_ME.UTF-8@latin', 'sr_RS.UTF-8', 'sr_RS.UTF-8@latin', 'ss_ZA.UTF-8',
'ssy_ER.UTF-8', 'st_ZA.UTF-8', 'su_ID.UTF-8', 'sv_FI.UTF-8', 'sv_SE.UTF-8',
'sw_KE.UTF-8', 'sw_TZ.UTF-8', 'syr.UTF-8', 'szl_PL.UTF-8', 'ta_IN.UTF-8',
'ta_LK.UTF-8', 'ta_SG.UTF-8', 'tcy_IN.UTF-8', 'te_IN.UTF-8', 'tg_TJ.UTF-8',
'th_TH.UTF-8', 'the_NP.UTF-8', 'ti_ER.UTF-8', 'ti_ET.UTF-8', 'tig_ER.UTF-8',
'tk_TM.UTF-8', 'tl_PH.UTF-8', 'tn_BW.UTF-8', 'tn_ZA.UTF-8', 'to_TO.UTF-8',
'tok.UTF-8', 'tpi_PG.UTF-8', 'tr_CY.UTF-8', 'tr_TR.UTF-8', 'ts_ZA.UTF-8',
'tt_RU.UTF-8', 'tt_RU.UTF-8@iqtelif', 'ug_CN.UTF-8', 'uk_UA.UTF-8',
'unm_US.UTF-8', 'ur_IN.UTF-8', 'ur_PK.UTF-8', 'uz_UZ.UTF-8',
'uz_UZ.UTF-8@cyrillic', 've_ZA.UTF-8', 'vi_VN.UTF-8', 'wa_BE.U
TF-8', 'wae_CH.UTF-8', 'wal_ET.UTF-8', 'wo_SN.UTF-8', 'xh_ZA.UTF-8',
'yi_US.UTF-8', 'yo_NG.UTF-8', 'yue_HK.UTF-8', 'yuw_PG.UTF-8', 'zgh_MA.UTF-8',
'zh_CN.UTF-8', 'zh_HK.UTF-8', 'zh_MO.UTF-8', 'zh_SG.UTF-8', 'zh_TW.UTF-8',
'zu_ZA.UTF-8']
>>> print(list_all_keyboards()) # doctest: +NORMALIZE_WHITESPACE
['ad', 'af', 'af(fa-olpc)', 'af(ps)', 'af(ps-olpc)', 'af(uz)',
'af(uz-olpc)', 'al', 'am', 'am(eastern)', 'am(eastern-alt)', 'am(phonetic)',
'am(phonetic-alt)', 'am(western)', 'ara', 'ara(azerty)', 'ara(azerty_digits)',
'ara(buckwalter)', 'ara(digits)', 'ara(qwerty)', 'ara(qwerty_digits)',
'at(nodeadkeys)', 'az', 'az(cyrillic)', 'ba', 'bd', 'bd(probhat)', 'be',
'be(oss)', 'bg', 'bg(bas_phonetic)', 'bg(phonetic)', 'br', 'brai',
'brai(left_hand)', 'brai(right_hand)', 'bt', 'by', 'by(legacy)', 'ca',
'ca(eng)', 'ca(ike)', 'ca(multi)', 'ca(multi-2gr)', 'ca(shs)', 'ch', 'ch(fr)',
'cn', 'cn(tib)', 'cn(tib_asciinum)', 'cn(ug)', 'cz', 'cz(ucw)', 'de',
'de(deadacute)', 'de(nodeadkeys)', 'de(ru)', 'dk', 'dz(ar)',
'dz(azerty-deadkeys)', 'dz(azerty-oss)', 'dz(ber)', 'ee', 'es', 'es(ast)',
'es(cat)', 'et', 'fi', 'fi(classic)', 'fi(nodeadkeys)', 'fo', 'fr', 'fr(geo)',
'fr(latin9)', 'fr(oss)', 'gb', 'ge', 'ge(os)', 'gr', 'gr(extended)',
'gr(nodeadkeys)', 'gr(polytonic)', 'gr(simple)', 'hr', 'hu'
, 'ie', 'ie(CloGaelach)', 'ie(ogam)', 'il', 'il(biblical)', 'il(lyx)',
'il(phonetic)', 'in', 'in(ben)', 'in(ben_baishakhi)', 'in(ben_bornona)',
'in(ben_gitanjali)', 'in(ben_inscript)', 'in(ben_probhat)', 'in(bolnagri)',
'in(deva)', 'in(eng)', 'in(guj)', 'in(guru)', 'in(hin-kagapa)', 'in(hin-wx)',
'in(jhelum)', 'in(kan)', 'in(kan-kagapa)', 'in(mal)', 'in(mal_enhanced)',
'in(mal_lalitha)', 'in(mar-kagapa)', 'in(ori)', 'in(san-kagapa)', 'in(tam)',
'in(tam_tamilnet)', 'in(tam_tamilnet_TAB)', 'in(tam_tamilnet_TSCII)',
'in(tam_tamilnet_with_tam_nums)', 'in(tel)', 'in(tel-kagapa)',
'in(urd-phonetic)', 'in(urd-phonetic3)', 'in(urd-winkeys)', 'iq', 'ir',
'ir(pes_keypad)', 'it', 'jp', 'jp(kana)', 'jp(mac)', 'ke', 'kg',
'kg(phonetic)', 'kh', 'kr', 'kz', 'kz(kazrus)', 'kz(ruskaz)', 'la', 'la(stea)',
'latam', 'lk', 'lk(tam_TAB)', 'lk(tam_unicode)', 'lt', 'lv', 'ma',
'ma(french)', 'ma(tifinagh)', 'ma(tifinagh-alt)', 'ma(tifinagh-alt-phonetic)',
'ma(tifinagh-extended)', 'ma(tifinagh-extended-phone
tic)', 'ma(tifinagh-phonetic)', 'me', 'me(cyrillic)',
'me(cyrillicalternatequotes)', 'me(cyrillicyz)', 'mk', 'mk(nodeadkeys)', 'mm',
'mn', 'mt', 'mt(us)', 'mv', 'ng', 'ng(hausa)', 'ng(igbo)', 'ng(yoruba)', 'nl',
'no', 'np', 'ph', 'ph(capewell-dvorak-bay)', 'ph(capewell-qwerf2k6-bay)',
'ph(colemak-bay)', 'ph(dvorak-bay)', 'ph(qwerty-bay)', 'pk', 'pk(ara)',
'pk(snd)', 'pk(urd-crulp)', 'pk(urd-nla)', 'pl', 'pl(ru_phonetic_dvorak)',
'pt', 'ro', 'rs', 'rs(alternatequotes)', 'rs(latin)', 'rs(rue)', 'rs(yz)',
'ru', 'ru(bak)', 'ru(chm)', 'ru(cv)', 'ru(dos)', 'ru(kom)', 'ru(legacy)',
'ru(mac)', 'ru(os_legacy)', 'ru(os_winkeys)', 'ru(phonetic)',
'ru(phonetic_winkeys)', 'ru(sah)', 'ru(srp)', 'ru(tt)', 'ru(typewriter)',
'ru(typewriter-legacy)', 'ru(udm)', 'ru(xal)', 'se', 'se(nodeadkeys)',
'se(rus)', 'se(rus_nodeadkeys)', 'se(swl)', 'si', 'sk', 'sn', 'sy', 'sy(syc)',
'sy(syc_phonetic)', 'th', 'th(pat)', 'th(tis)', 'tj', 'tj(legacy)', 'tm', 'tr',
'tr(crh)', 'tr(ku)', 'tz', 'ua', 'ua(homophonic)'
, 'ua(legacy)', 'ua(phonetic)', 'ua(rstu)', 'ua(rstu_ru)', 'ua(typewriter)',
'ua(winkeys)', 'us', 'us(altgr-intl)', 'us(chr)', 'us(euro)', 'us(intl)',
'us(rus)', 'uz', 'uz(latin)', 'vn', 'za']
>>> print(list_all_territories()) # doctest: +NORMALIZE_WHITESPACE
['001', '002', '019', '142', '150', '419', 'AD', 'AE', 'AF', 'AG', 'AI',
'AL', 'AM', 'AN', 'AO', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AW', 'AX', 'AZ', 'BA',
'BB', 'BD', 'BE', 'BF', 'BG', 'BH', 'BI', 'BJ', 'BL', 'BM', 'BN', 'BO', 'BQ',
'BR', 'BS', 'BT', 'BW', 'BY', 'BZ', 'CA', 'CC', 'CD', 'CF', 'CG', 'CH', 'CI',
'CK', 'CL', 'CM', 'CN', 'CO', 'CR', 'CU', 'CV', 'CW', 'CX', 'CY', 'CZ', 'DE',
'DG', 'DJ', 'DK', 'DM', 'DO', 'DZ', 'EA', 'EC', 'EE', 'EG', 'EH', 'ER', 'ES',
'ET', 'EU', 'EZ', 'FI', 'FJ', 'FK', 'FM', 'FO', 'FR', 'GA', 'GB', 'GD', 'GE',
'GF', 'GG', 'GH', 'GI', 'GL', 'GM', 'GN', 'GP', 'GQ', 'GR', 'GS', 'GT', 'GU',
'GW', 'GY', 'HK', 'HN', 'HR', 'HT', 'HU', 'IC', 'ID', 'IE', 'IL', 'IM', 'IN',
'IO', 'IQ', 'IR', 'IS', 'IT', 'JE', 'JM', 'JO', 'JP', 'KE', 'KG', 'KH', 'KI',
'KM', 'KN', 'KP', 'KR', 'KW', 'KY', 'KZ', 'LA', 'LB', 'LC', 'LI', 'LK', 'LR',
'LS', 'LT', 'LU', 'LV', 'LY', 'MA', 'MC', 'MD', 'ME', 'MF', 'MG', 'MH', 'MK',
'ML', 'MM', 'MN', 'MO', 'MP', 'MQ', 'MR', 'MS', 'MT', 'MU', 'M
V', 'MW', 'MX', 'MY', 'MZ', 'NA', 'NC', 'NE', 'NF', 'NG', 'NI', 'NL', 'NO',
'NP', 'NR', 'NU', 'NZ', 'OM', 'PA', 'PE', 'PF', 'PG', 'PH', 'PK', 'PL', 'PM',
'PN', 'PR', 'PS', 'PT', 'PW', 'PY', 'QA', 'RE', 'RO', 'RS', 'RU', 'RW', 'SA',
'SB', 'SC', 'SD', 'SE', 'SG', 'SH', 'SI', 'SJ', 'SK', 'SL', 'SM', 'SN', 'SO',
'SR', 'SS', 'ST', 'SV', 'SX', 'SY', 'SZ', 'TC', 'TD', 'TG', 'TH', 'TJ', 'TK',
'TL', 'TM', 'TN', 'TO', 'TR', 'TT', 'TV', 'TW', 'TZ', 'UA', 'UG', 'UM', 'US',
'UY', 'UZ', 'VA', 'VC', 'VE', 'VG', 'VI', 'VN', 'VU', 'WF', 'WS', 'XK', 'YE',
'YT', 'YU', 'ZA', 'ZM', 'ZW']
>>> print(list_all_timezones()) # doctest: +NORMALIZE_WHITESPACE
- ['Africa/Abidjan', 'Africa/Accra', 'Africa/Addis_Ababa', 'Africa/Algiers',
'Africa/Asmara', 'Africa/Bamako', 'Africa/Bangui', 'Africa/Banjul',
'Africa/Bissau', 'Africa/Blantyre', 'Africa/Brazzaville', 'Africa/Bujumbura',
'Africa/Cairo', 'Africa/Casablanca', 'Africa/Ceuta', 'Africa/Conakry',
'Africa/Dakar', 'Africa/Dar_es_Salaam', 'Africa/Djibouti', 'Africa/Douala',
'Africa/El_Aaiun', 'Africa/Freetown', 'Africa/Gaborone', 'Africa/Harare',
'Africa/Johannesburg', 'Africa/Juba', 'Africa/Kampala', 'Africa/Khartoum',
'Africa/Kigali', 'Africa/Kinshasa', 'Africa/Lagos', 'Africa/Libreville',
'Africa/Lome', 'Africa/Luanda', 'Africa/Lubumbashi', 'Africa/Lusaka',
'Africa/Malabo', 'Africa/Maputo', 'Africa/Maseru', 'Africa/Mbabane',
'Africa/Mogadishu', 'Africa/Monrovia', 'Africa/Nairobi', 'Africa/Ndjamena',
'Africa/Niamey', 'Africa/Nouakchott', 'Africa/Ouagadougou',
'Africa/Porto-Novo', 'Africa/Sao_Tome', 'Africa/Tripoli', 'Africa/Tunis',
'Africa/Windhoek', 'America/Adak', 'America/Anchorage'
, 'America/Anguilla', 'America/Antigua', 'America/Araguaina',
'America/Argentina/Buenos_Aires', 'America/Argentina/Catamarca',
'America/Argentina/Cordoba', 'America/Argentina/Jujuy',
'America/Argentina/La_Rioja', 'America/Argentina/Mendoza',
'America/Argentina/Rio_Gallegos', 'America/Argentina/Salta',
'America/Argentina/San_Juan', 'America/Argentina/San_Luis',
'America/Argentina/Tucuman', 'America/Argentina/Ushuaia', 'America/Aruba',
'America/Asuncion', 'America/Atikokan', 'America/Bahia',
'America/Bahia_Banderas', 'America/Barbados', 'America/Belem',
'America/Belize', 'America/Blanc-Sablon', 'America/Boa_Vista',
'America/Bogota', 'America/Boise', 'America/Cambridge_Bay',
'America/Campo_Grande', 'America/Cancun', 'America/Caracas', 'America/Cayenne',
'America/Cayman', 'America/Chicago', 'America/Chihuahua', 'America/Costa_Rica',
'America/Creston', 'America/Cuiaba', 'America/Curacao', 'America/Danmarkshavn',
'America/Dawson', 'America/Dawson_Creek', 'America/Denver', 'America/Detroit
', 'America/Dominica', 'America/Edmonton', 'America/Eirunepe',
'America/El_Salvador', 'America/Fortaleza', 'America/Galapagos',
'America/Glace_Bay', 'America/Godthab', 'America/Goose_Bay',
'America/Grand_Turk', 'America/Grenada', 'America/Guadeloupe',
'America/Guatemala', 'America/Guayaquil', 'America/Guyana', 'America/Halifax',
'America/Havana', 'America/Hermosillo', 'America/Indiana/Indianapolis',
'America/Indiana/Knox', 'America/Indiana/Marengo',
'America/Indiana/Petersburg', 'America/Indiana/Tell_City',
'America/Indiana/Vevay', 'America/Indiana/Vincennes',
'America/Indiana/Winamac', 'America/Inuvik', 'America/Iqaluit',
'America/Jamaica', 'America/Juneau', 'America/Kentucky/Louisville',
'America/Kentucky/Monticello', 'America/Kralendijk', 'America/La_Paz',
'America/Lima', 'America/Los_Angeles', 'America/Lower_Princes',
'America/Maceio', 'America/Managua', 'America/Manaus', 'America/Marigot',
'America/Martinique', 'America/Matamoros', 'America/Mazatlan',
'America/Menominee', 'Amer
ica/Merida', 'America/Metlakatla', 'America/Mexico_City', 'America/Miquelon',
'America/Moncton', 'America/Monterrey', 'America/Montevideo',
'America/Montreal', 'America/Montserrat', 'America/Nassau', 'America/New_York',
'America/Nipigon', 'America/Nome', 'America/Noronha',
'America/North_Dakota/Beulah', 'America/North_Dakota/Center',
'America/North_Dakota/New_Salem', 'America/Ojinaga', 'America/Panama',
'America/Pangnirtung', 'America/Paramaribo', 'America/Phoenix',
'America/Port-au-Prince', 'America/Port_of_Spain', 'America/Porto_Velho',
'America/Puerto_Rico', 'America/Rainy_River', 'America/Rankin_Inlet',
'America/Recife', 'America/Regina', 'America/Resolute', 'America/Rio_Branco',
'America/Santa_Isabel', 'America/Santarem', 'America/Santiago',
'America/Santo_Domingo', 'America/Sao_Paulo', 'America/Scoresbysund',
'America/Shiprock', 'America/Sitka', 'America/St_Barthelemy',
'America/St_Johns', 'America/St_Kitts', 'America/St_Lucia',
'America/St_Thomas', 'America/St_Vincent', 'Amer
ica/Swift_Current', 'America/Tegucigalpa', 'America/Thule',
'America/Thunder_Bay', 'America/Tijuana', 'America/Toronto', 'America/Tortola',
'America/Vancouver', 'America/Whitehorse', 'America/Winnipeg',
'America/Yakutat', 'America/Yellowknife', 'Arctic/Longyearbyen', 'Asia/Aden',
'Asia/Amman', 'Asia/Anadyr', 'Asia/Ashgabat', 'Asia/Baghdad', 'Asia/Bahrain',
'Asia/Baku', 'Asia/Bangkok', 'Asia/Beirut', 'Asia/Bishkek', 'Asia/Brunei',
'Asia/Choibalsan', 'Asia/Colombo', 'Asia/Damascus', 'Asia/Dhaka', 'Asia/Dili',
'Asia/Dubai', 'Asia/Dushanbe', 'Asia/Famagusta', 'Asia/Gaza',
'Asia/Ho_Chi_Minh', 'Asia/Hong_Kong', 'Asia/Hovd', 'Asia/Irkutsk',
'Asia/Jakarta', 'Asia/Jayapura', 'Asia/Jerusalem', 'Asia/Kabul',
'Asia/Kamchatka', 'Asia/Karachi', 'Asia/Kathmandu', 'Asia/Khandyga',
'Asia/Kolkata', 'Asia/Krasnoyarsk', 'Asia/Kuala_Lumpur', 'Asia/Kuching',
'Asia/Kuwait', 'Asia/Macau', 'Asia/Magadan', 'Asia/Manila', 'Asia/Muscat',
'Asia/Nicosia', 'Asia/Novokuznetsk', 'Asia/Novosibirsk', 'Asia/Omsk', 'As
ia/Oral', 'Asia/Phnom_Penh', 'Asia/Pyongyang', 'Asia/Qatar', 'Asia/Rangoon',
'Asia/Riyadh', 'Asia/Sakhalin', 'Asia/Samarkand', 'Asia/Seoul',
'Asia/Shanghai', 'Asia/Singapore', 'Asia/Taipei', 'Asia/Tashkent',
'Asia/Tbilisi', 'Asia/Tehran', 'Asia/Thimphu', 'Asia/Tokyo',
'Asia/Ulaanbaatar', 'Asia/Ust-Nera', 'Asia/Vientiane', 'Asia/Vladivostok',
'Asia/Yakutsk', 'Asia/Yangon', 'Asia/Yekaterinburg', 'Asia/Yerevan',
'Atlantic/Azores', 'Atlantic/Bermuda', 'Atlantic/Canary',
'Atlantic/Cape_Verde', 'Atlantic/Faroe', 'Atlantic/Madeira',
'Atlantic/Reykjavik', 'Atlantic/South_Georgia', 'Atlantic/St_Helena',
'Atlantic/Stanley', 'Australia/Adelaide', 'Australia/Brisbane',
'Australia/Broken_Hill', 'Australia/Currie', 'Australia/Darwin',
'Australia/Eucla', 'Australia/Hobart', 'Australia/Lindeman',
'Australia/Lord_Howe', 'Australia/Melbourne', 'Australia/Perth',
'Australia/Sydney', 'Europe/Amsterdam', 'Europe/Andorra', 'Europe/Athens',
'Europe/Belgrade', 'Europe/Berlin', 'Europe/Bratislava', 'Europe/
Brussels', 'Europe/Bucharest', 'Europe/Budapest', 'Europe/Busingen',
'Europe/Chisinau', 'Europe/Copenhagen', 'Europe/Dublin', 'Europe/Gibraltar',
'Europe/Guernsey', 'Europe/Helsinki', 'Europe/Isle_of_Man', 'Europe/Istanbul',
'Europe/Jersey', 'Europe/Kaliningrad', 'Europe/Kiev', 'Europe/Lisbon',
'Europe/Ljubljana', 'Europe/London', 'Europe/Luxembourg', 'Europe/Madrid',
'Europe/Malta', 'Europe/Mariehamn', 'Europe/Minsk', 'Europe/Monaco',
'Europe/Moscow', 'Europe/Oslo', 'Europe/Paris', 'Europe/Podgorica',
'Europe/Prague', 'Europe/Riga', 'Europe/Rome', 'Europe/Samara',
'Europe/San_Marino', 'Europe/Sarajevo', 'Europe/Simferopol', 'Europe/Skopje',
'Europe/Sofia', 'Europe/Stockholm', 'Europe/Tallinn', 'Europe/Tirane',
'Europe/Uzhgorod', 'Europe/Vaduz', 'Europe/Vatican', 'Europe/Vienna',
'Europe/Vilnius', 'Europe/Volgograd', 'Europe/Warsaw', 'Europe/Zagreb',
'Europe/Zaporozhye', 'Europe/Zurich', 'Indian/Antananarivo', 'Indian/Chagos',
'Indian/Christmas', 'Indian/Cocos', 'Indian/Comoro', 'In
dian/Mahe', 'Indian/Maldives', 'Indian/Mauritius', 'Indian/Mayotte',
'Indian/Reunion', 'Pacific/Apia', 'Pacific/Auckland', 'Pacific/Chatham',
'Pacific/Chuuk', 'Pacific/Easter', 'Pacific/Efate', 'Pacific/Fakaofo',
'Pacific/Fiji', 'Pacific/Funafuti', 'Pacific/Guadalcanal', 'Pacific/Guam',
'Pacific/Honolulu', 'Pacific/Kiritimati', 'Pacific/Kwajalein',
'Pacific/Majuro', 'Pacific/Midway', 'Pacific/Nauru', 'Pacific/Niue',
'Pacific/Norfolk', 'Pacific/Noumea', 'Pacific/Pago_Pago', 'Pacific/Palau',
'Pacific/Pitcairn', 'Pacific/Port_Moresby', 'Pacific/Rarotonga',
'Pacific/Saipan', 'Pacific/Tahiti', 'Pacific/Tongatapu', 'Pacific/Wake',
'Pacific/Wallis', 'US/Pacific']
+ ['Africa/Abidjan', 'Africa/Accra', 'Africa/Addis_Ababa', 'Africa/Algiers',
'Africa/Asmara', 'Africa/Bamako', 'Africa/Bangui', 'Africa/Banjul',
'Africa/Bissau', 'Africa/Blantyre', 'Africa/Brazzaville', 'Africa/Bujumbura',
'Africa/Cairo', 'Africa/Casablanca', 'Africa/Ceuta', 'Africa/Conakry',
'Africa/Dakar', 'Africa/Dar_es_Salaam', 'Africa/Djibouti', 'Africa/Douala',
'Africa/El_Aaiun', 'Africa/Freetown', 'Africa/Gaborone', 'Africa/Harare',
'Africa/Johannesburg', 'Africa/Juba', 'Africa/Kampala', 'Africa/Khartoum',
'Africa/Kigali', 'Africa/Kinshasa', 'Africa/Lagos', 'Africa/Libreville',
'Africa/Lome', 'Africa/Luanda', 'Africa/Lubumbashi', 'Africa/Lusaka',
'Africa/Malabo', 'Africa/Maputo', 'Africa/Maseru', 'Africa/Mbabane',
'Africa/Mogadishu', 'Africa/Monrovia', 'Africa/Nairobi', 'Africa/Ndjamena',
'Africa/Niamey', 'Africa/Nouakchott', 'Africa/Ouagadougou',
'Africa/Porto-Novo', 'Africa/Sao_Tome', 'Africa/Tripoli', 'Africa/Tunis',
'Africa/Windhoek', 'America/Adak', 'America/Anchorage'
, 'America/Anguilla', 'America/Antigua', 'America/Araguaina',
'America/Argentina/Buenos_Aires', 'America/Argentina/Catamarca',
'America/Argentina/Cordoba', 'America/Argentina/Jujuy',
'America/Argentina/La_Rioja', 'America/Argentina/Mendoza',
'America/Argentina/Rio_Gallegos', 'America/Argentina/Salta',
'America/Argentina/San_Juan', 'America/Argentina/San_Luis',
'America/Argentina/Tucuman', 'America/Argentina/Ushuaia', 'America/Aruba',
'America/Asuncion', 'America/Atikokan', 'America/Bahia',
'America/Bahia_Banderas', 'America/Barbados', 'America/Belem',
'America/Belize', 'America/Blanc-Sablon', 'America/Boa_Vista',
'America/Bogota', 'America/Boise', 'America/Cambridge_Bay',
'America/Campo_Grande', 'America/Cancun', 'America/Caracas', 'America/Cayenne',
'America/Cayman', 'America/Chicago', 'America/Chihuahua', 'America/Costa_Rica',
'America/Creston', 'America/Cuiaba', 'America/Curacao', 'America/Danmarkshavn',
'America/Dawson', 'America/Dawson_Creek', 'America/Denver', 'America/Detroit
', 'America/Dominica', 'America/Edmonton', 'America/Eirunepe',
'America/El_Salvador', 'America/Fortaleza', 'America/Galapagos',
'America/Glace_Bay', 'America/Godthab', 'America/Goose_Bay',
'America/Grand_Turk', 'America/Grenada', 'America/Guadeloupe',
'America/Guatemala', 'America/Guayaquil', 'America/Guyana', 'America/Halifax',
'America/Havana', 'America/Hermosillo', 'America/Indiana/Indianapolis',
'America/Indiana/Knox', 'America/Indiana/Marengo',
'America/Indiana/Petersburg', 'America/Indiana/Tell_City',
'America/Indiana/Vevay', 'America/Indiana/Vincennes',
'America/Indiana/Winamac', 'America/Inuvik', 'America/Iqaluit',
'America/Jamaica', 'America/Juneau', 'America/Kentucky/Louisville',
'America/Kentucky/Monticello', 'America/Kralendijk', 'America/La_Paz',
'America/Lima', 'America/Los_Angeles', 'America/Lower_Princes',
'America/Maceio', 'America/Managua', 'America/Manaus', 'America/Marigot',
'America/Martinique', 'America/Matamoros', 'America/Mazatlan',
'America/Menominee', 'Amer
ica/Merida', 'America/Metlakatla', 'America/Mexico_City', 'America/Miquelon',
'America/Moncton', 'America/Monterrey', 'America/Montevideo',
'America/Montreal', 'America/Montserrat', 'America/Nassau', 'America/New_York',
'America/Nipigon', 'America/Nome', 'America/Noronha',
'America/North_Dakota/Beulah', 'America/North_Dakota/Center',
'America/North_Dakota/New_Salem', 'America/Ojinaga', 'America/Panama',
'America/Pangnirtung', 'America/Paramaribo', 'America/Phoenix',
'America/Port-au-Prince', 'America/Port_of_Spain', 'America/Porto_Velho',
'America/Puerto_Rico', 'America/Rainy_River', 'America/Rankin_Inlet',
'America/Recife', 'America/Regina', 'America/Resolute', 'America/Rio_Branco',
'America/Santa_Isabel', 'America/Santarem', 'America/Santiago',
'America/Santo_Domingo', 'America/Sao_Paulo', 'America/Scoresbysund',
'America/Shiprock', 'America/Sitka', 'America/St_Barthelemy',
'America/St_Johns', 'America/St_Kitts', 'America/St_Lucia',
'America/St_Thomas', 'America/St_Vincent', 'Amer
ica/Swift_Current', 'America/Tegucigalpa', 'America/Thule',
'America/Thunder_Bay', 'America/Tijuana', 'America/Toronto', 'America/Tortola',
'America/Vancouver', 'America/Whitehorse', 'America/Winnipeg',
'America/Yakutat', 'America/Yellowknife', 'Arctic/Longyearbyen', 'Asia/Aden',
'Asia/Amman', 'Asia/Anadyr', 'Asia/Ashgabat', 'Asia/Baghdad', 'Asia/Bahrain',
'Asia/Baku', 'Asia/Bangkok', 'Asia/Beirut', 'Asia/Bishkek', 'Asia/Brunei',
'Asia/Choibalsan', 'Asia/Colombo', 'Asia/Damascus', 'Asia/Dhaka', 'Asia/Dili',
'Asia/Dubai', 'Asia/Dushanbe', 'Asia/Famagusta', 'Asia/Gaza',
'Asia/Ho_Chi_Minh', 'Asia/Hong_Kong', 'Asia/Hovd', 'Asia/Irkutsk',
'Asia/Jakarta', 'Asia/Jayapura', 'Asia/Jerusalem', 'Asia/Kabul',
'Asia/Kamchatka', 'Asia/Karachi', 'Asia/Kathmandu', 'Asia/Khandyga',
'Asia/Kolkata', 'Asia/Krasnoyarsk', 'Asia/Kuala_Lumpur', 'Asia/Kuching',
'Asia/Kuwait', 'Asia/Macau', 'Asia/Magadan', 'Asia/Manila', 'Asia/Muscat',
'Asia/Nicosia', 'Asia/Novokuznetsk', 'Asia/Novosibirsk', 'Asia/Omsk', 'As
ia/Oral', 'Asia/Phnom_Penh', 'Asia/Pyongyang', 'Asia/Qatar', 'Asia/Riyadh',
'Asia/Sakhalin', 'Asia/Samarkand', 'Asia/Seoul', 'Asia/Shanghai',
'Asia/Singapore', 'Asia/Taipei', 'Asia/Tashkent', 'Asia/Tbilisi',
'Asia/Tehran', 'Asia/Thimphu', 'Asia/Tokyo', 'Asia/Ulaanbaatar',
'Asia/Ust-Nera', 'Asia/Vientiane', 'Asia/Vladivostok', 'Asia/Yakutsk',
'Asia/Yangon', 'Asia/Yekaterinburg', 'Asia/Yerevan', 'Atlantic/Azores',
'Atlantic/Bermuda', 'Atlantic/Canary', 'Atlantic/Cape_Verde', 'Atlantic/Faroe',
'Atlantic/Madeira', 'Atlantic/Reykjavik', 'Atlantic/South_Georgia',
'Atlantic/St_Helena', 'Atlantic/Stanley', 'Australia/Adelaide',
'Australia/Brisbane', 'Australia/Broken_Hill', 'Australia/Currie',
'Australia/Darwin', 'Australia/Eucla', 'Australia/Hobart',
'Australia/Lindeman', 'Australia/Lord_Howe', 'Australia/Melbourne',
'Australia/Perth', 'Australia/Sydney', 'Europe/Amsterdam', 'Europe/Andorra',
'Europe/Athens', 'Europe/Belgrade', 'Europe/Berlin', 'Europe/Bratislava',
'Europe/Brussels', 'Euro
pe/Bucharest', 'Europe/Budapest', 'Europe/Busingen', 'Europe/Chisinau',
'Europe/Copenhagen', 'Europe/Dublin', 'Europe/Gibraltar', 'Europe/Guernsey',
'Europe/Helsinki', 'Europe/Isle_of_Man', 'Europe/Istanbul', 'Europe/Jersey',
'Europe/Kaliningrad', 'Europe/Kiev', 'Europe/Lisbon', 'Europe/Ljubljana',
'Europe/London', 'Europe/Luxembourg', 'Europe/Madrid', 'Europe/Malta',
'Europe/Mariehamn', 'Europe/Minsk', 'Europe/Monaco', 'Europe/Moscow',
'Europe/Oslo', 'Europe/Paris', 'Europe/Podgorica', 'Europe/Prague',
'Europe/Riga', 'Europe/Rome', 'Europe/Samara', 'Europe/San_Marino',
'Europe/Sarajevo', 'Europe/Simferopol', 'Europe/Skopje', 'Europe/Sofia',
'Europe/Stockholm', 'Europe/Tallinn', 'Europe/Tirane', 'Europe/Uzhgorod',
'Europe/Vaduz', 'Europe/Vatican', 'Europe/Vienna', 'Europe/Vilnius',
'Europe/Volgograd', 'Europe/Warsaw', 'Europe/Zagreb', 'Europe/Zaporozhye',
'Europe/Zurich', 'Indian/Antananarivo', 'Indian/Chagos', 'Indian/Christmas',
'Indian/Cocos', 'Indian/Comoro', 'Indian/Mahe', 'Ind
ian/Maldives', 'Indian/Mauritius', 'Indian/Mayotte', 'Indian/Reunion',
'Pacific/Apia', 'Pacific/Auckland', 'Pacific/Chatham', 'Pacific/Chuuk',
'Pacific/Easter', 'Pacific/Efate', 'Pacific/Fakaofo', 'Pacific/Fiji',
'Pacific/Funafuti', 'Pacific/Guadalcanal', 'Pacific/Guam', 'Pacific/Honolulu',
'Pacific/Kiritimati', 'Pacific/Kwajalein', 'Pacific/Majuro', 'Pacific/Midway',
'Pacific/Nauru', 'Pacific/Niue', 'Pacific/Norfolk', 'Pacific/Noumea',
'Pacific/Pago_Pago', 'Pacific/Palau', 'Pacific/Pitcairn',
'Pacific/Port_Moresby', 'Pacific/Rarotonga', 'Pacific/Saipan',
'Pacific/Tahiti', 'Pacific/Tongatapu', 'Pacific/Wake', 'Pacific/Wallis',
'US/Pacific']
>>> print(list_all_scripts()) # doctest: +NORMALIZE_WHITESPACE
- ['Adlm', 'Arab', 'Armn', 'Beng', 'Bhks', 'Brah', 'Cakm', 'Cans', 'Cham',
'Cher', 'Copt', 'Cprt', 'Cyrl', 'Cyrs', 'Deva', 'Dsrt', 'Elba', 'Ethi', 'Gara',
'Geor', 'Glag', 'Gran', 'Grek', 'Gujr', 'Guru', 'Hang', 'Hani', 'Hans', 'Hant',
'Hebr', 'Hira', 'Hmnp', 'Hung', 'Java', 'Jpan', 'Kana', 'Khmr', 'Knda', 'Kore',
'Lana', 'Laoo', 'Latin', 'Latn', 'Linb', 'Mahj', 'Marc', 'Mlym', 'Modi',
'Mong', 'Mtei', 'Mymr', 'Newa', 'Nkoo', 'Olck', 'Orya', 'Osge', 'Osma', 'Perm',
'Phag', 'Rohg', 'Shaw', 'Shrd', 'Sidd', 'Sinh', 'Sund', 'Sunu', 'Syrc', 'Takr',
'Talu', 'Taml', 'Tang', 'Tavt', 'Telu', 'Tfng', 'Tglg', 'Thaa', 'Thai', 'Tibt',
'Tirh', 'Tutg', 'Vaii', 'Yiii']
+ ['Adlm', 'Arab', 'Aran', 'Armn', 'Beng', 'Bhks', 'Brah', 'Cakm', 'Cans',
'Cham', 'Cher', 'Copt', 'Cprt', 'Cyrl', 'Cyrs', 'Deva', 'Dsrt', 'Elba', 'Ethi',
'Gara', 'Geor', 'Glag', 'Gran', 'Grek', 'Gujr', 'Guru', 'Hang', 'Hani', 'Hans',
'Hant', 'Hebr', 'Hira', 'Hmnp', 'Hung', 'Java', 'Jpan', 'Kana', 'Khmr', 'Knda',
'Kore', 'Lana', 'Laoo', 'Latin', 'Latn', 'Linb', 'Mahj', 'Marc', 'Mlym',
'Modi', 'Mong', 'Mtei', 'Mymr', 'Newa', 'Nkoo', 'Olck', 'Orya', 'Osge', 'Osma',
'Perm', 'Phag', 'Rohg', 'Shaw', 'Shrd', 'Sidd', 'Sinh', 'Sund', 'Sunu', 'Syrc',
'Takr', 'Talu', 'Taml', 'Tang', 'Tavt', 'Telu', 'Tfng', 'Tglg', 'Thaa', 'Thai',
'Tibt', 'Tirh', 'Tutg', 'Vaii', 'Yiii']
>>> print(list_all_input_methods()) # doctest: +NORMALIZE_WHITESPACE
['ibus/anthy', 'ibus/chewing', 'ibus/hangul', 'ibus/kkc',
'ibus/libpinyin', 'ibus/libzhuyin', 'ibus/m17n:ar:kbd',
'ibus/m17n:as:inscript2', 'ibus/m17n:bn:inscript2',
'ibus/m17n:brx:inscript2-deva', 'ibus/m17n:doi:inscript2-deva',
'ibus/m17n:gu:inscript2', 'ibus/m17n:hi:inscript2', 'ibus/m17n:kn:inscript2',
'ibus/m17n:kok:inscript2-deva', 'ibus/m17n:ks:inscript2-deva',
'ibus/m17n:ks:kbd', 'ibus/m17n:mai:inscript2', 'ibus/m17n:ml:inscript2',
'ibus/m17n:mni:inscript2-beng', 'ibus/m17n:mr:inscript2',
'ibus/m17n:ne:inscript2-deva', 'ibus/m17n:or:inscript2',
'ibus/m17n:pa:inscript2-guru', 'ibus/m17n:sa:inscript2',
'ibus/m17n:sat:inscript2-deva', 'ibus/m17n:sd:inscript2-deva',
'ibus/m17n:ta:inscript2', 'ibus/m17n:te:inscript2', 'ibus/m17n:ur:phonetic',
'ibus/m17n:vi:telex', 'ibus/table:cangjie5']
>>> print(list_all_console_fonts()) # doctest: +NORMALIZE_WHITESPACE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/langtable-0.0.70/tools/list-missing-regions-and-languages.sh
new/langtable-0.0.71/tools/list-missing-regions-and-languages.sh
--- old/langtable-0.0.70/tools/list-missing-regions-and-languages.sh
2024-02-08 18:27:27.000000000 +0100
+++ new/langtable-0.0.71/tools/list-missing-regions-and-languages.sh
2026-06-03 12:55:20.000000000 +0200
@@ -6,7 +6,7 @@
echo "Missing territories:"
MISSING_TERRITORIES=
MISSING_TERRITORIES_COUNT=0
-for i in $(locale -a | grep -a _ | perl -pe 's/.*_([A-Z]{2,2}).*/\1/g' | sort
| uniq ); do grep -q $i territories.xml; if [ $? -eq 1 ]; then
MISSING_TERRITORIES="$MISSING_TERRITORIES $i"; MISSING_TERRITORIES_COUNT=$(expr
$MISSING_TERRITORIES_COUNT + 1); fi; done
+for i in $(locale -a | grep -a _ | perl -pe 's/[a-z]{2,3}_([A-Z]{2,2}).*/\1/g'
| sort | uniq ); do grep -q "<territoryId>$i</territoryId>" territories.xml;
if [ $? -eq 1 ]; then MISSING_TERRITORIES="$MISSING_TERRITORIES $i";
MISSING_TERRITORIES_COUNT=$(expr $MISSING_TERRITORIES_COUNT + 1); fi; done
echo $MISSING_TERRITORIES
echo count=$MISSING_TERRITORIES_COUNT
@@ -30,7 +30,7 @@
echo "Missing locales in territories.xml:"
MISSING_LOCALES_IN_TERRITORIES=
MISSING_LOCALES_IN_TERRITORIES_COUNT=0
-for i in $(locale -a | grep -a utf8 | perl -pe 's/utf8/UTF-8/g' | grep -v
'\(C\|eo\|ia_FR\).UTF-8' | sort | uniq ); do grep -q "<localeId>$i</localeId>"
territories.xml; if [ $? -eq 1 ]; then
MISSING_LOCALES_IN_TERRITORIES="$MISSING_LOCALES_IN_TERRITORIES $i";
MISSING_LOCALES_IN_TERRITORIES_COUNT=$(expr
$MISSING_LOCALES_IN_TERRITORIES_COUNT + 1); fi; done
+for i in $(locale -a | grep -a utf8 | perl -pe 's/utf8/UTF-8/g' | grep -v
'\(C\|eo\|tok\|ia_FR\).UTF-8' | sort | uniq ); do grep -q
"<localeId>$i</localeId>" territories.xml; if [ $? -eq 1 ]; then
MISSING_LOCALES_IN_TERRITORIES="$MISSING_LOCALES_IN_TERRITORIES $i";
MISSING_LOCALES_IN_TERRITORIES_COUNT=$(expr
$MISSING_LOCALES_IN_TERRITORIES_COUNT + 1); fi; done
echo $MISSING_LOCALES_IN_TERRITORIES
echo count=$MISSING_LOCALES_IN_TERRITORIES_COUNT