From 2bda8f7717adf28da4af0d34fb82f63d2868c31d Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdeutils@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- kregexpeditor/extractrc-from-regexp | 85 +++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100755 kregexpeditor/extractrc-from-regexp (limited to 'kregexpeditor/extractrc-from-regexp') diff --git a/kregexpeditor/extractrc-from-regexp b/kregexpeditor/extractrc-from-regexp new file mode 100755 index 0000000..70c30ad --- /dev/null +++ b/kregexpeditor/extractrc-from-regexp @@ -0,0 +1,85 @@ +#! /usr/bin/perl +# This file is a modified version of extractrc, with the only addition that it Title|Description in the textstring regexp. +# +# This script extracts messages from designer (.ui) and XMLGIU (.rc) files +# and writes on standard output (usually redirected to rc.cpp) +# the equivalent i18n() calls so that xgettext can parse them. + +$filename = ""; +@filenames = (); + +sub writeoutstring($) +{ + print STDOUT "i18n(\"@_[0]\"); // $filename \n"; +} + +while (defined ($ARGV[0])) +{ + $_ = shift; + $filename = $_; # maybe check for options + +if (! $filename) { + print STDERR "no file to open\n"; + exit 1; +} + +$string = ""; +$intext = 0; +$linenr = 0; +$inskippedprop = 0; + +open(FILE, $filename); + +READING: while ( ) { + $linenr++; + if ($linenr == 1 && ($_ !~ /^'; + + # The 'database' property contains strings that shouldn't be translated + if ($inskippedprop == 0 && ($string =~ //g; + $text =~ s/&/&/g; + $text =~ s/\"/\\\"/g; + writeoutstring($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 floating $filename\n"; + } + } + +} + +if ($intext == 1) { + print STDERR "parsing error in $filename $linenr\n"; + exit 1; +} + +} -- cgit v1.2.3