aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Meeks <michael@helixcode.com>2000-11-05 07:50:35 +0800
committerMichael Meeks <mmeeks@src.gnome.org>2000-11-05 07:50:35 +0800
commit69be7df04c882a49352b9a291321f29661d18b91 (patch)
treef3a79e41c74ca94cedd69ad1c736e5979015b045
parentf126381a0c3a2004e286eb61ecc59f29bf87cfc7 (diff)
downloadgsoc2013-evolution-69be7df04c882a49352b9a291321f29661d18b91.tar.gz
gsoc2013-evolution-69be7df04c882a49352b9a291321f29661d18b91.tar.zst
gsoc2013-evolution-69be7df04c882a49352b9a291321f29661d18b91.zip
update all of ui/*.h to ui/*.xml
2000-11-05 Michael Meeks <michael@helixcode.com> * POTFILES.in: update all of ui/*.h to ui/*.xml * Makefile.i18npatch: sort out the xml bits. * ui-extract.pl: add from Kenneth. * update.pl: Update to the version in bonobo. svn path=/trunk/; revision=6399
-rw-r--r--po/ChangeLog10
-rw-r--r--po/Makefile.i18npatch63
-rw-r--r--po/POTFILES.in16
-rwxr-xr-xpo/ui-extract.pl182
-rwxr-xr-xpo/update.pl271
5 files changed, 462 insertions, 80 deletions
diff --git a/po/ChangeLog b/po/ChangeLog
index 539fdd9371..bd9a5eaee4 100644
--- a/po/ChangeLog
+++ b/po/ChangeLog
@@ -1,3 +1,13 @@
+2000-11-05 Michael Meeks <michael@helixcode.com>
+
+ * POTFILES.in: update all of ui/*.h to ui/*.xml
+
+ * Makefile.i18npatch: sort out the xml bits.
+
+ * ui-extract.pl: add from Kenneth.
+
+ * update.pl: Update to the version in bonobo.
+
2000-11-04 Zbigniew Chyla <cyba@gnome.pl>
* pl.po: Updated Polish translation.
diff --git a/po/Makefile.i18npatch b/po/Makefile.i18npatch
new file mode 100644
index 0000000000..98837e85c2
--- /dev/null
+++ b/po/Makefile.i18npatch
@@ -0,0 +1,63 @@
+--- Makefile.in.in.clean Sat Oct 28 15:31:52 2000
++++ Makefile.in.in Sat Oct 28 16:11:18 2000
+@@ -33,7 +33,9 @@
+ GMSGFMT = PATH=../src:$$PATH @GMSGFMT@
+ MSGFMT = @MSGFMT@
+ XGETTEXT = PATH=../src:$$PATH @XGETTEXT@
+-MSGMERGE = PATH=../src:$$PATH msgmerge
++MSGMERGE = PATH=$(top_srcdir)/po:../src:$$PATH perl $(top_srcdir)/po/update.pl --dist
++GENPOT = PATH=$(top_srcdir)/po:../src:$$PATH perl $(top_srcdir)/po/update.pl --pot
++GENHEAD = PATH=$(top_srcdir)/po:../src:$$PATH perl $(top_srcdir)/po/update.pl --headers
+
+ DEFS = @DEFS@
+ CFLAGS = @CFLAGS@
+@@ -47,7 +49,7 @@
+ POFILES = @POFILES@
+ GMOFILES = @GMOFILES@
+ DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(PACKAGE).pot \
+-stamp-cat-id $(POFILES) $(GMOFILES) $(SOURCES)
++stamp-cat-id $(POFILES) $(GMOFILES) $(SOURCES) update.pl ui-extract.pl
+
+ POTFILES = \
+
+@@ -83,12 +85,7 @@
+ all-no:
+
+ $(srcdir)/$(PACKAGE).pot: $(POTFILES)
+- $(XGETTEXT) --default-domain=$(PACKAGE) --directory=$(top_srcdir) \
+- --add-comments --keyword=_ --keyword=N_ \
+- --files-from=$(srcdir)/POTFILES.in \
+- && test ! -f $(PACKAGE).po \
+- || ( rm -f $(srcdir)/$(PACKAGE).pot \
+- && mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot )
++ $(GENPOT)
+
+ $(srcdir)/cat-id-tbl.c: stamp-cat-id; @:
+ $(srcdir)/stamp-cat-id: $(PACKAGE).pot
+@@ -214,18 +211,21 @@
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
+- mv $$lang.po $$lang.old.po; \
++ cp $$lang.po $$lang.old.po; \
+ echo "$$lang:"; \
+- if $(MSGMERGE) $$lang.old.po $(PACKAGE).pot -o $$lang.po; then \
+- rm -f $$lang.old.po; \
++ if $(MSGMERGE) $$lang; then \
++ rm -f $$lang.old.po; \
+ else \
+ echo "msgmerge for $$cat failed!"; \
+- rm -f $$lang.po; \
+ mv $$lang.old.po $$lang.po; \
+ fi; \
+ done
+
+-POTFILES: POTFILES.in
++.headerlock:
++ $(GENHEAD)
++ touch .headerlock
++
++POTFILES: POTFILES.in .headerlock
+ ( if test 'x$(srcdir)' != 'x.'; then \
+ posrcprefix='$(top_srcdir)/'; \
+ else \
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 507f8eebbf..40e8342579 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -146,14 +146,14 @@ shell/e-storage.c
shell/e-storage-set-view.c
shell/main.c
#tests/ui-tests/message-browser.c
-ui/evolution-addressbook-ldap.h
-ui/evolution-addressbook.h
-ui/evolution-calendar.h
-ui/evolution-contact-editor.h
-ui/evolution-event-editor.h
-ui/evolution-mail.h
-ui/evolution-subscribe.h
-ui/evolution.h
+ui/evolution-addressbook-ldap.xml
+ui/evolution-addressbook.xml
+ui/evolution-calendar.xml
+ui/evolution-contact-editor.xml
+ui/evolution-event-editor.xml
+ui/evolution-mail.xml
+ui/evolution-subscribe.xml
+ui/evolution.xml
widgets/meeting-time-sel/e-meeting-time-sel.c
widgets/meeting-time-sel/e-meeting-time-sel-item.c
widgets/misc/e-calendar.c
diff --git a/po/ui-extract.pl b/po/ui-extract.pl
new file mode 100755
index 0000000000..a7ccf78bfc
--- /dev/null
+++ b/po/ui-extract.pl
@@ -0,0 +1,182 @@
+#!/usr/bin/perl -w
+
+# The XML UI Translation Extractor
+# (C) 2000 The Free Software Foundation
+#
+# Authors: Kenneth Christiansen <kenneth@gnu.org>
+
+use strict;
+use Getopt::Long;
+
+my $VERSION = "0.6.1";
+
+my $FILE = $ARGV[0];
+my $HELP_ARG = "0";
+my $VERSION_ARG = "0";
+my $UPDATE_ARG = "0";
+my %string = ();
+my $n = 0;
+
+$| = 1;
+
+GetOptions (
+ "help|h|?" => \$HELP_ARG,
+ "version|v" => \$VERSION_ARG,
+ "update" => \$UPDATE_ARG,
+ ) or &Error;
+
+&SplitOnArgument;
+
+
+#---------------------------------------------------
+# Check for options.
+# This section will check for the different options.
+#---------------------------------------------------
+
+sub SplitOnArgument {
+
+ if ($VERSION_ARG) {
+ &Version;
+
+ } elsif ($HELP_ARG) {
+ &Help;
+
+ } elsif ($UPDATE_ARG) {
+ &Xmlfiles;
+
+ } elsif (@ARGV > 0) {
+ &Message;
+ &Xmlfiles;
+
+ } else {
+ &Help;
+
+ }
+}
+
+#-------------------
+sub Version{
+ print "The XML UI Translations Extractor $VERSION\n";
+ print "Written by Kenneth Christiansen, 2000.\n\n";
+ print "Copyright (C) 2000 Free Software Foundation, Inc.\n";
+ print "This is free software; see the source for copying conditions. There is NO\n";
+ print "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n";
+ exit;
+}
+
+#-------------------
+sub Help{
+ print "Usage: ui-extract.pl [FILENAME] [OPTIONS] ...\n";
+ print "Generates a headerfile from an xml source.\n\nGraps all strings ";
+ print "between <_translatable_node> and it's end tag,\nwhere tag are all allowed ";
+ print "xml tags. Read the docs for more info.\n\n";
+ print " -V, --version shows the version\n";
+ print " -H, --help shows this help page\n";
+ print "\nReport bugs to <kenneth\@gnu.org>.\n";
+ exit;
+}
+
+#-------------------
+sub Error{
+# print "ui-extract: invalid option @ARGV\n";
+ print "Try `ui-extract.pl --help' for more information.\n";
+ exit;
+}
+
+sub Message {
+ print "Generating headerfile for XML translation.\n";
+}
+
+sub Xmlfiles {
+
+ if (-s "$FILE.h"){
+ unlink "$FILE.h";
+ }
+
+ &Convert ($FILE);
+
+
+ open OUT, ">>$FILE.h";
+ &addMessages;
+ close OUT;
+
+ print "Wrote $FILE.h\n";
+}
+
+#-------------------
+sub Convert($) {
+
+ if ($ARGV[1]){
+ $FILE = $ARGV[1];
+ } else {
+ $FILE = $ARGV[0];
+ }
+
+ #-----------------
+ # Reading the file
+ #-----------------
+ my $input; {
+ local (*IN);
+ local $/; #slurp mode
+ open (IN, "<$FILE") || die "can't open $FILE: $!";
+ $input = <IN>;
+ }
+
+ if (!-s "$FILE.h"){
+ open OUT, ">$FILE.h";
+
+ print OUT "/*\n";
+ print OUT " * Translatable strings file generated by extract-ui.\n";
+ print OUT " * Add this file to your project's POTFILES.in\n";
+ print OUT " * DO NOT compile it as part of your application.\n";
+ print OUT " */\n\n";
+
+ }
+ close OUT;
+
+ ### For generic translatable XML files ###
+
+ if ($FILE =~ /xml$/sg){
+ while ($input =~ /[\t\n\s]_[a-zA-Z0-9_]+=\"([^\"]+)\"/sg) {
+ $string{$1} = [];
+ }
+
+ while ($input =~ /<_[a-zA-Z0-9_]+>(..[^_]*)<\/_[a-zA-Z0-9_]+>/sg) {
+ $string{$1} = [];
+ }}
+
+ ### For translatable Glade XML files ###
+
+ if ($FILE =~ /glade$/sg){
+ my $translate = "label|title|text|format|copyright|comments|preview_text|tooltip";
+
+ while ($input =~ /<($translate)>(..[^<]*)<\/($translate)>/sg) {
+ $string{$2} = [];
+ }}
+ }
+
+sub addMessages{
+
+ foreach my $theMessage (sort keys %string) {
+ my ($lineNo,$fileName) = @{ $string{$theMessage} };
+
+ if ($theMessage =~ /\n/) {
+ print OUT "gchar *s = N_(";
+
+ $n = 1;
+ for (split /\n/, $theMessage) {
+ $_ =~ s/^\s+//mg;
+ if ($n > 1) { print OUT " ";}
+ $n++;
+ print OUT "\"$_\");\n";
+ }
+
+ } else {
+
+ print OUT "gchar *s = N_(\"$theMessage\");\n";
+
+ }
+
+ }
+}
+
diff --git a/po/update.pl b/po/update.pl
index 9ca5a33d8a..e7fc4a4253 100755
--- a/po/update.pl
+++ b/po/update.pl
@@ -5,7 +5,7 @@
#
# Author(s): Kenneth Christiansen
#
-# GNOME PO Update Utility requires the XML to POT Generator, ui-extract.pl
+# GNOME PO Update Utility can use the XML to POT Generator, ui-extract.pl
# Please distribute it along with this scrips, aswell as desk.po and
# README.tools.
#
@@ -13,32 +13,51 @@
# used within.
-$VERSION = "1.3.2";
-$LANG = $ARGV[0];
-$PACKAGE = "evolution";
-$| = 1;
+# Declare global variables
+#-------------------------
+my $VERSION = "1.5beta4";
+my $LANG = $ARGV[0];
+my $PACKAGE = "evolution";
+# Always print as the first thing
+#--------------------------------
+$| = 1;
+# Give error if script is run without an argument
+#------------------------------------------------
if (! $LANG){
print "update.pl: missing file arguments\n";
print "Try `update.pl --help' for more information.\n";
exit;
}
+# Use the supplied arguments
+#---------------------------
if ($LANG=~/^-(.)*/){
- if ("$LANG" eq "--version" || "$LANG" eq "-V"){
+ if ("$LANG" eq "--version" || "$LANG" eq "-V"){
&Version;
}
- elsif ($LANG eq "--help" || "$LANG" eq "-H"){
+ elsif ($LANG eq "--help" || "$LANG" eq "-H"){
&Help;
}
- elsif ($LANG eq "--dist" || "$LANG" eq "-D"){
+ elsif ($LANG eq "--dist" || "$LANG" eq "-D"){
&Merging;
-# &Status;
}
- elsif ($LANG eq "--pot" || "$LANG" eq "-P"){
+ elsif ($LANG eq "--pot" || "$LANG" eq "-P"){
+
+ # Check for .headerlock file, so the Makefile
+ # will not generate the header files twise
+ #--------------------------------------------
+ if (-e ".headerlock"){
&GeneratePot;
+ }else{
+ &GenHeaders;
+ &GeneratePot;}
+ exit;
+ }
+ elsif ($LANG eq "--headers" || "$LANG" eq "-S"){
+ &GenHeaders;
exit;
}
elsif ($LANG eq "--maintain" || "$LANG" eq "-M"){
@@ -49,17 +68,28 @@ if ($LANG=~/^-(.)*/){
}
} else {
+
+ # Run standard procedure
+ #-----------------------
if(-s "$LANG.po"){
+ &GenHeaders;
&GeneratePot;
&Merging;
&Status;
}
+
+ # Report error if the language file supplied
+ # to the command line is non-existent
+ #-------------------------------------------
else {
&NotExisting;
}
}
sub Version{
+
+ # Print version information
+ #--------------------------
print "GNOME PO Updater $VERSION\n";
print "Written by Kenneth Christiansen <kenneth\@gnome.org>, 2000.\n\n";
print "Copyright (C) 2000 Free Software Foundation, Inc.\n";
@@ -69,13 +99,16 @@ sub Version{
}
sub Help{
+
+ # Print usage information
+ #------------------------
print "Usage: ./update.pl [OPTIONS] ...LANGCODE\n";
print "Updates pot files and merge them with the translations.\n\n";
- print " -V, --version shows the version\n";
print " -H, --help shows this help page\n";
- print " -P, --pot only generates the potfile\n";
-# print " -S, --status shows the status of the po file\n";
+ print " -P, --pot generate the pot file only\n";
+ print " -S, --headers generate the XML headerfiles in POTFILES.in\n";
print " -M, --maintain search for missing files in POTFILES.in\n";
+ print " -V, --version shows the version\n";
print "\nExamples of use:\n";
print "update.sh --pot just creates a new pot file from the source\n";
print "update.sh da created new pot file and updated the da.po file\n\n";
@@ -84,139 +117,233 @@ sub Help{
}
sub Maintain{
- $a="find ../ -print | egrep '.*\\.(c|y|cc|c++|h|gob)' ";
+
+ # Search and fine, all translatable files
+ # ---------------------------------------
+ $i18nfiles="find ../ -print | egrep '.*\\.(c|y|cc|c++|h|gob)' ";
- open(BUF2, "POTFILES.in") || die "update.pl: there's not POTFILES.in!!!\n";
+ open(BUF2, "POTFILES.in") || die "update.pl: there's no POTFILES.in!!!\n";
print "Searching for missing _(\" \") entries...\n";
- open(BUF1, "$a|");
+ open(BUF1, "$i18nfiles|");
- @buf2 = <BUF2>;
- @buf1 = <BUF1>;
+ @buf1_1 = <BUF1>;
+ @buf1_2 = <BUF2>;
- if (-s "POTFILES.ignore"){
- open FILE, "POTFILES.ignore";
+ # Check if we should ignore some found files, when
+ # comparing with POTFILES.in
+ #-------------------------------------------------
+ if (-s ".potignore"){
+ open FILE, ".potignore";
while (<FILE>) {
if ($_=~/^[^#]/o){
push @bup, $_;
}
}
- print "POTFILES.ignore found! Ignoring files...\n";
- @buf2 = (@bup, @buf2);
+ print "Found .potignore: Ignoring files...\n";
+ @buf1_2 = (@bup, @buf1_2);
}
- foreach my $file (@buf1){
+ foreach my $file (@buf1_1){
open FILE, "<$file";
while (<FILE>) {
if ($_=~/_\(\"/o){
$file = unpack("x3 A*",$file) . "\n";
- push @buff1, $file;
+ push @buf2_1, $file;
last;
}
}
}
- @bufff1 = sort (@buff1);
- @bufff2 = sort (@buf2);
+ @buf3_1 = sort (@buf2_1);
+ @buf3_2 = sort (@buf1_2);
my %in2;
- foreach (@bufff2) {
- $in2{$_} = 1;
+ foreach (@buf3_2) {
+ $in2{$_} = 1;
}
- foreach (@bufff1){
- if (!exists($in2{$_})){
- push @result, $_ }
- }
+ foreach (@buf3_1){
+ if (!exists($in2{$_})){
+ push @result, $_
+ }
+ }
+ # Save file with information about the files missing
+ # if any, and give information about this proceedier
+ #---------------------------------------------------
if(@result){
- open OUT, ">POTFILES.in.missing";
+ open OUT, ">missing";
print OUT @result;
- print "\nHere are the results:\n\n", @result, "\n";
- print "File POTFILES.in.missing is being placed in directory...\n";
- print "Please add the files that should be ignored in POTFILES.ignore\n";
+ print "\nHere is the result:\n\n", @result, "\n";
+ print "The file \"missing\" has been placed in the current directory.\n";
+ print "Files supposed to be ignored should be placed in \".potignore\"\n";
}
+
+ # If there is nothing to complain about, notice the user
+ #-------------------------------------------------------
else{
print "\nWell, it's all perfect! Congratulation!\n";
}
}
sub InvalidOption{
+
+ # Handle invalid arguments
+ #-------------------------
print "update.pl: invalid option -- $LANG\n";
print "Try `update.pl --help' for more information.\n";
}
+sub GenHeaders{
-sub GeneratePot{
+ # Generate the .h header files, so we can allow glade and
+ # xml translation support
+ #--------------------------------------------------------
+ if(-s "ui-extract.pl"){
+
+ print "Found ui-extract.pl script\nRunning ui-extract...\n";
- print "Building the $PACKAGE.pot...\n\n";
-
- $c="xgettext --default-domain\=$PACKAGE --directory\=\.\."
- ." --add-comments --keyword\=\_ --keyword\=N\_"
- ." --files-from\=\.\/POTFILES\.in ";
- $c1="test \! -f $PACKAGE\.po \|\| \( rm -f \.\/$PACKAGE\.pot "
- ."&& mv $PACKAGE\.po \.\/$PACKAGE\.pot \)";
-
- if (-s "ui-extract.pl"){
- open FILE, "<POTFILES.in";
- while (<FILE>) {
- if ($_=~ /(.*)(\.xml\.h)/o){
- $filename = "$1\.xml";
- $xmlfiles="\.\/ui-extract.pl --update ../$filename";
- system($xmlfiles);
- }
-
- elsif ($_=~ /(.*)(\.glade\.h)/o){
- $filename = "$1\.glade";
- $xmlfiles="\.\/ui-extract.pl --update ../$filename";
- system($xmlfiles);
- }
+ open FILE, "<POTFILES.in";
+ while (<FILE>) {
+
+ # Find .xml.h files in POTFILES.in and generate the
+ # files with help from the ui-extract.pl script
+ #--------------------------------------------------
+ if ($_=~ /(.*)(\.xml)/o){
+ $filename = "../$1.xml";
+ $xmlfiles="perl \.\/ui-extract.pl --update $filename";
+ system($xmlfiles);
+ }
+
+ # Find .glade.h files in POTFILES.in and generate
+ # the files with help from the ui-extract.pl script
+ #--------------------------------------------------
+ elsif ($_=~ /(.*)(\.glade)/o){
+ $filename = "../$1.glade";
+ $xmlfiles="perl \.\/ui-extract.pl --update $filename";
+ system($xmlfiles);
+ }
}
+ close FILE;
+
+ # Create .headerlock file, so the script will know
+ # that we already passed this section. This is required
+ # since the individual sections can be reaced at different
+ # times by the Makefile
+ #---------------------------------------------------------
+ system("touch .headerlock");
+ }
+}
+
+sub GeneratePot{
+
+ # Generate the potfiles from the POTFILES.in file
+ #------------------------------------------------
+
+ print "Building the $PACKAGE.pot...\n";
+
+ system ("mv POTFILES.in POTFILES.in.old");
+
+ open INFILE, "<POTFILES.in.old";
+ open OUTFILE, ">POTFILES.in";
+ while (<INFILE>) {
+ s/\.glade$/\.glade\.h/;
+ s/\.xml$/\.xml\.h/;
+ print OUTFILE $_;
}
+ close OUTFILE;
+ close INFILE;
+
+ $GETTEXT ="xgettext --default-domain\=$PACKAGE --directory\=\.\."
+ ." --add-comments --keyword\=\_ --keyword\=N\_"
+ ." --files-from\=\.\/POTFILES\.in ";
+ $GTEST ="test \! -f $PACKAGE\.po \|\| \( rm -f \.\/$PACKAGE\.pot "
+ ."&& mv $PACKAGE\.po \.\/$PACKAGE\.pot \)";
+
+ system($GETTEXT);
+ system($GTEST);
+ print "Wrote $PACKAGE.pot\n";
+ system("mv POTFILES.in.old POTFILES.in");
+
+ # If .headerlock file is found, it means that the potfiles
+ # already has been generated. If so delete the generated
+ # .h header files. The reason for this approach with a
+ # file as a marker is due to that the Makefile runs the
+ # scripts in turns
+ #---------------------------------------------------------
- close FILE;
+ if(-e ".headerlock"){
+ unlink(".headerlock");
- system($c);
- system($c1);
+ print "Removing generated header (.h) files...";
+
+ open FILE, "<POTFILES.in";
+ while (<FILE>) {
+
+ # Delete header files coming from xml files
+ #------------------------------------------
+ if ($_=~ /(.*)(\.xml)/o){
+ $filename = "../$1.xml.h";
+ unlink($filename);
+ }
+
+ # Delete header files coming from glade files
+ #--------------------------------------------
+ elsif ($_=~ /(.*)(\.glade)/o){
+ $filename = "../$1.glade.h";
+ unlink($filename);
+ }
+ }
+ close FILE;
+ }
+ print "done\n";
}
sub Merging{
if ($ARGV[1]){
- $LANG = $ARGV[1];
+ $LANG = $ARGV[1];
} else {
$LANG = $ARGV[0];
}
if ($ARGV[0] ne "--dist" && $ARGV[0] ne "-D") {
- print "\n\nMerging $LANG.po with $PACKAGE.pot, creating updated $LANG.po...\n\n";
+ print "Merging $LANG.po with $PACKAGE.pot...";
}
- $d="cp $LANG.po $LANG.po.old && msgmerge $LANG.po.old $PACKAGE.pot -o $LANG.po";
+ $MERGE="cp $LANG.po $LANG.po.old && msgmerge $LANG.po.old $PACKAGE.pot -o $LANG.po";
- if ($ARGV[0] ne "--dist" && $ARGV[0] ne "-D") {
- print "Working, please wait";
- }
- system($d);
+ system($MERGE);
if ($ARGV[0] ne "--dist" && $ARGV[0] ne "-D") {
print "\n\n";
}
+ # Remove the "messages" trash file generated
+ # by gettext, aswell as the backup file
+ #-------------------------------------------
unlink "messages";
unlink "$LANG.po.old";
}
sub NotExisting{
- print "update.pl: sorry $LANG.po does not exist!\n";
+
+ # Report error if supplied language
+ # file is non-existant
+ #----------------------------------
+ print "update.pl: sorry, $LANG.po does not exist!\n";
print "Try `update.pl --help' for more information.\n";
exit;
}
sub Status{
- $f="msgfmt --statistics $LANG.po";
+
+ # Print status information about the po file
+ #-------------------------------------------
+ $STATUS="msgfmt --statistics $LANG.po";
- system($f);
+ system($STATUS);
print "\n";
}