#! /usr/bin/perl # NOTE: this script is part of the KDE SDK and added to KDevelop to support KDE 2 application development. # The original is located in the KDE CVS module tdesdk/scripts. It gets installed in the same directory as # the KDevelop binary to be in your PATH. # # What it does is extract the strings in an applicationīs .rc file, e.g. testappui.rc, and writes into the pot file # where the translations are build with (po-files) # # Added to KDevelop 2000-10-29, Ralf Nolden (nolden@kde.org) $linenr = 0; $filename = ""; @filenames = (); sub writeoutstring($) { print STDOUT "i18n(\"@_[0]\");\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; open(FILE, $filename); while ( ) { $linenr++; $string .= $_; chomp($string); $textstring = '([tT][eE][xX][tT]|string)>'; if ($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; writeoutstring($text); $string =~ s/^.*<\/$textstring//; $intext = 0; if ($linenr != $starting_linenr) { print STDERR "there is floating\n"; } } } if ($intext == 1) { print STDERR "parsing error in $filename $linenr\n"; exit 1; } }