[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
02/04: maint: Implement translation thresholds.
From: |
guix-commits |
Subject: |
02/04: maint: Implement translation thresholds. |
Date: |
Sat, 2 Apr 2022 12:47:39 -0400 (EDT) |
roptat pushed a commit to branch master
in repository guix.
commit ff194cb24509e15d6b58682a63befe2aececba02
Author: Julien Lepiller <julien@lepiller.eu>
AuthorDate: Tue Mar 8 19:11:38 2022 +0100
maint: Implement translation thresholds.
Do not download new translations for the cookbook and the manual when
they are below 10% completion, and remove existing translations when
they fall below 5%.
* Makefile.am (download-po): Implement translation thresholds.
---
Makefile.am | 20 +++++++++++++++++---
1 file changed, 17 insertions(+), 3 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index 91243f2cad..8bc6697869 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1072,21 +1072,35 @@ WEBLATE_REPO =
https://framagit.org/tyreunom/guix-translations
# form.
download-po:
dir=$$(mktemp -d); \
- git clone --depth 1 "$(WEBLATE_REPO)" "$$dir/translations"; \
+ git clone --depth 1 "$(WEBLATE_REPO)" "$$dir/translations" && \
for domain in po/doc po/guix po/packages; do \
for po in "$$dir/translations/$$domain"/*.po; do \
translated=$$(LANG=en_US.UTF-8 msgfmt --statistics "$$po" 2>&1
| cut -f1 -d' '); \
+ untranslated=$$(LANG=en_US.UTF-8 msgfmt --statistics "$$po"
2>&1 | rev | cut -f3 -d' ' | rev); \
+ untranslated=$${untranslated:-0}; \
+ total=$$(($$translated+$$untranslated)); \
target=$$(basename "$$po"); \
target="$$domain/$$target"; \
- if msgfmt -c "$$po" && [ "$$translated" != "0" ]; then \
+ msgfmt -c "$$po"; \
+ if msgfmt -c "$$po" && [ "$$translated" != "0" ] && ([
"$$domain" != "po/doc" ] || [ "$$translated" -gt $$(($$total/10)) ] || [ -f
$$target ]); then \
msgfilter --no-wrap -i "$$po" cat > "$$po".tmp; \
mv "$$po".tmp "$$target"; \
echo "copied $$target."; \
else \
- echo "WARN: $$target ($$translated translated messages) was
not added/updated."; \
+ echo "WARN: $$target ($$translated translated messages
($$((translated/total*100))%)) was not added/updated."; \
fi; \
done; \
done; \
+ for po in po/doc/*.po; do \
+ translated=$$(LANG=en_US.UTF-8 msgfmt --statistics "$$po" 2>&1 |
cut -f1 -d' '); \
+ untranslated=$$(LANG=en_US.UTF-8 msgfmt --statistics "$$po" 2>&1 |
rev | cut -f3 -d' ' | rev); \
+ untranslated=$${untranslated:-0}; \
+ total=$$(($$translated + $$untranslated)); \
+ if [ "$$translated" -lt "$$(($$total/20))" ]; then \
+ echo "WARN: $$po was removed because it is below the 5%
threshold: $$((translated/total*100))%"; \
+ rm $$po; \
+ fi; \
+ done; \
rm -rf "$$dir"
.PHONY: download-po