diff options
author | Danilo Segan <danilo@canonical.com> | 2011-10-08 16:54:41 +0200 |
---|---|---|
committer | Danilo Segan <danilo@canonical.com> | 2011-10-08 16:54:41 +0200 |
commit | f52b713ee389b7335a414d9e2decf294d603379e (patch) | |
tree | 20cc437d97c5fbb7dd23242b9d5dea3ea1f87d19 | |
parent | 1f632dabbebe433a4d9d7aa83bf53eab84b19a3f (diff) | |
download | intltool-f52b713ee389b7335a414d9e2decf294d603379e.tar.gz |
Provide a parameter --no-translations for use in INTLTOOL_XML_NOMERGE_RULE to avoid instability problems with /tmp which can contain PO files. Fixes #398576.
-rw-r--r-- | intltool-merge.in | 22 | ||||
-rw-r--r-- | intltool.m4 | 2 |
2 files changed, 17 insertions, 7 deletions
diff --git a/intltool-merge.in b/intltool-merge.in index 04bb3a3..1afa2a4 100644 --- a/intltool-merge.in +++ b/intltool-merge.in @@ -67,6 +67,7 @@ my $QUIET_ARG = 0; my $PASS_THROUGH_ARG = 0; my $UTF8_ARG = 0; my $MULTIPLE_OUTPUT = 0; +my $NO_TRANSLATIONS_ARG = 0; my $cache_file; ## Handle options @@ -87,6 +88,7 @@ GetOptions "pass-through|p" => \$PASS_THROUGH_ARG, "utf8|u" => \$UTF8_ARG, "multiple-output|m" => \$MULTIPLE_OUTPUT, + "no-translations" => \$NO_TRANSLATIONS_ARG, "cache|c=s" => \$cache_file ) or &error; @@ -121,7 +123,7 @@ elsif ($BA_STYLE_ARG && @ARGV > 2) &ba_merge_translations; &finalize; } -elsif ($XML_STYLE_ARG && @ARGV > 2) +elsif ($XML_STYLE_ARG && (@ARGV > 2 || ($NO_TRANSLATIONS_ARG && @ARGV > 1))) { &utf8_sanity_check; &preparation; @@ -214,6 +216,9 @@ Other options: -p, --pass-through deprecated, does nothing and issues a warning -m, --multiple-output output one localized file per locale, instead of a single file containing all localized elements + --no-translations do not merge any translations: only generates the + unlocalised (English) version -- applies only + to XML merging -c, --cache=FILE specify cache file name (usually \$top_builddir/po/.intltool-merge-cache) -q, --quiet suppress most messages @@ -242,12 +247,17 @@ sub print_message sub preparation { - $PO_DIR = $ARGV[0]; - $FILE = $ARGV[1]; - $OUTFILE = $ARGV[2]; + if (!$XML_STYLE_ARG || !$NO_TRANSLATIONS_ARG) { + $PO_DIR = $ARGV[0]; + $FILE = $ARGV[1]; + $OUTFILE = $ARGV[2]; - &gather_po_files; - &get_translation_database; + &gather_po_files; + &get_translation_database; + } else { + $FILE = $ARGV[0]; + $OUTFILE = $ARGV[1]; + } } # General-purpose code for looking up translations in .po files diff --git a/intltool.m4 b/intltool.m4 index a22d122..07af68b 100644 --- a/intltool.m4 +++ b/intltool.m4 @@ -66,7 +66,7 @@ INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcar INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< [$]@' + INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u --no-translations $< [$]@' INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' |