summaryrefslogtreecommitdiff
path: root/django/core
diff options
context:
space:
mode:
authormichalpokusa <72110769+michalpokusa@users.noreply.github.com>2025-05-08 05:05:24 +0200
committerSarah Boyce <42296566+sarahboyce@users.noreply.github.com>2025-08-12 09:47:16 +0200
commit2c99fbcf95f07eaff0bf9673af7c82d07353df8f (patch)
treefb48119c4cba5b4cb3539fb68d5a64f6432e3819 /django/core
parent80cc9994d178d4afff0c85f9be8393bcedfd2687 (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.py16
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]