From 10c174e82121a745dc407c1d80f84b15c72dfa50 Mon Sep 17 00:00:00 2001 From: Shadi Naif Date: Sat, 13 May 2023 06:10:08 +0300 Subject: [PATCH] fix: use msgcat instead of tail tail can produce duplicate messages in django.po which will raise an error in compilemessages Refs: FC-0012 OEP-58 --- Makefile | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/Makefile b/Makefile index 9e178eb5..8a65497d 100644 --- a/Makefile +++ b/Makefile @@ -58,19 +58,22 @@ upgrade: $(COMMON_CONSTRAINTS_TXT) ## update the requirements/*.txt files with ## Localization targets WORKING_DIR := lti_consumer -EXTRACT_DIR := $(WORKING_DIR)/translations/en/LC_MESSAGES +EXTRACT_DIR := $(WORKING_DIR)/conf/locale/en/LC_MESSAGES JS_COMPILE_DIR := $(WORKING_DIR)/public/js/translations -EXTRACTED_DJANGO := $(EXTRACT_DIR)/django-partial.po -EXTRACTED_DJANGOJS := $(EXTRACT_DIR)/djangojs-partial.po -EXTRACTED_TEXT := $(EXTRACT_DIR)/django.po +EXTRACTED_DJANGO_PARTIAL := $(EXTRACT_DIR)/django-partial.po +EXTRACTED_DJANGOJS_PARTIAL := $(EXTRACT_DIR)/djangojs-partial.po +EXTRACTED_DJANGO := $(EXTRACT_DIR)/django.po extract_translations: ## extract strings to be translated, outputting .po files cd $(WORKING_DIR) && i18n_tool extract - mv $(EXTRACTED_DJANGO) $(EXTRACTED_TEXT) - tail -n +20 $(EXTRACTED_DJANGOJS) >> $(EXTRACTED_TEXT) - rm $(EXTRACTED_DJANGOJS) - sed -i'' -e 's/nplurals=INTEGER/nplurals=2/' $(EXTRACTED_TEXT) - sed -i'' -e 's/plural=EXPRESSION/plural=\(n != 1\)/' $(EXTRACTED_TEXT) + mv $(EXTRACTED_DJANGO_PARTIAL) $(EXTRACTED_DJANGO) + # Safely concatenate djangojs if it exists + if test -f $(EXTRACTED_DJANGOJS_PARTIAL); then \ + msgcat $(EXTRACTED_DJANGO) $(EXTRACTED_DJANGOJS_PARTIAL) -o $(EXTRACTED_DJANGO) && \ + rm $(EXTRACTED_DJANGOJS_PARTIAL); \ + fi + sed -i'' -e 's/nplurals=INTEGER/nplurals=2/' $(EXTRACTED_DJANGO) + sed -i'' -e 's/plural=EXPRESSION/plural=\(n != 1\)/' $(EXTRACTED_DJANGO) compile_translations: ## compile translation files, outputting .mo files for each supported language cd $(WORKING_DIR) && i18n_tool generate