#! /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; } }