From 7a7874fc474951af0e8d6fabb84406cc35c09306 Mon Sep 17 00:00:00 2001 From: Juhani Numminen Date: Mon, 12 Aug 2019 12:37:24 +0300 Subject: [PATCH] Refactor and comment locale_dir selection --- pysollib/init.py | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/pysollib/init.py b/pysollib/init.py index 4a56b023..44cbfd40 100644 --- a/pysollib/init.py +++ b/pysollib/init.py @@ -51,18 +51,21 @@ def init(): locale.setlocale(locale.LC_ALL, '') # install gettext - # locale_dir = 'locale' - locale_dir = None - if os.path.isdir(sys.path[0]): - d = os.path.join(sys.path[0], 'locale') - else: - # i.e. library.zip - d = os.path.join(os.path.dirname(sys.path[0]), 'locale') - if os.path.exists(d) and os.path.isdir(d): - locale_dir = d - # if locale_dir: locale_dir = os.path.normpath(locale_dir) - # gettext.install('pysol', locale_dir, unicode=True) # ngettext don't work - gettext.bindtextdomain('pysol', locale_dir) + locale_locations = ( + # locale/ next to the pysol.py script + sys.path[0], + # locale/ next to library.zip (py2exe) + os.path.dirname(sys.path[0]), + # locale/ in curdir (works for e.g. py2app) + os.curdir) + # leaving the domain unbound means sys.prefix+'/share/locale' + + for par in locale_locations: + locale_dir = os.path.join(par, 'locale') + if os.path.isdir(locale_dir): + gettext.bindtextdomain('pysol', locale_dir) + break + gettext.textdomain('pysol') # debug