diff options
| author | michalpokusa <72110769+michalpokusa@users.noreply.github.com> | 2025-05-08 05:05:24 +0200 |
|---|---|---|
| committer | Sarah Boyce <42296566+sarahboyce@users.noreply.github.com> | 2025-08-12 09:47:16 +0200 |
| commit | 2c99fbcf95f07eaff0bf9673af7c82d07353df8f (patch) | |
| tree | fb48119c4cba5b4cb3539fb68d5a64f6432e3819 /django/core | |
| parent | 80cc9994d178d4afff0c85f9be8393bcedfd2687 (diff) | |
Fixed #36368 -- Prevented duplicate locale paths and write_po_file calls in makemessages.
Diffstat (limited to 'django/core')
| -rw-r--r-- | django/core/management/commands/makemessages.py | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/django/core/management/commands/makemessages.py b/django/core/management/commands/makemessages.py index 60fe295ac1..bf4ce5fc44 100644 --- a/django/core/management/commands/makemessages.py +++ b/django/core/management/commands/makemessages.py @@ -382,10 +382,15 @@ class Command(BaseCommand): self.invoked_for_django = True else: if self.settings_available: - self.locale_paths.extend(settings.LOCALE_PATHS) + for path in settings.LOCALE_PATHS: + locale_path = os.path.abspath(path) + if locale_path not in self.locale_paths: + self.locale_paths.append(locale_path) # Allow to run makemessages inside an app dir if os.path.isdir("locale"): - self.locale_paths.append(os.path.abspath("locale")) + locale_path = os.path.abspath("locale") + if locale_path not in self.locale_paths: + self.locale_paths.append(locale_path) if self.locale_paths: self.default_locale_path = self.locale_paths[0] os.makedirs(self.default_locale_path, exist_ok=True) @@ -551,9 +556,10 @@ class Command(BaseCommand): self.stdout.write("ignoring directory %s" % dirname) elif dirname == "locale": dirnames.remove(dirname) - self.locale_paths.insert( - 0, os.path.join(os.path.abspath(dirpath), dirname) - ) + locale_dir = os.path.join(os.path.abspath(dirpath), dirname) + if locale_dir in self.locale_paths: + self.locale_paths.remove(locale_dir) + self.locale_paths.insert(0, locale_dir) for filename in filenames: file_path = os.path.normpath(os.path.join(dirpath, filename)) file_ext = os.path.splitext(filename)[1] |
