]> git.ipfire.org Git - thirdparty/tornado.git/commitdiff
Issue #2954: prevent logging error messages for not existing translation files 2956/head
authorFlorian Best <best@univention.de>
Thu, 19 Nov 2020 09:45:28 +0000 (10:45 +0100)
committerFlorian Best <best@univention.de>
Thu, 19 Nov 2020 19:11:20 +0000 (20:11 +0100)
Every not existing translation file for the existing locales logged an error message:
Cannot load translation for 'ps': [Errno 2] No such file or directory: '/usr/share/locale/ps/LC_MESSAGES/foo.mo'

tornado/locale.py

index adb1f77420c19f8f250c38399df7c67f76eda1ae..82f3508cdfd9624ab43410be6744590c48447569 100644 (file)
@@ -41,6 +41,7 @@ import codecs
 import csv
 import datetime
 import gettext
+import glob
 import os
 import re
 
@@ -198,13 +199,10 @@ def load_gettext_translations(directory: str, domain: str) -> None:
     global _supported_locales
     global _use_gettext
     _translations = {}
-    for lang in os.listdir(directory):
-        if lang.startswith("."):
-            continue  # skip .svn, etc
-        if os.path.isfile(os.path.join(directory, lang)):
-            continue
+
+    for filename in glob.glob(os.path.join(directory, '*', 'LC_MESSAGES', domain + '.mo')):
+        lang = os.path.basename(os.path.dirname(os.path.dirname(filename)))
         try:
-            os.stat(os.path.join(directory, lang, "LC_MESSAGES", domain + ".mo"))
             _translations[lang] = gettext.translation(
                 domain, directory, languages=[lang]
             )