You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
bibletime/pot/extractrc

75 lines
1.6 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#! /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 ( <FILE> ) {
$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/&lt;/</g;
$text =~ s/&gt;/>/g;
$text =~ s/&amp;/&/g;
writeoutstring($text);
$string =~ s/^.*<\/$textstring//;
$intext = 0;
if ($linenr != $starting_linenr) {
print STDERR "there is <text> floating\n";
}
}
}
if ($intext == 1) {
print STDERR "parsing error in $filename $linenr\n";
exit 1;
}
}