Locale: Correct remaining pylint issues in maclocale.py.
This commit is contained in:
parent
e3a2797a33
commit
48d4196739
@ -74,7 +74,9 @@ locale, leaving $LANGUAGE unset (which is the same as setting it to
|
||||
#
|
||||
#------------------------------------------------------------------------
|
||||
|
||||
import os, subprocess, locale
|
||||
import os
|
||||
import subprocess
|
||||
import locale
|
||||
import logging
|
||||
LOG = logging.getLogger(".gramps.gen.utils.grampslocale.mac")
|
||||
LOG.propagate = True
|
||||
@ -93,10 +95,12 @@ def mac_setup_localization(glocale):
|
||||
args = ('/usr/bin/defaults', 'read',
|
||||
'org.gramps-project.gramps', key)
|
||||
|
||||
answer = subprocess.Popen(
|
||||
args,
|
||||
stderr=open("/dev/null"),
|
||||
stdout=subprocess.PIPE).communicate()[0]
|
||||
answer = None
|
||||
with subprocess.Popen(
|
||||
args,
|
||||
stderr=open("/dev/null", encoding='utf8'),
|
||||
stdout=subprocess.PIPE) as proc:
|
||||
answer = proc.communicate()[0]
|
||||
if not answer:
|
||||
LOG.debug("No prefs found for %s:%s", domain, key)
|
||||
return None
|
||||
@ -210,46 +214,22 @@ def mac_setup_localization(glocale):
|
||||
return None
|
||||
return apple_collation
|
||||
|
||||
#The action starts here
|
||||
_locale = None
|
||||
glocale.calendar = None
|
||||
try:
|
||||
locale.setlocale(locale.LC_ALL, '')
|
||||
_locale = locale.getlocale()
|
||||
except locale.Error as err:
|
||||
LOG.warning("Environment locale not usable: %s", str(err))
|
||||
|
||||
if not glocale.lang and _locale:
|
||||
if glocale.check_available_translations(_locale[0]):
|
||||
glocale.lang = '.'.join(_locale)
|
||||
else:
|
||||
LOG.debug("Environment locale %s not supported", _locale)
|
||||
|
||||
if not glocale.lang:
|
||||
LOG.debug("Setting from the environment didn't work out, checking "
|
||||
"defaults")
|
||||
(glocale.lang, glocale.calendar) = _mac_get_locale()
|
||||
|
||||
glocale.coll_qualifier = None
|
||||
glocale.collation = _mac_get_collation()
|
||||
|
||||
if not glocale.lang and glocale.collation:
|
||||
coll_parts = glocale.collation.split('@')
|
||||
glocale.lang = glocale.check_available_translations(coll_parts[0])
|
||||
|
||||
if not glocale.lang:
|
||||
glocale.lang = "en_US.UTF-8"
|
||||
|
||||
glocale.lang = locale.normalize(glocale.lang)
|
||||
if not glocale.lang.split('.')[1].lower() in ['utf8', 'utf-8']:
|
||||
LOG.debug('Forcing locale encoding to UTF-8')
|
||||
glocale.lang = '.'.join([glocale.lang.split('.')[0], 'UTF-8'])
|
||||
def _set_from_environment(glocale):
|
||||
_locale = None
|
||||
glocale.calendar = None
|
||||
try:
|
||||
locale.setlocale(locale.LC_ALL, glocale.lang)
|
||||
except locale.Error:
|
||||
LOG.debug('Attempt failed, locale %s unsupported', glocale.lang)
|
||||
glocale.encoding = glocale.lang.split('.')[1]
|
||||
if not glocale.language:
|
||||
locale.setlocale(locale.LC_ALL, '')
|
||||
_locale = locale.getlocale()
|
||||
except locale.Error as err:
|
||||
LOG.warning("Environment locale not usable: %s", str(err))
|
||||
|
||||
if not glocale.lang and _locale:
|
||||
if glocale.check_available_translations(_locale[0]):
|
||||
glocale.lang = '.'.join(_locale)
|
||||
else:
|
||||
LOG.debug("Environment locale %s not supported", _locale)
|
||||
|
||||
def _find_language(glocale):
|
||||
lang = locale.getlocale(locale.LC_MESSAGES)[0]
|
||||
language = [glocale.check_available_translations(lang)]
|
||||
if not language:
|
||||
@ -283,15 +263,49 @@ def mac_setup_localization(glocale):
|
||||
if not glocale.lang:
|
||||
glocale.lang = locale.normalize(glocale.language[0])
|
||||
glocale.encoding = glocale.lang.split('.')[1]
|
||||
LOG.debug("Ended check for languages with glocale.language %s",
|
||||
glocale.language)
|
||||
LOG.debug("Ended check for languages with glocale.language %s",
|
||||
glocale.language)
|
||||
|
||||
if not glocale.collation:
|
||||
glocale.collation = (locale.getlocale(locale.LC_COLLATE)[0] or
|
||||
glocale.lang)
|
||||
if not glocale.calendar:
|
||||
def _force_encoding(glocale):
|
||||
LOG.debug('Forcing locale encoding to UTF-8')
|
||||
glocale.lang = '.'.join([glocale.lang.split('.')[0], 'UTF-8'])
|
||||
try:
|
||||
locale.setlocale(locale.LC_ALL, glocale.lang)
|
||||
except locale.Error:
|
||||
LOG.debug('Attempt failed, locale %s unsupported', glocale.lang)
|
||||
|
||||
def _set_calendar_from_translation(glocale):
|
||||
time = locale.getlocale(locale.LC_TIME)[0]
|
||||
if glocale.check_available_translations(time):
|
||||
glocale.calendar = time
|
||||
else:
|
||||
glocale.calendar = glocale.lang[:5]
|
||||
|
||||
#The action starts here
|
||||
_set_from_environment(glocale)
|
||||
if not glocale.lang:
|
||||
LOG.debug("Setting from the environment didn't work out, checking "
|
||||
"defaults")
|
||||
(glocale.lang, glocale.calendar) = _mac_get_locale()
|
||||
|
||||
glocale.coll_qualifier = None
|
||||
glocale.collation = _mac_get_collation()
|
||||
|
||||
if not glocale.lang and glocale.collation:
|
||||
coll_parts = glocale.collation.split('@')
|
||||
glocale.lang = glocale.check_available_translations(coll_parts[0])
|
||||
|
||||
if not glocale.lang:
|
||||
glocale.lang = "en_US.UTF-8"
|
||||
|
||||
glocale.lang = locale.normalize(glocale.lang)
|
||||
if not glocale.lang.split('.')[1].lower() in ['utf8', 'utf-8']:
|
||||
_force_encoding(glocale)
|
||||
glocale.encoding = glocale.lang.split('.')[1]
|
||||
if not glocale.language:
|
||||
_find_language(glocale)
|
||||
if not glocale.collation:
|
||||
glocale.collation = (locale.getlocale(locale.LC_COLLATE)[0] or
|
||||
glocale.lang)
|
||||
if not glocale.calendar:
|
||||
_set_calendar_from_translation(glocale)
|
||||
|
Loading…
Reference in New Issue
Block a user