home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / wxos2233.zip / wxOS2-2_3_3.zip / wxWindows-2.3.3 / locale / Makefile < prev    next >
Makefile  |  2002-09-04  |  2KB  |  63 lines

  1. # this is the makefile for generating wxstd.po message catalog file and
  2. # building lang.mo files from the translated lang.po catalogs
  3.  
  4. # this makefile may be invoked to build either wxstd.po or any lang.mo
  5.  
  6. # Autodetect the languages we support.  Currently this relies on make
  7. # being called with this dir as the cwd, but if we generate this file
  8. # with configure an explicit path should be specified -- RL.
  9.  
  10. WX_LINGUAS := `ls *.po 2> /dev/null | sed -n 's/\(wxstd\)\?\.po//p'`
  11.  
  12. # the programs we use (TODO: use configure to detect them)
  13. MSGFMT=msgfmt --verbose
  14. MSGMERGE=msgmerge
  15. XGETTEXT=xgettext
  16. XARGS=xargs
  17.  
  18. # common xgettext args: C++ syntax, use the specified macro names as markers
  19. XGETTEXT_ARGS=-C -k_ -kwxGetTranslation -kwxTRANSLATE -s -j
  20.  
  21. # implicit rules
  22. %.mo: %.po
  23.     $(MSGFMT) -o $@ $<
  24.  
  25. # a PO file must be updated from wxstd.po to include new translations
  26. %.po: wxstd.po
  27.     if [ -f $@ ]; then $(MSGMERGE) $@ wxstd.po > $@.new && mv $@.new $@; else cp wxstd.po $@; fi
  28.  
  29. wxstd.po:
  30.     touch $@
  31.     find ../include -name "*.h" | $(XARGS) $(XGETTEXT) $(XGETTEXT_ARGS) -o wxstd.po
  32.     find ../src -name "*.cpp" | $(XARGS) $(XGETTEXT) $(XGETTEXT_ARGS) -o wxstd.po
  33.     find ../contrib/include -name "*.h" | $(XARGS) $(XGETTEXT) $(XGETTEXT_ARGS) -o wxstd.po
  34.     find ../contrib/src -name "*.cpp" | $(XARGS) $(XGETTEXT) $(XGETTEXT_ARGS) -o wxstd.po
  35.  
  36. allpo: force-update
  37.     @-for t in $(WX_LINGUAS); do $(MAKE) $$t.po; done
  38.  
  39. allmo:
  40.     @for t in $(WX_LINGUAS); do $(MAKE) $$t.mo; done
  41.  
  42. force-update:
  43.     $(RM) wxstd.po
  44.  
  45. # print out the percentage of the trsnalted strings
  46. stats: FORCE
  47.     @for i in $(WX_LINGUAS); do \
  48.         x=`$(MSGFMT) -o /dev/null "$$i.po" 2>&1 | sed -e 's/[,\.]//g' \
  49.             -e 's/\([0-9]\+\) translated messages\?/TR=\1/' \
  50.             -e 's/\([0-9]\+\) fuzzy translations\?/FZ=\1/' \
  51.             -e 's/\([0-9]\+\) untranslated messages\?/UT=\1/'`; \
  52.         TR=0 FZ=0 UT=0; \
  53.         eval $$x; \
  54.         TOTAL=`expr $$TR + $$FZ + $$UT`; \
  55.         echo "$$i.po `expr 100 "*" $$TR / $$TOTAL`% of $$TOTAL strings"; \
  56.     done
  57.  
  58. FORCE:
  59.  
  60. .PHONY: allpo allmo force-update percentage FORCE
  61.  
  62. # $Id: Makefile,v 1.10 2002/09/03 19:32:03 MBN Exp $
  63.