From 7b027c463e83f4397dd1a64a4993193c5eb39a51 Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Fri, 15 May 2015 10:23:11 +0200 Subject: [PATCH] Fixed #24805 -- Delayed check for locale_dir in makemessages Thanks Wim Feijen for the report. --- django/core/management/commands/makemessages.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/django/core/management/commands/makemessages.py b/django/core/management/commands/makemessages.py index 10bb722dfe..094a2d14ff 100644 --- a/django/core/management/commands/makemessages.py +++ b/django/core/management/commands/makemessages.py @@ -23,6 +23,7 @@ from django.utils.text import get_text_list plural_forms_re = re.compile(r'^(?P"Plural-Forms.+?\\n")\s*$', re.MULTILINE | re.DOTALL) STATUS_OK = 0 +NO_LOCALE_DIR = object() def check_programs(*programs): @@ -150,6 +151,10 @@ class TranslatableFile(object): command.stdout.write(errors) if msgs: # Write/append messages to pot file + if self.locale_dir is NO_LOCALE_DIR: + file_path = os.path.normpath(os.path.join(self.dirpath, self.file)) + raise CommandError( + "Unable to find a locale path to store translations for file %s" % file_path) potfile = os.path.join(self.locale_dir, '%s.pot' % str(domain)) if is_templatized: # Remove '.py' suffix @@ -436,8 +441,7 @@ class Command(BaseCommand): if not locale_dir: locale_dir = self.default_locale_path if not locale_dir: - raise CommandError( - "Unable to find a locale path to store translations for file %s" % file_path) + locale_dir = NO_LOCALE_DIR all_files.append(TranslatableFile(dirpath, filename, locale_dir)) return sorted(all_files)