From edceba6a5c3af08ebe53cd4ff75ba057201241c7 Mon Sep 17 00:00:00 2001 From: Florian Best Date: Thu, 19 Nov 2020 10:45:28 +0100 Subject: [PATCH 1/2] Issue #2954: prevent logging error messages for not existing translation files 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 | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/tornado/locale.py b/tornado/locale.py index adb1f77420..82f3508cdf 100644 --- a/tornado/locale.py +++ b/tornado/locale.py @@ -41,6 +41,7 @@ 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] ) From c971ec5471ceea94389d73e882bd6bad9b2b9966 Mon Sep 17 00:00:00 2001 From: Ben Darnell Date: Sat, 9 Jan 2021 11:34:58 -0500 Subject: [PATCH 2/2] locale: Format with black --- tornado/locale.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tornado/locale.py b/tornado/locale.py index 82f3508cdf..533ce4d41c 100644 --- a/tornado/locale.py +++ b/tornado/locale.py @@ -200,7 +200,9 @@ def load_gettext_translations(directory: str, domain: str) -> None: global _use_gettext _translations = {} - for filename in glob.glob(os.path.join(directory, '*', 'LC_MESSAGES', domain + '.mo')): + 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: _translations[lang] = gettext.translation(