# Convenient makefile for managing translations. # Prerequisites: # - GNU gettext # - Python # Adding new translations # ----------------------- # To start working on a new translation edit the POS=... line # below. If you want to add for example a french translation, add # fr.po. # Then run "make po" to generate a fresh .po file from translatable # strings in t_options.h. Now you can edit the new .po file (fr.po in # the example above) to translate the strings. Please make sure that # your editor encodes the file in UTF-8. # Updating existing translations # ------------------------------ # Run "make po" to update .po files with new translatable strings from # t_options.h. Now you can edit the .po files you're interested # in. Please make sure that your editor encodes the file in UTF-8. # Updating options.h # ------------------ # Finally run "make" to generate options.h from t_options.h with all # translations. Now you can rebuild the drivers. Any common options # used by the drivers will have option descriptions with the latest # translations. # Publishing translations # ----------------------- # To get your translation(s) into Mesa CVS, please send me your # <lang>.po file. # More information: # - info gettext # The set of supported languages. Add languages as needed. POS=ca.po de.po es.po nl.po fr.po sv.po # # Don't change anything below, unless you know what you're doing. # LANGS=$(POS:%.po=%) MOS=$(POS:%.po=%/LC_MESSAGES/options.mo) POT=xmlpool.pot .PHONY: all clean pot po mo EXTRA_DIST = \ gen_xmlpool.py \ options.h \ t_options.h \ $(POS) \ $(MOS) \ SConscript BUILT_SOURCES = options.h CLEANFILES = \ options.h $(POS) \ $(MOS) # Default target options.h LOCALEDIR := . options.h: t_options.h $(MOS) $(AM_V_GEN) $(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/gen_xmlpool.py $(srcdir)/t_options.h $(LOCALEDIR) $(LANGS) > options.h # Update .mo files from the corresponding .po files. %/LC_MESSAGES/options.mo: %.po @mo="$@"; \ lang=$${mo%%/*}; \ echo "Updating ($$lang) $@ from $?."; \ $(MKDIR_P) $$lang/LC_MESSAGES; \ msgfmt -o $@ $? # Use this target to create or update .po files with new messages in # driconf.py. po: $(POT) @for po in $(POS); do \ if [ -f $$po ]; then \ echo "Merging new strings from $(POT) into $@."; \ mv $$po $$po~; \ msgmerge -o $$po $$po~ $(POT); \ else \ echo "Initializing $$po from $(POT)."; \ msginit -i $(POT) -o $$po~ --locale=$*; \ sed -e 's/charset=.*\\n/charset=UTF-8\\n/' $$po~ > $$po; \ fi \ done pot: $(POT) # Extract message catalog from driconf.py. $(POT): t_options.h xgettext -L C --from-code utf-8 -o $(POT) t_options.h