Better handling of LANG. My code need to be tided up.

svn: r14212
This commit is contained in:
Peter Landgren 2010-02-04 16:15:31 +00:00
parent af1de6aaf6
commit d3f04fc6ee

View File

@ -1788,7 +1788,7 @@ def get_relationship_calculator(reinit=False):
lang = ' '
try:
lang = os.environ["LANG"]
_LANG_SET = True
lang_set = True
except:
# if LANG is not set
import locale
@ -1796,25 +1796,39 @@ def get_relationship_calculator(reinit=False):
if not lang:
# if lang is empty/None
lang = locale.getdefaultlocale()[0]
_LANG_SET = False
lang_set = False
__RELCALC_CLASS = RelationshipCalculator
# set correct relationship calculator based on LANG
relation_translation_found = False
for plugin in PluginRegister.get_instance().relcalc_plugins():
if not lang in plugin.lang_list and _LANG_SET:
# LANG set but with non recognizable language info. Try getlocale
import locale
lang = locale.getlocale()[0]
if not lang:
# if lang is empty/None
lang = locale.getdefaultlocale()[0]
if lang in plugin.lang_list:
pmgr = BasePluginManager.get_instance()
# the loaded module is put in variable mod
mod = pmgr.load_plugin(plugin)
if mod:
__RELCALC_CLASS = eval('mod.' + plugin.relcalcclass)
relation_translation_found = True
break
if not relation_translation_found:
# LANG set but with non recognizable language info. Try getlocale
import locale
lang = locale.getlocale()[0]
if not lang:
# if lang is empty/None
lang = locale.getdefaultlocale()[0]
for plugin in PluginRegister.get_instance().relcalc_plugins():
if lang in plugin.lang_list:
pmgr = BasePluginManager.get_instance()
# the loaded module is put in variable mod
mod = pmgr.load_plugin(plugin)
if mod:
__RELCALC_CLASS = eval('mod.' + plugin.relcalcclass)
relation_translation_found = True
break
if not relation_translation_found and \
len(PluginRegister.get_instance().relcalc_plugins()):
print "No language available or wrong code in rel_xx.py."
print "English will be used."
return __RELCALC_CLASS()
#-------------------------------------------------------------------------