summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanilo Segan <danilo@canonical.com>2011-10-08 16:54:41 +0200
committerDanilo Segan <danilo@canonical.com>2011-10-08 16:54:41 +0200
commitf52b713ee389b7335a414d9e2decf294d603379e (patch)
tree20cc437d97c5fbb7dd23242b9d5dea3ea1f87d19
parent1f632dabbebe433a4d9d7aa83bf53eab84b19a3f (diff)
downloadintltool-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.in22
-rw-r--r--intltool.m42
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 $< [$]@'