summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am20
1 files changed, 17 insertions, 3 deletions
diff --git a/Makefile.am b/Makefile.am
index 91243f2cad1..8bc66978697 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1072,21 +1072,35 @@ WEBLATE_REPO = https://framagit.org/tyreunom/guix-translations
1072# form. 1072# form.
1073download-po: 1073download-po:
1074 dir=$$(mktemp -d); \ 1074 dir=$$(mktemp -d); \
1075 git clone --depth 1 "$(WEBLATE_REPO)" "$$dir/translations"; \ 1075 git clone --depth 1 "$(WEBLATE_REPO)" "$$dir/translations" && \
1076 for domain in po/doc po/guix po/packages; do \ 1076 for domain in po/doc po/guix po/packages; do \
1077 for po in "$$dir/translations/$$domain"/*.po; do \ 1077 for po in "$$dir/translations/$$domain"/*.po; do \
1078 translated=$$(LANG=en_US.UTF-8 msgfmt --statistics "$$po" 2>&1 | cut -f1 -d' '); \ 1078 translated=$$(LANG=en_US.UTF-8 msgfmt --statistics "$$po" 2>&1 | cut -f1 -d' '); \
1079 untranslated=$$(LANG=en_US.UTF-8 msgfmt --statistics "$$po" 2>&1 | rev | cut -f3 -d' ' | rev); \
1080 untranslated=$${untranslated:-0}; \
1081 total=$$(($$translated+$$untranslated)); \
1079 target=$$(basename "$$po"); \ 1082 target=$$(basename "$$po"); \
1080 target="$$domain/$$target"; \ 1083 target="$$domain/$$target"; \
1081 if msgfmt -c "$$po" && [ "$$translated" != "0" ]; then \ 1084 msgfmt -c "$$po"; \
1085 if msgfmt -c "$$po" && [ "$$translated" != "0" ] && ([ "$$domain" != "po/doc" ] || [ "$$translated" -gt $$(($$total/10)) ] || [ -f $$target ]); then \
1082 msgfilter --no-wrap -i "$$po" cat > "$$po".tmp; \ 1086 msgfilter --no-wrap -i "$$po" cat > "$$po".tmp; \
1083 mv "$$po".tmp "$$target"; \ 1087 mv "$$po".tmp "$$target"; \
1084 echo "copied $$target."; \ 1088 echo "copied $$target."; \
1085 else \ 1089 else \
1086 echo "WARN: $$target ($$translated translated messages) was not added/updated."; \ 1090 echo "WARN: $$target ($$translated translated messages ($$((translated/total*100))%)) was not added/updated."; \
1087 fi; \ 1091 fi; \
1088 done; \ 1092 done; \
1089 done; \ 1093 done; \
1094 for po in po/doc/*.po; do \
1095 translated=$$(LANG=en_US.UTF-8 msgfmt --statistics "$$po" 2>&1 | cut -f1 -d' '); \
1096 untranslated=$$(LANG=en_US.UTF-8 msgfmt --statistics "$$po" 2>&1 | rev | cut -f3 -d' ' | rev); \
1097 untranslated=$${untranslated:-0}; \
1098 total=$$(($$translated + $$untranslated)); \
1099 if [ "$$translated" -lt "$$(($$total/20))" ]; then \
1100 echo "WARN: $$po was removed because it is below the 5% threshold: $$((translated/total*100))%"; \
1101 rm $$po; \
1102 fi; \
1103 done; \
1090 rm -rf "$$dir" 1104 rm -rf "$$dir"
1091.PHONY: download-po 1105.PHONY: download-po
1092 1106