diff options
Diffstat (limited to 'kiostdetool/extractxml')
-rwxr-xr-x | kiostdetool/extractxml | 120 |
1 files changed, 0 insertions, 120 deletions
diff --git a/kiostdetool/extractxml b/kiostdetool/extractxml deleted file mode 100755 index 629ab1d..0000000 --- a/kiostdetool/extractxml +++ /dev/null @@ -1,120 +0,0 @@ -#! /usr/bin/perl -# -# This script extracts messages from kiosk_data.xml -# and writes on standard output (usually redirected to rc.cpp) -# the equivalent i18n() calls so that xgettext can parse them. -# -# It is based on extractrc but differs in the following ways: -# *) Extracts <caption> and <description> tags -# *) Performs equivalent of QString::simplifyWhiteSpace on all strings -# -# known flags: -# --tag=name : extract also the tag name -# --context=name : give all i18n calls a context name: i18n( "name",...) - -$filename = ""; -@filenames = (); - -sub writeoutstring -{ - print STDOUT "i18n(\""; - if (@_[0]) - { - # We have a I18N context - print STDOUT @_[0]; - print STDOUT "\",\""; - } - print STDOUT @_[1]; - print STDOUT "\"); // $filename \n"; -} - -$extratags = ""; -$context = ""; # I18N context - -ARGUMENTS: while (defined ($ARGV[0])) -{ - $_ = shift; - - if (/^--tag=(\w+)/) # --tag=name - { - $extratags .= "|" . $1; - next ARGUMENTS; - } - elsif (/^--context=(\w+)/) # --context=name - { - $context = $1; - next ARGUMENTS; - } - - $filename = $_; # maybe check for more options - -if (! $filename) { - print STDERR "no file to open\n"; - exit 1; -} - -$string = ""; -$intext = 0; -$linenr = 0; -$inskippedprop = 0; - -open(FILE, $filename); - -READING: while ( <FILE> ) { - $linenr++; - if ($linenr == 1 && ($_ !~ /^<!DOCTYPE/) && ($_ !~ /^<\?xml/)) { - last READING; - } - - $string .= "\\n" . $_; - chomp($string); - - $textstring = '(caption|description' . $extratags .')>'; - - # The 'database' property contains strings that shouldn't be translated - if ($inskippedprop == 0 && ($string =~ /<property name=\"database\"/ || $string=~ /<property name=\"associations\"/)) { - $inskippedprop = 1; - } elsif ($inskippedprop == 1 && ($string =~ /<\/property/)) { - $inskippedprop = 0; - $string = ""; - } - - if ($inskippedprop == 0 && $intext == 0) { - if ($string =~ /<$textstring/) { - $string =~ s/^.*<$textstring//; - $intext = 1; - $starting_linenr = $linenr; - } else { - $string = ""; - } - } - - if (($intext == 1) && ($string =~ /<\/$textstring/)) { - my $text = $string; - $text =~ s/<\/$textstring.*$//; - $text =~ s/</</g; - $text =~ s/>/>/g; - $text =~ s/&/&/g; - $text =~ s/\\n/ /g; - $text =~ s/\\([^n])/\\\\$1/g; - $text =~ s/\"/\\\"/g; - $text =~ s/ +/ /g; - $text =~ s/^ //g; - $text =~ s/ $//g; - writeoutstring($context, $text); - $string =~ s/^.*<\/$textstring//; - $intext = 0; - # Text can be multiline in .ui files (possibly), but we warn about it in XMLGUI .rc files. - if ($linenr != $starting_linenr && $filename =~ m/\.rc$/) { - print STDERR "there is <text> floating $filename\n"; - } - } - -} - -if ($intext == 1) { - print STDERR "parsing error in $filename $linenr\n"; - exit 1; -} - -} |