]> Frank Brehm's Git Trees - pixelpark/puppet-tools.git/commitdiff
Fixed lib/dpx_puppettools/xlate.py for HTTP LANG headers.
authorFrank Brehm <frank.brehm@pixelpark.com>
Thu, 9 Feb 2023 17:07:31 +0000 (18:07 +0100)
committerFrank Brehm <frank.brehm@pixelpark.com>
Thu, 9 Feb 2023 17:07:31 +0000 (18:07 +0100)
lib/dpx_puppettools/xlate.py

index 8f96e94377f75232d496896b3fb4176e72d91032..2020eff0ce2186be4fdc560dc94c2e6737b17504 100644 (file)
@@ -27,11 +27,14 @@ import babel
 import babel.lists
 from babel.support import Translations
 
+# Own modules
+from .acceptparse import create_accept_language_header
+
 DOMAIN = 'dpx_puppettools'
 
 LOG = logging.getLogger(__name__)
 
-__version__ = '0.1.0'
+__version__ = '0.2.0'
 
 __me__ = Path(__file__).resolve()
 __module_dir__ = __me__.parent
@@ -49,6 +52,17 @@ if not DEFAULT_LOCALE:
     DEFAULT_LOCALE = DEFAULT_LOCALE_DEF
 
 __mo_file__ = gettext.find(DOMAIN, str(LOCALE_DIR))
+
+if not __mo_file__:
+    if 'HTTP_ACCEPT_LANGUAGE' in os.environ:
+        ACCEPT = create_accept_language_header(os.environ['HTTP_ACCEPT_LANGUAGE'])
+        if ACCEPT:
+            LANG = ACCEPT.best_match(SUPPORTED_LANGS)
+            MO_DIR = LOCALE_DIR.joinpath(LANG).joinpath('LC_MESSAGES')
+            MO_FILE = MO_DIR.joinpath(DOMAIN + '.mo')
+            if MO_FILE.exists():
+                __mo_file__ = str(MO_FILE)
+
 if __mo_file__:
     try:
         with open(__mo_file__, 'rb') as F: