Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. # Convenient makefile for managing translations.
  2.  
  3. # Prerequisites:
  4. # - GNU gettext
  5. # - Python
  6.  
  7. # Adding new translations
  8. # -----------------------
  9.  
  10. # To start working on a new translation edit the POS=... line
  11. # below. If you want to add for example a french translation, add
  12. # fr.po.
  13.  
  14. # Then run "make po" to generate a fresh .po file from translatable
  15. # strings in t_options.h. Now you can edit the new .po file (fr.po in
  16. # the example above) to translate the strings. Please make sure that
  17. # your editor encodes the file in UTF-8.
  18.  
  19. # Updating existing translations
  20. # ------------------------------
  21.  
  22. # Run "make po" to update .po files with new translatable strings from
  23. # t_options.h. Now you can edit the .po files you're interested
  24. # in. Please make sure that your editor encodes the file in UTF-8.
  25.  
  26. # Updating options.h
  27. # ------------------
  28.  
  29. # Finally run "make" to generate options.h from t_options.h with all
  30. # translations. Now you can rebuild the drivers. Any common options
  31. # used by the drivers will have option descriptions with the latest
  32. # translations.
  33.  
  34. # Publishing translations
  35. # -----------------------
  36.  
  37. # To get your translation(s) into Mesa CVS, please send me your
  38. # <lang>.po file.
  39.  
  40. # More information:
  41. # - info gettext
  42.  
  43. # The set of supported languages. Add languages as needed.
  44. POS=ca.po de.po es.po nl.po fr.po sv.po
  45.  
  46. #
  47. # Don't change anything below, unless you know what you're doing.
  48. #
  49. LANGS=$(POS:%.po=%)
  50. MOS=$(POS:%.po=%/LC_MESSAGES/options.mo)
  51. POT=xmlpool.pot
  52.  
  53. .PHONY: all clean pot po mo
  54.  
  55. EXTRA_DIST = \
  56.         gen_xmlpool.py \
  57.         options.h \
  58.         t_options.h \
  59.         $(POS) \
  60.         $(MOS) \
  61.         SConscript
  62.  
  63. BUILT_SOURCES = options.h
  64. CLEANFILES = \
  65.         options.h
  66.         $(POS) \
  67.         $(MOS)
  68.  
  69. # Default target options.h
  70. options.h: LOCALEDIR := .
  71. options.h: t_options.h $(MOS)
  72.         $(AM_V_GEN) $(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/gen_xmlpool.py $(srcdir)/t_options.h $(LOCALEDIR) $(LANGS) > options.h
  73.  
  74. # Update .mo files from the corresponding .po files.
  75. %/LC_MESSAGES/options.mo: %.po
  76.         @mo="$@"; \
  77.         lang=$${mo%%/*}; \
  78.         echo "Updating ($$lang) $@ from $?."; \
  79.         $(MKDIR_P) $$lang/LC_MESSAGES; \
  80.         msgfmt -o $@ $?
  81.  
  82. # Use this target to create or update .po files with new messages in
  83. # driconf.py.
  84. po: $(POT)
  85.         @for po in $(POS); do \
  86.                 if [ -f $$po ]; then \
  87.                         echo "Merging new strings from $(POT) into $@."; \
  88.                         mv $$po $$po~; \
  89.                         msgmerge -o $$po $$po~ $(POT); \
  90.                 else \
  91.                         echo "Initializing $$po from $(POT)."; \
  92.                         msginit -i $(POT) -o $$po~ --locale=$*; \
  93.                         sed -e 's/charset=.*\\n/charset=UTF-8\\n/' $$po~ > $$po; \
  94.                 fi \
  95.         done
  96.  
  97. pot: $(POT)
  98.  
  99. # Extract message catalog from driconf.py.
  100. $(POT): t_options.h
  101.         xgettext -L C --from-code utf-8 -o $(POT) t_options.h
  102.