wxWidgets/locale/Makefile
Vadim Zeitlin b490c63600 Regenerated message catalogs with the strings inside wxGetTranslation().
We didn't extract the strings inside wxGetTranslation() in the message catalog
when creating it using xgettext, do it now.

This notably fixes the missing translations for the generic progress dialog
elapsed/estimated/remaining time labels.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74693 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-08-23 16:22:35 +00:00

69 lines
2.2 KiB
Makefile

# this is the makefile for generating wxstd.pot message catalog file and
# building lang.mo files from the translated lang.po catalogs
# this makefile may be invoked to build either wxstd.pot or any lang.mo
# Autodetect the languages we support. Currently this relies on make
# being called with this dir as the cwd, but if we generate this file
# with configure an explicit path should be specified -- RL.
WX_LINGUAS := $(shell ls *.po */*.po 2> /dev/null | sed 's/wxstd.pot//g' | sed 's/.po//g')
WX_LINGUAS_UPDATE := $(shell ls *.po 2> /dev/null | sed 's/wxstd.pot//g' | sed 's/.po//g')
# the programs we use (TODO: use configure to detect them)
MSGFMT=msgfmt --verbose
MSGMERGE=msgmerge
XGETTEXT=xgettext
XARGS=xargs
# common xgettext args: C++ syntax, use the specified macro names as markers
XGETTEXT_ARGS=-C -k_ -kwxPLURAL:1,2 -kwxTRANSLATE -kwxGetTranslation -s -j
# implicit rules
%.mo: %.po
$(MSGFMT) -c -o $@ $<
# a PO file must be updated from wxstd.pot to include new translations
# (but not manually maintained platform-specific files like msw/it.po)
$(foreach lang,$(WX_LINGUAS_UPDATE),$(lang).po): wxstd.pot
%.po:
if [ -f $@ ]; then $(MSGMERGE) $@ wxstd.pot > $@.new && mv $@.new $@; else cp wxstd.pot $@; fi
wxstd.pot:
touch $@
find ../include -name "*.h" | $(XARGS) $(XGETTEXT) $(XGETTEXT_ARGS) -o wxstd.pot
find ../src -name "*.cpp" | $(XARGS) $(XGETTEXT) $(XGETTEXT_ARGS) -o wxstd.pot
allpo: force-update
@-for t in $(WX_LINGUAS_UPDATE); do $(MAKE) $$t.po; done
allmo:
@for t in $(WX_LINGUAS); do $(MAKE) $$t.mo; done
force-update:
$(RM) wxstd.pot
check:
@for t in $(WX_LINGUAS); do \
$(MSGFMT) -c -o /dev/null $$t.po 2>/dev/null || echo "$$t.po is BROKEN."; \
done
# print out the percentage of the translated strings
stats: FORCE
@for i in $(WX_LINGUAS); do \
x=`$(MSGFMT) -o /dev/null "$$i.po" 2>&1 | sed -e 's/[,\.]//g' \
-e 's/\([0-9]\+\) translated messages\?/TR=\1/' \
-e 's/\([0-9]\+\) fuzzy translations\?/FZ=\1/' \
-e 's/\([0-9]\+\) untranslated messages\?/UT=\1/'`; \
TR=0 FZ=0 UT=0; \
eval $$x; \
TOTAL=`expr $$TR + $$FZ + $$UT`; \
echo "$$i.po `expr 100 "*" $$TR / $$TOTAL`% of $$TOTAL strings"; \
done
FORCE:
.PHONY: allpo allmo force-update percentage FORCE