Hello community,
here is the log from the commit of package python-langtable for
openSUSE:Leap:15.2 checked in at 2020-04-18 18:41:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.2/python-langtable (Old)
and /work/SRC/openSUSE:Leap:15.2/.python-langtable.new.2738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-langtable"
Sat Apr 18 18:41:21 2020 rev:2 rq:795338 version:0.0.51
Changes:
--------
--- /work/SRC/openSUSE:Leap:15.2/python-langtable/python-langtable.changes
2020-02-22 17:51:35.473668222 +0100
+++
/work/SRC/openSUSE:Leap:15.2/.python-langtable.new.2738/python-langtable.changes
2020-04-18 18:41:22.369996983 +0200
@@ -1,0 +2,12 @@
+Wed Apr 15 10:32:10 UTC 2020 - Marketa Calabkova <[email protected]>
+
+- update to version 0.0.51
+ * Parse stuff in glibc locale names after @ which is not a script as a
variant
+ * Add ckb_IQ.UTF-8 locale
+ * Make parse_locale() return something reasonable for
+ C, POSIX, en_US_POSIX, and C.UTF-8
+ * Fix exception in language_name() when called with languageId=''
+ * Add new public function parse_locale()
+ * Let info() print a bit more stuff
+
+-------------------------------------------------------------------
Old:
----
langtable-0.0.48.tar.gz
New:
----
langtable-0.0.51.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-langtable.spec ++++++
--- /var/tmp/diff_new_pack.tg8OJR/_old 2020-04-18 18:41:22.713997709 +0200
+++ /var/tmp/diff_new_pack.tg8OJR/_new 2020-04-18 18:41:22.713997709 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-langtable
#
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,14 +18,14 @@
%define skip_python2 1
Name: python-langtable
-Version: 0.0.48
+Version: 0.0.51
Release: 0
Summary: Database to guess defaults for locale settings
# the translations in languages.xml and territories.xml are (mostly)
# imported from CLDR and are thus under the Unicode license, the
# short name for this license is "MIT", see:
#
https://fedoraproject.org/wiki/Licensing:MIT?rd=Licensing/MIT#Modern_Style_without_sublicense_.28Unicode.29
-License: GPL-3.0+
+License: GPL-3.0-or-later
Group: System/Localization
URL: https://github.com/mike-fabian/langtable
Source0:
https://github.com/mike-fabian/langtable/releases/download/%{version}/langtable-%{version}.tar.gz
++++++ langtable-0.0.48.tar.gz -> langtable-0.0.51.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/langtable-0.0.48/ChangeLog
new/langtable-0.0.51/ChangeLog
--- old/langtable-0.0.48/ChangeLog 2019-11-06 06:40:37.000000000 +0100
+++ new/langtable-0.0.51/ChangeLog 2020-01-14 11:12:57.000000000 +0100
@@ -1,3 +1,19 @@
+2020-01-14 Mike FABIAN <[email protected]>
+
+ * Parse stuff in glibc locale names after @ which is not a script as a
variant
+ * Add ckb_IQ.UTF-8 locale
+
+2019-12-20 Mike FABIAN <[email protected]>
+
+ * Make parse_locale() return something reasonable for
+ C, POSIX, en_US_POSIX, and C.UTF-8
+ * Fix exception in language_name() when called with languageId=''
+
+2019-12-12 Mike FABIAN <[email protected]>
+
+ * Add new public function parse_locale()
+ * Let info() print a bit more stuff
+
2019-11-05 Mike FABIAN <[email protected]>
* Fix typo in mo entry
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/langtable-0.0.48/PKG-INFO
new/langtable-0.0.51/PKG-INFO
--- old/langtable-0.0.48/PKG-INFO 2019-11-06 06:41:41.000000000 +0100
+++ new/langtable-0.0.51/PKG-INFO 2020-01-14 11:40:29.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: langtable
-Version: 0.0.48
+Version: 0.0.51
Summary: guess reasonable defaults for locale, keyboard, territory, ...
Home-page: https://github.com/mike-fabian/langtable
Author: Mike FABIAN
Binary files old/langtable-0.0.48/langtable/data/languages.xml.gz and
new/langtable-0.0.51/langtable/data/languages.xml.gz differ
Binary files old/langtable-0.0.48/langtable/data/territories.xml.gz and
new/langtable-0.0.51/langtable/data/territories.xml.gz differ
Binary files old/langtable-0.0.48/langtable/data/timezoneidparts.xml.gz and
new/langtable-0.0.51/langtable/data/timezoneidparts.xml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/langtable-0.0.48/langtable/langtable.py
new/langtable-0.0.51/langtable/langtable.py
--- old/langtable-0.0.48/langtable/langtable.py 2019-11-06 06:41:24.000000000
+0100
+++ new/langtable-0.0.51/langtable/langtable.py 2020-01-14 11:09:55.000000000
+0100
@@ -18,6 +18,7 @@
######################################################################
# Public API:
#
+# parse_locale()
# list_locales()
# list_keyboards()
# list_consolefonts()
@@ -97,10 +98,15 @@
import re
import logging
import gzip
+import collections
import xml.parsers.expat
from xml.sax.handler import ContentHandler
+Locale = collections.namedtuple(
+ 'Locale',
+ ['language', 'script', 'territory', 'variant', 'encoding'])
+
_INFO = {'data_files_read': []}
# will be replaced by “make install”:
@@ -965,7 +971,172 @@
break
return ranked_list
-def _parse_and_split_languageId(languageId=None, scriptId=None,
territoryId=None):
+def parse_locale(localeId):
+ '''
+ Parses a locale name in glibc or CLDR format and returns
+ language, script, territory, variant, and encoding
+
+ :param localeId: The name of the locale
+ :type localeId: string
+ :return: The parts of the locale: language, script, territory, variant,
encoding
+ :rtype: A namedtuple of strings
+ Locale(language=string,
+ script=string,
+ territory=string,
+ variant=string,
+ encoding=string)
+
+ It replaces glibc names for scripts like “latin”
+ with the iso-15924 script names like “Latn”.
+ I.e. these inputs all give the same result:
+
+ “sr_latin_RS”
+ “sr_Latn_RS”
+ “sr_RS@latin”
+ “sr_RS@Latn”
+
+ Examples:
+
+ >>> parse_locale('de_DE')
+ Locale(language='de', script='', territory='DE', variant='', encoding='')
+
+ >>> parse_locale('de_DE.UTF-8')
+ Locale(language='de', script='', territory='DE', variant='',
encoding='UTF-8')
+
+ >>> parse_locale('de_DE.utf8')
+ Locale(language='de', script='', territory='DE', variant='',
encoding='utf8')
+
+ >>> parse_locale('de_DE@euro')
+ Locale(language='de', script='', territory='DE', variant='EURO',
encoding='')
+
+ >>> parse_locale('de_DE.ISO-8859-15')
+ Locale(language='de', script='', territory='DE', variant='',
encoding='ISO-8859-15')
+
+ >>> parse_locale('de_DE.ISO-8859-15@euro')
+ Locale(language='de', script='', territory='DE', variant='EURO',
encoding='ISO-8859-15')
+
+ >>> parse_locale('de_DE.iso885915@euro')
+ Locale(language='de', script='', territory='DE', variant='EURO',
encoding='iso885915')
+
+ >>> parse_locale('gez_ER.UTF-8@abegede')
+ Locale(language='gez', script='', territory='ER', variant='ABEGEDE',
encoding='UTF-8')
+
+ >>> parse_locale('ar_ER.UTF-8@saaho')
+ Locale(language='ar', script='', territory='ER', variant='SAAHO',
encoding='UTF-8')
+
+ >>> parse_locale('zh_Hant_TW')
+ Locale(language='zh', script='Hant', territory='TW', variant='',
encoding='')
+
+ >>> parse_locale('zh_TW')
+ Locale(language='zh', script='', territory='TW', variant='', encoding='')
+
+ >>> parse_locale('es_419')
+ Locale(language='es', script='', territory='419', variant='', encoding='')
+
+ >>> parse_locale('sr_latin_RS')
+ Locale(language='sr', script='Latn', territory='RS', variant='',
encoding='')
+
+ >>> parse_locale('sr_Latn_RS')
+ Locale(language='sr', script='Latn', territory='RS', variant='',
encoding='')
+
+ >>> parse_locale('sr_RS@latin')
+ Locale(language='sr', script='Latn', territory='RS', variant='',
encoding='')
+
+ >>> parse_locale('sr_RS@Latn')
+ Locale(language='sr', script='Latn', territory='RS', variant='',
encoding='')
+
+ >>> parse_locale('sr_RS.UTF-8@latin')
+ Locale(language='sr', script='Latn', territory='RS', variant='',
encoding='UTF-8')
+
+ >>> parse_locale('ca_ES')
+ Locale(language='ca', script='', territory='ES', variant='', encoding='')
+
+ >>> parse_locale('ca_ES.UTF-8')
+ Locale(language='ca', script='', territory='ES', variant='',
encoding='UTF-8')
+
+ >>> parse_locale('ca_ES_VALENCIA')
+ Locale(language='ca', script='', territory='ES', variant='VALENCIA',
encoding='')
+
+ >>> parse_locale('ca_Latn_ES_VALENCIA')
+ Locale(language='ca', script='Latn', territory='ES', variant='VALENCIA',
encoding='')
+
+ >>> parse_locale('ca_ES.UTF-8@valencia')
+ Locale(language='ca', script='', territory='ES', variant='VALENCIA',
encoding='UTF-8')
+
+ >>> parse_locale('ca_ES@valencia')
+ Locale(language='ca', script='', territory='ES', variant='VALENCIA',
encoding='')
+
+ >>> parse_locale('en_US_POSIX')
+ Locale(language='en', script='', territory='US', variant='POSIX',
encoding='')
+
+ >>> parse_locale('POSIX')
+ Locale(language='en', script='', territory='US', variant='POSIX',
encoding='')
+
+ >>> parse_locale('C')
+ Locale(language='en', script='', territory='US', variant='POSIX',
encoding='')
+
+ >>> parse_locale('C.UTF-8')
+ Locale(language='en', script='', territory='US', variant='POSIX',
encoding='UTF-8')
+ '''
+ language = ''
+ script = ''
+ territory = ''
+ variant = ''
+ encoding = ''
+ if localeId:
+ dot_index = localeId.find('.')
+ at_index = localeId.find('@')
+ if dot_index >= 0 and at_index > dot_index:
+ encoding = localeId[dot_index + 1:at_index]
+ localeId = localeId[:dot_index] + localeId[at_index:]
+ elif dot_index >= 0:
+ encoding = localeId[dot_index + 1:]
+ localeId = localeId[:dot_index]
+ if localeId:
+ valencia_index = localeId.lower().find('@valencia')
+ if valencia_index < 0:
+ valencia_index = localeId.upper().find('_VALENCIA')
+ if valencia_index >= 0:
+ variant = 'VALENCIA'
+ localeId = localeId[:valencia_index]
+ if localeId:
+ if localeId in ('C', 'POSIX', 'en_US_POSIX'):
+ language = 'en'
+ territory = 'US'
+ variant = 'POSIX'
+ localeId = ''
+ if localeId:
+ for key in _glibc_script_ids:
+ localeId = localeId.replace(key, _glibc_script_ids[key])
+ if localeId.endswith('@' + _glibc_script_ids[key]):
+ script = _glibc_script_ids[key]
+ localeId = localeId.replace('@' + _glibc_script_ids[key], '')
+ if localeId:
+ at_index = localeId.find('@')
+ if at_index >= 0:
+ # If there is still an @ followed by something, it is not
+ # a known script, otherwise it would have been parsed as a
+ # script in the previous section. In that case it is a
+ # variant of the locale.
+ variant = localeId[at_index + 1:].upper()
+ localeId = localeId[:at_index]
+ if localeId:
+ match = _cldr_locale_pattern.match(localeId)
+ if match:
+ language = match.group('language')
+ if match.group('script'):
+ script = match.group('script')
+ if match.group('territory'):
+ territory = match.group('territory')
+ else:
+ logging.info("localeId contains invalid locale id=%s" %localeId)
+ return Locale(language=language,
+ script=script,
+ territory=territory,
+ variant=variant,
+ encoding=encoding)
+
+def _parse_and_split_languageId(languageId='', scriptId='', territoryId=''):
'''
Parses languageId and if it contains a valid ICU locale id,
returns the values for language, script, and territory found
@@ -980,71 +1151,123 @@
Examples:
>>> _parse_and_split_languageId(languageId='de_DE')
- ('de', None, 'DE')
+ Locale(language='de', script='', territory='DE', variant='', encoding='')
+
+ >>> _parse_and_split_languageId(languageId='de_DE.UTF-8')
+ Locale(language='de', script='', territory='DE', variant='',
encoding='UTF-8')
+
+ >>> _parse_and_split_languageId(languageId='de_DE.utf8')
+ Locale(language='de', script='', territory='DE', variant='',
encoding='utf8')
+
+ >>> _parse_and_split_languageId(languageId='de_DE@euro')
+ Locale(language='de', script='', territory='DE', variant='EURO',
encoding='')
+
+ >>> _parse_and_split_languageId(languageId='de_DE.ISO-8859-15')
+ Locale(language='de', script='', territory='DE', variant='',
encoding='ISO-8859-15')
+
+ >>> _parse_and_split_languageId(languageId='de_DE.ISO-8859-15@euro')
+ Locale(language='de', script='', territory='DE', variant='EURO',
encoding='ISO-8859-15')
+
+ >>> _parse_and_split_languageId(languageId='de_DE.iso885915@euro')
+ Locale(language='de', script='', territory='DE', variant='EURO',
encoding='iso885915')
+
+ >>> _parse_and_split_languageId(languageId='gez_ER.UTF-8@abegede')
+ Locale(language='gez', script='', territory='ER', variant='ABEGEDE',
encoding='UTF-8')
+
+ >>> _parse_and_split_languageId(languageId='ar_ER.UTF-8@saaho')
+ Locale(language='ar', script='', territory='ER', variant='SAAHO',
encoding='UTF-8')
>>> _parse_and_split_languageId(languageId='zh_Hant_TW')
- ('zh', 'Hant', 'TW')
+ Locale(language='zh', script='Hant', territory='TW', variant='',
encoding='')
+
+ >>> _parse_and_split_languageId(languageId='zh_TW')
+ Locale(language='zh', script='Hant', territory='TW', variant='',
encoding='')
+
+ >>> _parse_and_split_languageId(languageId='zh_Hans_CN')
+ Locale(language='zh', script='Hans', territory='CN', variant='',
encoding='')
+
+ >>> _parse_and_split_languageId(languageId='zh_CN')
+ Locale(language='zh', script='Hans', territory='CN', variant='',
encoding='')
>>> _parse_and_split_languageId(languageId='es_419')
- ('es', None, '419')
+ Locale(language='es', script='', territory='419', variant='', encoding='')
>>> _parse_and_split_languageId(languageId='sr_latin_RS')
- ('sr', 'Latn', 'RS')
+ Locale(language='sr', script='Latn', territory='RS', variant='',
encoding='')
>>> _parse_and_split_languageId(languageId='sr_Latn_RS')
- ('sr', 'Latn', 'RS')
+ Locale(language='sr', script='Latn', territory='RS', variant='',
encoding='')
>>> _parse_and_split_languageId(languageId='ca_ES')
- ('ca', None, 'ES')
+ Locale(language='ca', script='', territory='ES', variant='', encoding='')
>>> _parse_and_split_languageId(languageId='ca_ES.UTF-8')
- ('ca', None, 'ES')
+ Locale(language='ca', script='', territory='ES', variant='',
encoding='UTF-8')
>>> _parse_and_split_languageId(languageId='ca_ES_VALENCIA')
- ('ca_ES_VALENCIA', None, None)
+ Locale(language='ca_ES_VALENCIA', script='', territory='ES',
variant='VALENCIA', encoding='')
+
+ >>> _parse_and_split_languageId(languageId='ca_Latn_ES_VALENCIA')
+ Locale(language='ca_ES_VALENCIA', script='Latn', territory='ES',
variant='VALENCIA', encoding='')
+
+ >>> _parse_and_split_languageId(languageId='ca_Latn_ES_valencia')
+ Locale(language='ca_ES_VALENCIA', script='Latn', territory='ES',
variant='VALENCIA', encoding='')
>>> _parse_and_split_languageId(languageId='ca_ES.UTF-8@valencia')
- ('ca_ES_VALENCIA', None, None)
+ Locale(language='ca_ES_VALENCIA', script='', territory='ES',
variant='VALENCIA', encoding='UTF-8')
>>> _parse_and_split_languageId(languageId='ca_ES@valencia')
- ('ca_ES_VALENCIA', None, None)
+ Locale(language='ca_ES_VALENCIA', script='', territory='ES',
variant='VALENCIA', encoding='')
+
+ >>> _parse_and_split_languageId(languageId='ca_Latn_ES@valencia')
+ Locale(language='ca_ES_VALENCIA', script='Latn', territory='ES',
variant='VALENCIA', encoding='')
+
+ >>> _parse_and_split_languageId(languageId='ca_Latn_ES@VALENCIA')
+ Locale(language='ca_ES_VALENCIA', script='Latn', territory='ES',
variant='VALENCIA', encoding='')
'''
- if languageId and languageId.lower().find('valencia') >= 0:
- languageId = 'ca_ES_VALENCIA'
- scriptId = None
- territoryId = None
- if languageId:
- dot_index = languageId.find('.')
- at_index = languageId.find('@')
- if dot_index >= 0 and at_index > dot_index:
- languageId = languageId[:dot_index] + languageId[at_index:]
- elif dot_index >= 0:
- languageId = languageId[:dot_index]
- for key in _glibc_script_ids:
- if scriptId:
- scriptId = scriptId.replace(key, _glibc_script_ids[key])
- if languageId:
- if languageId.endswith('@'+key):
- scriptId = _glibc_script_ids[key]
- languageId = languageId.replace(key, _glibc_script_ids[key])
- if (languageId):
- match = _cldr_locale_pattern.match(languageId)
- if match:
- languageId = match.group('language')
- if match.group('script'):
- scriptId = match.group('script')
- if match.group('territory'):
- territoryId = match.group('territory')
- else:
- logging.info("languageId contains invalid locale id=%s"
%languageId)
+ locale = parse_locale(languageId)
+ if locale.variant == 'POSIX': # ignore the posix variant
+ locale = Locale(language=locale.language,
+ script=locale.script,
+ territory=locale.territory,
+ variant='',
+ encoding=locale.encoding)
+ if locale.variant == 'VALENCIA':
+ locale = Locale(language='ca_ES_VALENCIA',
+ script=locale.script,
+ territory=locale.territory,
+ variant=locale.variant,
+ encoding=locale.encoding)
+ if not locale.script and scriptId:
+ if scriptId in _glibc_script_ids:
+ scriptId = _glibc_script_ids[scriptId]
+ locale = Locale(language=locale.language,
+ script=scriptId,
+ territory=locale.territory,
+ variant=locale.variant,
+ encoding=locale.encoding)
+ if not locale.territory and territoryId:
+ locale = Locale(language=locale.language,
+ script=locale.script,
+ territory=territoryId,
+ variant=locale.variant,
+ encoding=locale.encoding)
# if the language is Chinese and only the territory is given
# but not the script, add the default script for the territory:
- if languageId in ('zh', 'cmn') and territoryId and not scriptId:
- if territoryId in ['CN', 'SG']:
- scriptId = 'Hans'
- elif territoryId in ['HK', 'MO', 'TW']:
- scriptId = 'Hant'
- return (languageId, scriptId, territoryId)
+ if locale.language in ('zh', 'cmn') and locale.territory and not
locale.script:
+ if locale.territory in ['CN', 'SG']:
+ locale = Locale(language=locale.language,
+ script='Hans',
+ territory=locale.territory,
+ variant=locale.variant,
+ encoding=locale.encoding)
+ elif locale.territory in ['HK', 'MO', 'TW']:
+ locale = Locale(language=locale.language,
+ script='Hant',
+ territory=locale.territory,
+ variant=locale.variant,
+ encoding=locale.encoding)
+ return locale
def territory_name(territoryId = None, languageIdQuery = None, scriptIdQuery =
None, territoryIdQuery = None, fallback=True):
u'''Query translations of territory names
@@ -1079,10 +1302,12 @@
>>> print(territory_name(territoryId="CH", languageIdQuery="ja"))
スイス
'''
- languageIdQuery, scriptIdQuery, territoryIdQuery =
_parse_and_split_languageId(
- languageId=languageIdQuery,
- scriptId=scriptIdQuery,
- territoryId=territoryIdQuery)
+ locale = _parse_and_split_languageId(languageId=languageIdQuery,
+ scriptId=scriptIdQuery,
+ territoryId=territoryIdQuery)
+ languageIdQuery = locale.language
+ scriptIdQuery = locale.script
+ territoryIdQuery = locale.territory
if territoryId in _territories_db:
if languageIdQuery and scriptIdQuery and territoryIdQuery:
icuLocaleIdQuery =
languageIdQuery+'_'+scriptIdQuery+'_'+territoryIdQuery
@@ -1161,15 +1386,43 @@
>>> print(language_name(languageId="es_419", languageIdQuery="en"))
Spanish (Latin America)
+
+ >>> print(language_name(languageId="ca_ES"))
+ català (Espanya)
+
+ >>> print(language_name(languageId="ca_ES.UTF-8"))
+ català (Espanya)
+
+ >>> print(language_name(languageId="ca_ES@valencia"))
+ valencià (Espanya)
+
+ >>> print(language_name(languageId="ca_ES.utf8@valencia"))
+ valencià (Espanya)
+
+ >>> print(language_name(languageId="ca_ES.utf8@valencia"))
+ valencià (Espanya)
+
+ >>> print(language_name(languageId="ca_ES.utf8@valencia",
languageIdQuery='de'))
+ Valencianisch (Spanien)
+
+ >>> print(language_name(languageId="ca_ES.utf8@valencia",
languageIdQuery='en'))
+ Valencian (Spain)
'''
- languageId, scriptId, territoryId = _parse_and_split_languageId(
- languageId=languageId,
- scriptId=scriptId,
- territoryId=territoryId)
- languageIdQuery, scriptIdQuery, territoryIdQuery =
_parse_and_split_languageId(
- languageId=languageIdQuery,
- scriptId=scriptIdQuery,
- territoryId=territoryIdQuery)
+ if not languageId:
+ return ''
+ icuLocaleId = ''
+ locale = _parse_and_split_languageId(languageId=languageId,
+ scriptId=scriptId,
+ territoryId=territoryId)
+ languageId = locale.language
+ scriptId = locale.script
+ territoryId = locale.territory
+ localeQuery = _parse_and_split_languageId(languageId=languageIdQuery,
+ scriptId=scriptIdQuery,
+ territoryId=territoryIdQuery)
+ languageIdQuery = localeQuery.language
+ scriptIdQuery = localeQuery.script
+ territoryIdQuery = localeQuery.territory
if not languageIdQuery:
# get the endonym
languageIdQuery = languageId
@@ -1248,35 +1501,37 @@
icuLocaleIdQuery = languageIdQuery
if icuLocaleIdQuery in _languages_db[icuLocaleId].names:
return _languages_db[icuLocaleId].names[icuLocaleIdQuery]
- lname = language_name(languageId=languageId,
- languageIdQuery=languageIdQuery,
- scriptIdQuery=scriptIdQuery,
- territoryIdQuery=territoryIdQuery)
- cname = territory_name(territoryId=territoryId,
- languageIdQuery=languageIdQuery,
- scriptIdQuery=scriptIdQuery,
- territoryIdQuery=territoryIdQuery)
- if lname and cname:
- return lname + ' ('+cname+')'
- if languageId:
- icuLocaleId = languageId
- if icuLocaleId in _languages_db:
- if languageIdQuery and scriptIdQuery and territoryIdQuery:
- icuLocaleIdQuery =
languageIdQuery+'_'+scriptIdQuery+'_'+territoryIdQuery
- if icuLocaleIdQuery in _languages_db[icuLocaleId].names:
- return _languages_db[icuLocaleId].names[icuLocaleIdQuery]
- if languageIdQuery and scriptIdQuery:
- icuLocaleIdQuery = languageIdQuery+'_'+scriptIdQuery
- if icuLocaleIdQuery in _languages_db[icuLocaleId].names:
- return _languages_db[icuLocaleId].names[icuLocaleIdQuery]
- if languageIdQuery and territoryIdQuery:
- icuLocaleIdQuery = languageIdQuery+'_'+territoryIdQuery
- if icuLocaleIdQuery in _languages_db[icuLocaleId].names:
- return _languages_db[icuLocaleId].names[icuLocaleIdQuery]
- if languageIdQuery:
- icuLocaleIdQuery = languageIdQuery
- if icuLocaleIdQuery in _languages_db[icuLocaleId].names:
- return _languages_db[icuLocaleId].names[icuLocaleIdQuery]
+ if not locale.variant in ('VALENCIA',):
+ # Don’t do this if locale variant is VALENCIA
+ # because then this will run into endless recursion:
+ lname = language_name(languageId=languageId,
+ languageIdQuery=languageIdQuery,
+ scriptIdQuery=scriptIdQuery,
+ territoryIdQuery=territoryIdQuery)
+ cname = territory_name(territoryId=territoryId,
+ languageIdQuery=languageIdQuery,
+ scriptIdQuery=scriptIdQuery,
+ territoryIdQuery=territoryIdQuery)
+ if lname and cname:
+ return lname + ' ('+cname+')'
+ icuLocaleId = languageId
+ if icuLocaleId in _languages_db:
+ if languageIdQuery and scriptIdQuery and territoryIdQuery:
+ icuLocaleIdQuery =
languageIdQuery+'_'+scriptIdQuery+'_'+territoryIdQuery
+ if icuLocaleIdQuery in _languages_db[icuLocaleId].names:
+ return _languages_db[icuLocaleId].names[icuLocaleIdQuery]
+ if languageIdQuery and scriptIdQuery:
+ icuLocaleIdQuery = languageIdQuery+'_'+scriptIdQuery
+ if icuLocaleIdQuery in _languages_db[icuLocaleId].names:
+ return _languages_db[icuLocaleId].names[icuLocaleIdQuery]
+ if languageIdQuery and territoryIdQuery:
+ icuLocaleIdQuery = languageIdQuery+'_'+territoryIdQuery
+ if icuLocaleIdQuery in _languages_db[icuLocaleId].names:
+ return _languages_db[icuLocaleId].names[icuLocaleIdQuery]
+ if languageIdQuery:
+ icuLocaleIdQuery = languageIdQuery
+ if icuLocaleIdQuery in _languages_db[icuLocaleId].names:
+ return _languages_db[icuLocaleId].names[icuLocaleIdQuery]
if (fallback
and icuLocaleId
and icuLocaleId in _languages_db
@@ -1346,10 +1601,12 @@
>>> print(timezone_name(timezoneId='Pacific/Pago_Pago',
languageIdQuery='xxx'))
Pacific/Pago_Pago
'''
- languageIdQuery, scriptIdQuery, territoryIdQuery =
_parse_and_split_languageId(
- languageId=languageIdQuery,
- scriptId=scriptIdQuery,
- territoryId=territoryIdQuery)
+ locale = _parse_and_split_languageId(languageId=languageIdQuery,
+ scriptId=scriptIdQuery,
+ territoryId=territoryIdQuery)
+ languageIdQuery = locale.language
+ scriptIdQuery = locale.script
+ territoryIdQuery = locale.territory
if languageIdQuery and scriptIdQuery and territoryIdQuery:
name = _timezone_name(
timezoneId=timezoneId,
@@ -1510,10 +1767,12 @@
'''
ranked_locales = {}
skipTerritory = False
- languageId, scriptId, territoryId = _parse_and_split_languageId(
- languageId=languageId,
- scriptId=scriptId,
- territoryId=territoryId)
+ locale = _parse_and_split_languageId(languageId=languageId,
+ scriptId=scriptId,
+ territoryId=territoryId)
+ languageId = locale.language
+ scriptId = locale.script
+ territoryId = locale.territory
if languageId and scriptId and territoryId and
languageId+'_'+scriptId+'_'+territoryId in _languages_db:
languageId = languageId+'_'+scriptId+'_'+territoryId
skipTerritory = True
@@ -1608,10 +1867,12 @@
'''
ranked_scripts = {}
skipTerritory = False
- languageId, scriptId, territoryId = _parse_and_split_languageId(
- languageId=languageId,
- scriptId=scriptId,
- territoryId=territoryId)
+ locale = _parse_and_split_languageId(languageId=languageId,
+ scriptId=scriptId,
+ territoryId=territoryId)
+ languageId = locale.language
+ scriptId = locale.script
+ territoryId = locale.territory
if scriptId:
# scriptId is already given in the input, just return it:
return [scriptId]
@@ -1679,10 +1940,12 @@
'''
ranked_inputmethods = {}
skipTerritory = False
- languageId, scriptId, territoryId = _parse_and_split_languageId(
- languageId=languageId,
- scriptId=scriptId,
- territoryId=territoryId)
+ locale = _parse_and_split_languageId(languageId=languageId,
+ scriptId=scriptId,
+ territoryId=territoryId)
+ languageId = locale.language
+ scriptId = locale.script
+ territoryId = locale.territory
if languageId and scriptId and territoryId and
languageId+'_'+scriptId+'_'+territoryId in _languages_db:
languageId = languageId+'_'+scriptId+'_'+territoryId
skipTerritory = True
@@ -1755,10 +2018,12 @@
'''
ranked_keyboards = {}
skipTerritory = False
- languageId, scriptId, territoryId = _parse_and_split_languageId(
- languageId=languageId,
- scriptId=scriptId,
- territoryId=territoryId)
+ locale = _parse_and_split_languageId(languageId=languageId,
+ scriptId=scriptId,
+ territoryId=territoryId)
+ languageId = locale.language
+ scriptId = locale.script
+ territoryId = locale.territory
if languageId and scriptId and territoryId and
languageId+'_'+scriptId+'_'+territoryId in _languages_db:
languageId = languageId+'_'+scriptId+'_'+territoryId
skipTerritory = True
@@ -1852,10 +2117,12 @@
'''
ranked_consolefonts = {}
skipTerritory = False
- languageId, scriptId, territoryId = _parse_and_split_languageId(
- languageId=languageId,
- scriptId=scriptId,
- territoryId=territoryId)
+ locale = _parse_and_split_languageId(languageId=languageId,
+ scriptId=scriptId,
+ territoryId=territoryId)
+ languageId = locale.language
+ scriptId = locale.script
+ territoryId = locale.territory
if languageId and scriptId and territoryId and
languageId+'_'+scriptId+'_'+territoryId in _languages_db:
languageId = languageId+'_'+scriptId+'_'+territoryId
skipTerritory = True
@@ -1931,10 +2198,12 @@
'''
ranked_timezones = {}
skipTerritory = False
- languageId, scriptId, territoryId = _parse_and_split_languageId(
- languageId=languageId,
- scriptId=scriptId,
- territoryId=territoryId)
+ locale = _parse_and_split_languageId(languageId=languageId,
+ scriptId=scriptId,
+ territoryId=territoryId)
+ languageId = locale.language
+ scriptId = locale.script
+ territoryId = locale.territory
if languageId and scriptId and territoryId and
languageId+'_'+scriptId+'_'+territoryId in _languages_db:
languageId = languageId+'_'+scriptId+'_'+territoryId
skipTerritory = True
@@ -2006,8 +2275,12 @@
Print some info about langtable
'''
import pkg_resources # part of setuptools
+ 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
+ print('Project name: = %s' %project_name)
print('Version: = %s' %version)
+ print('Module path: = %s' %module_path)
print('Loaded from: %s' %os.path.realpath(__file__))
print('Data files read: %s' %_INFO['data_files_read'])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/langtable-0.0.48/langtable.egg-info/PKG-INFO
new/langtable-0.0.51/langtable.egg-info/PKG-INFO
--- old/langtable-0.0.48/langtable.egg-info/PKG-INFO 2019-11-06
06:41:40.000000000 +0100
+++ new/langtable-0.0.51/langtable.egg-info/PKG-INFO 2020-01-14
11:40:29.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: langtable
-Version: 0.0.48
+Version: 0.0.51
Summary: guess reasonable defaults for locale, keyboard, territory, ...
Home-page: https://github.com/mike-fabian/langtable
Author: Mike FABIAN
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/langtable-0.0.48/setup.py
new/langtable-0.0.51/setup.py
--- old/langtable-0.0.48/setup.py 2019-11-06 06:40:37.000000000 +0100
+++ new/langtable-0.0.51/setup.py 2020-01-14 11:12:15.000000000 +0100
@@ -8,7 +8,7 @@
# within the egg directory easily:
zip_safe=False,
name='langtable',
- version='0.0.48',
+ version='0.0.51',
packages=setuptools.find_packages(),
description='guess reasonable defaults for locale, keyboard, territory,
...',
long_description=codecs.open('README', encoding='UTF-8').read(),