summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTommy Reynolds <Tommy.Reynolds@MegaCoder.com>2006-02-26 21:07:34 +0000
committerTommy Reynolds <Tommy.Reynolds@MegaCoder.com>2006-02-26 21:07:34 +0000
commit09ec0edb4182d0d4818702913e4e73ad343789f4 (patch)
tree7569d47da364d9413d9e4d834d52bab94fcb6df6
parent2b7aded20eea8f5d4dfe9e22f3d77132a0b66bf4 (diff)
downloadfedora-doc-utils-09ec0edb4182d0d4818702913e4e73ad343789f4.tar.gz
fedora-doc-utils-09ec0edb4182d0d4818702913e4e73ad343789f4.tar.xz
fedora-doc-utils-09ec0edb4182d0d4818702913e4e73ad343789f4.zip
Add all the magical make-fu to all new translations to be added by
just updating the ${OTHERS} macro and editing the locale-specific "${LANG}.po" file that gets generated. The final product is the file "entities-${LANG}.ent", suitable for reference in the <DOCTYPE> declaration of an FDP documnent file via a locale-neutral wrapper filename.
-rw-r--r--common/entities/Makefile181
-rw-r--r--common/entities/entities-it.ent2
-rw-r--r--common/entities/entities-it.xml2
-rw-r--r--common/entities/it.po5
4 files changed, 173 insertions, 17 deletions
diff --git a/common/entities/Makefile b/common/entities/Makefile
index b36a116..3c5b02c 100644
--- a/common/entities/Makefile
+++ b/common/entities/Makefile
@@ -1,24 +1,179 @@
PRI_LANG=en
+OTHERS =it
-all: entities-it.ent
+#######################################################################
+# Populate make(1) with only those suffixes of interest to us
+#
+.SUFFIXES:
+.SUFFIXES: .ent .po .pot .xml .xsl
+#
+#######################################################################
-clean:
+#######################################################################
+# Define macros to explicitly instantiate the files to work with
+#
+OTHERXMLFILES=$(foreach L,${OTHERS},entities-${L}.xml)
+POFILES=$(foreach L,${OTHERS},${L}.po)
+ENTFILES=$(foreach L,${PRI_LANG} ${OTHERS},entities-${L}.ent)
+#
+#######################################################################
-distclean clobber: clean
- ${RM} *.ent
+#######################################################################
+# Rule: Apply stylesheet to transform XML into locale-specific ".ent"
+# entities file
+#
+%.ent: %.xml
+ xsltproc -o $@ entities.xsl $<
+#
+#######################################################################
-entities-it.ent: entities-it.xml entities.xsl
- xsltproc -o $@ entities.xsl entities-it.xml
+#######################################################################
+# Printf(1) format string for describing targets by "make help".
+HELPFMT ="%-23s\t| %s.\n"
+#
+#######################################################################
-entities-it.xml: entities-${PRI_LANG}.xml it.po
- xml2po -p it.po entities-${PRI_LANG}.xml >$@
+#######################################################################
+# WARNING: put no targets before this one!
+#
+.PHONY: all
+all:: ${ENTFILES}
+#######################################################################
-it.po: it.pot
- if [ ! -f $@ ]; then \
- cp $< $@; \
+#######################################################################
+# Target 'help' displays the available targets
+#
+.PHONY: help
+help::
+ @printf ${HELPFMT} "make all" "Generate .ENT files"
+ @printf ${HELPFMT} "make help" "Display this list"
+#
+#######################################################################
+
+#######################################################################
+# Target 'entities.pot' makes a TEMPORARY seed translation file. We
+# use the original-language entities XML file as the source.
+#
+.PHONY: pot
+
+pot entities.pot:: entities-${PRI_LANG}.xml
+ xml2po -o entities.pot $<
+
+help::
+ @printf ${HELPFMT} "make pot" "Create template PO file"
+ @printf ${HELPFMT} "make entities.pot" "Create template PO file"
+#
+#######################################################################
+
+#######################################################################
+# 'PO_template' emits rules to update the locale-specific .PO file
+# whenever the "entities-${PRI_LANG}.xml", and therefore the
+# "entities.pot" file, is changed.
+#
+define PO_template
+.PHONY: po-${1}
+po-${1} ${1}.po:: entities.pot
+ if [ ! -f ${1}.po ]; then \
+ cp $$< ${1}.po; \
else \
- msgmerge --update --backup=simple $@ $<; \
+ msgmerge --update --backup=simple ${1}.po $$<; \
fi
-it.pot: entities-${PRI_LANG}.xml
+help::
+ @printf ${HELPFMT} "make po-${1}" "Generate .PO file for locale '${1}'"
+ @printf ${HELPFMT} "make ${1}.po" "Generate '${1}.po' file"
+endef
+
+$(foreach L,${OTHERS},$(eval $(call PO_template,${L})))
+
+.PHONY: po-all
+po-all: ${foreach L,${OTHERS},${L}.po}
+
+help::
+ @printf ${HELPFMT} "make po-all" "Generate all .PO files"
+#
+#######################################################################
+
+#######################################################################
+# 'UPDATE_template' generates the rules to derive the translated XML
+# files based on the "entities-${PRI_LANG}.xml" file and the selected
+# "${LANG}.po" file.
+#
+define UPDATE_template
+.PHONY: xml-${1}
+xml-${1} entities-${1}.xml: entities-${PRI_LANG}.xml ${1}.po
+ xml2po -p ${1}.po entities-${PRI_LANG}.xml >entities-${1}.xml
+
+help::
+ @printf ${HELPFMT} "make xml-${1}" "Translate XML for locale '${1}'"
+ @printf ${HELPFMT} "make entities-${1}.xml" "Build 'entities-${1}.xml' file"
+endef
+
+.PHONY: xml-${PRI_LANG}
+xml-${PRI_LANG}:: entities-${PRI_LANG}.xml
+
+$(foreach L,${OTHERS},$(eval $(call UPDATE_template,${L})))
+
+.PHONY: xml-all
+xml-all: $(foreach L,${OTHERS},entities-${L}.xml)
+
+help::
+ @printf ${HELPFMT} "make xml-all" "Translate XML for all locales"
+#
+#######################################################################
+
+
+#######################################################################
+# Target 'showvars' displays both provided and computed macro values
+#
+.PHONY: showvars
+showvars::
+ @echo "PRI_LANG=${PRI_LANG}"
+ @echo "OTHERS=${OTHERS}"
+ @echo "OTHERXMLFILES=${OTHERXMLFILES}"
+ @echo "ENTFILES=${ENTFILES}"
+ @echo "POFILES=${POFILES}"
+help::
+ @printf ${HELPFMT} "make showvars" "Show certain macro values"
+#
+#######################################################################
+
+#######################################################################
+# Target 'clean' deletes all temporary files.
+#
+.PHONY: clean
+clean::
+ ${RM} *~
+ ${RM} entities.pot
+ ${RM} ${OTHERXMLFILES}
+
+help::
+ @printf ${HELPFMT} "make clean" "Delete all temporary files"
+#
+#######################################################################
+
+#######################################################################
+# Target 'distclean' or 'clobber' deletes all generated product files
+# in addition to all temporary files.
+#
+.PHONY: distclean clobber
+distclean clobber:: clean
+ ${RM} ${ENTFILES}
+
+help::
+ @printf ${HELPFMT} "make distclean" "Delete all generated files"
+ @printf ${HELPFMT} "make clobber" "Delete all generated files"
+#
+#######################################################################
+
+#######################################################################
+# We create EXACTLY one .POT file, and treat is as a temporary file.
+# Do NOT EDIT the .POT file if you are sharing this directory!
+#
+entities.pot:: entities-${PRI_LANG}.xml
xml2po -o $@ $<
+
+help::
+ @printf ${HELPFMT} "make entities.pot" "Create template .PO file"
+#
+#######################################################################
diff --git a/common/entities/entities-it.ent b/common/entities/entities-it.ent
index 325c332..3f2bfc6 100644
--- a/common/entities/entities-it.ent
+++ b/common/entities/entities-it.ent
@@ -1,5 +1,5 @@
- <!-- These common entities are useful shorthand terms and names, which may be subject to change at anytime. This is an important value the the entity provides: a single location to update terms and common names. -->
+ <!-- These are the Italian (it) common entities. -->
<!-- Group: Fedora common entries -->
diff --git a/common/entities/entities-it.xml b/common/entities/entities-it.xml
index df483cd..a770470 100644
--- a/common/entities/entities-it.xml
+++ b/common/entities/entities-it.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE entities SYSTEM "entities.dtd">
<entities>
- <title>These common entities are useful shorthand terms and names, which may be subject to change at anytime. This is an important value the the entity provides: a single location to update terms and common names.</title>
+ <title>These are the Italian (it) common entities.</title>
<group name="Fedora common entries">
<entity name="FED">
<comment>Generic root term</comment>
diff --git a/common/entities/it.po b/common/entities/it.po
index 42eb0be..9046f96 100644
--- a/common/entities/it.po
+++ b/common/entities/it.po
@@ -4,7 +4,7 @@ msgid ""
msgstr ""
"Project-Id-Version: it\n"
"POT-Creation-Date: 2006-02-25 13:56-0600\n"
-"PO-Revision-Date: 2006-02-23 03:14-0600\n"
+"PO-Revision-Date: 2006-02-26 15:05-0600\n"
"Last-Translator: Tommy Reynolds <Tommy.Reynolds@MegaCoder.com>\n"
"Language-Team: US English <en@li.org>\n"
"MIME-Version: 1.0\n"
@@ -17,7 +17,7 @@ msgid ""
"These common entities are useful shorthand terms and names, which may be "
"subject to change at anytime. This is an important value the the entity "
"provides: a single location to update terms and common names."
-msgstr ""
+msgstr "These are the Italian (it) common entities."
#: entities-en.xml:14(comment) entities-en.xml:18(comment)
msgid "Generic root term"
@@ -237,3 +237,4 @@ msgstr ""
#: entities-en.xml:0(None)
msgid "translator-credits"
msgstr "Tommy Reynolds <Tommy.Reynolds@MegaCoder.com> 2006"
+