summaryrefslogtreecommitdiff
path: root/doc/translations/Makefile
blob: ab08e107d006214acf9c271ec61bd2a6f6c496f4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# Makefile providing various facilities to manage translations

TEMPLATE = classes.pot
POFILES = $(wildcard *.po)
LANGS = $(POFILES:%.po=%)

all: update merge

update:
	@cd ../..; \
	python3 doc/translations/extract.py \
	  --path doc/classes modules/*/doc_classes \
	  --output doc/translations/$(TEMPLATE)

merge:
	@for po in $(POFILES); do \
	  echo -e "\nMerging $$po..."; \
	  msgmerge -w 79 -C $$po $$po $(TEMPLATE) > "$$po".new; \
	  mv -f "$$po".new $$po; \
	done

check:
	@for po in $(POFILES); do msgfmt -c $$po -o /dev/null; done

# 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=""; \
	threshold=0.10; \
	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;