2016-05-28 13:00:57 +02:00
|
|
|
# Makefile providing various facilities to manage translations
|
|
|
|
|
2017-03-05 14:21:25 +01:00
|
|
|
TEMPLATE = editor.pot
|
2016-05-28 13:00:57 +02:00
|
|
|
POFILES = $(wildcard *.po)
|
|
|
|
LANGS = $(POFILES:%.po=%)
|
|
|
|
|
|
|
|
all: update merge
|
|
|
|
|
|
|
|
update:
|
2019-06-16 21:57:34 +02:00
|
|
|
@cd ../..; python3 editor/translations/extract.py
|
2016-05-28 13:00:57 +02:00
|
|
|
|
|
|
|
merge:
|
|
|
|
@for po in $(POFILES); do \
|
|
|
|
echo -e "\nMerging $$po..."; \
|
2016-06-19 14:13:13 +02:00
|
|
|
msgmerge -w 79 -C $$po $$po $(TEMPLATE) > "$$po".new; \
|
2016-05-28 13:00:57 +02:00
|
|
|
mv -f "$$po".new $$po; \
|
2021-12-10 11:49:04 +01:00
|
|
|
msgattrib --output-file=$$po --no-obsolete $$po; \
|
2016-05-28 13:00:57 +02:00
|
|
|
done
|
|
|
|
|
|
|
|
check:
|
|
|
|
@for po in $(POFILES); do msgfmt -c $$po -o /dev/null; done
|
2021-10-20 13:47:50 +02:00
|
|
|
|
|
|
|
# Generate completion ratio from statistics string such as:
|
|
|
|
# 2775 translated messages, 272 fuzzy translations, 151 untranslated messages.
|
|
|
|
# First number can be 0, second and third numbers are only present if non-zero.
|
|
|
|
include-list:
|
|
|
|
@list=""; \
|
2022-04-25 17:14:49 +02:00
|
|
|
threshold=0.20; \
|
2021-10-20 13:47:50 +02:00
|
|
|
for po in $(POFILES); do \
|
|
|
|
res=`msgfmt --statistics $$po -o /dev/null 2>&1 | sed 's/[^0-9,]*//g'`; \
|
|
|
|
complete=`cut -d',' -f1 <<< $$res`; \
|
|
|
|
fuzzy_or_untranslated=`cut -d',' -f2 <<< $$res`; \
|
|
|
|
untranslated_maybe=`cut -d',' -f3 <<< $$res`; \
|
|
|
|
if [ -z "$$fuzzy_or_untranslated" ]; then fuzzy_or_untranslated=0; fi; \
|
|
|
|
if [ -z "$$untranslated_maybe" ]; then untranslated_maybe=0; fi; \
|
|
|
|
incomplete=`expr $$fuzzy_or_untranslated + $$untranslated_maybe`; \
|
|
|
|
if `awk "BEGIN {exit !($$complete / ($$complete + $$incomplete) > $$threshold)}"`; then \
|
|
|
|
lang=`basename $$po .po`; \
|
|
|
|
list+="$$lang,"; \
|
|
|
|
fi; \
|
|
|
|
done; \
|
|
|
|
echo $$list;
|