diff options
| -rw-r--r-- | Makefile.am | 20 |
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. |
| 1073 | download-po: | 1073 | download-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 | ||
