aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xpo/update.pl260
1 files changed, 158 insertions, 102 deletions
diff --git a/po/update.pl b/po/update.pl
index 9cc746fa46..9ca5a33d8a 100755
--- a/po/update.pl
+++ b/po/update.pl
@@ -1,14 +1,23 @@
#!/usr/bin/perl -w
-# GNOME po update utility.
+# GNOME PO Update Utility.
# (C) 2000 The Free Software Foundation
#
# Author(s): Kenneth Christiansen
+#
+# GNOME PO Update Utility requires the XML to POT Generator, ui-extract.pl
+# Please distribute it along with this scrips, aswell as desk.po and
+# README.tools.
+#
+# Also remember to change $PACKAGE to reflect the package the script is
+# used within.
-$VERSION = "1.2.5 beta 2";
+$VERSION = "1.3.2";
$LANG = $ARGV[0];
$PACKAGE = "evolution";
+$| = 1;
+
if (! $LANG){
print "update.pl: missing file arguments\n";
@@ -19,118 +28,129 @@ if (! $LANG){
if ($LANG=~/^-(.)*/){
if ("$LANG" eq "--version" || "$LANG" eq "-V"){
- 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";
- 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;
+ &Version;
}
-
-
elsif ($LANG eq "--help" || "$LANG" eq "-H"){
- 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 " -M, --maintain search for missing files in POTFILES.in\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";
- print "Report bugs to <kenneth\@gnome.org>.\n";
- exit;
+ &Help;
}
-
- elsif($LANG eq "--pot" || "$LANG" eq "-P"){
-
- print "Building the $PACKAGE.pot ...";
-
- $b="xgettext --default-domain\=$PACKAGE --directory\=\.\."
- ." --add-comments --keyword\=\_ --keyword\=N\_"
- ." --files-from\=\.\/POTFILES\.in ";
- $b1="test \! -f $PACKAGE\.po \|\| \( rm -f \.\/$PACKAGE\.pot "
- ."&& mv $PACKAGE\.po \.\/$PACKAGE\.pot \)";
-
- `$b`;
- `$b1`;
-
- print "...done\n";
-
+ elsif ($LANG eq "--dist" || "$LANG" eq "-D"){
+ &Merging;
+# &Status;
+ }
+ elsif ($LANG eq "--pot" || "$LANG" eq "-P"){
+ &GeneratePot;
exit;
}
-
elsif ($LANG eq "--maintain" || "$LANG" eq "-M"){
+ &Maintain;
+ }
+ else {
+ &InvalidOption;
+ }
- $a="find ../ -print | egrep '.*\\.(c|y|cc|c++|h|gob)' ";
-
- open(BUF2, "POTFILES.in") || die "update.pl: there's not POTFILES.in!!!\n";
- print "Searching for missing _(\" \") entries...\n";
- open(BUF1, "$a|");
-
+} else {
+ if(-s "$LANG.po"){
+ &GeneratePot;
+ &Merging;
+ &Status;
+ }
+ else {
+ &NotExisting;
+ }
+}
- @buf2 = <BUF2>;
- @buf1 = <BUF1>;
+sub Version{
+ 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";
+ 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;
+}
- if (-s "POTFILES.ignore"){
- open FILE, "POTFILES.ignore";
- while (<FILE>) {
- if ($_=~/^[^#]/o){
- push @bup, $_;
- }
- }
- print "POTFILES.ignore found! Ignoring files...\n";
- @buf2 = (@bup, @buf2);
- }
+sub Help{
+ 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 " -M, --maintain search for missing files in POTFILES.in\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";
+ print "Report bugs to <kenneth\@gnome.org>.\n";
+ exit;
+}
- foreach my $file (@buf1){
- open FILE, "<$file";
- while (<FILE>) {
- if ($_=~/_\(\"/o){
- $file = unpack("x3 A*",$file) . "\n";
- push @buff1, $file;
- last;
- }
- }
- }
+sub Maintain{
+ $a="find ../ -print | egrep '.*\\.(c|y|cc|c++|h|gob)' ";
- @bufff1 = sort (@buff1);
+ open(BUF2, "POTFILES.in") || die "update.pl: there's not POTFILES.in!!!\n";
+
+ print "Searching for missing _(\" \") entries...\n";
+
+ open(BUF1, "$a|");
- @bufff2 = sort (@buf2);
+ @buf2 = <BUF2>;
+ @buf1 = <BUF1>;
- my %in2;
- foreach (@bufff2) {
- $in2{$_} = 1;
+ if (-s "POTFILES.ignore"){
+ open FILE, "POTFILES.ignore";
+ while (<FILE>) {
+ if ($_=~/^[^#]/o){
+ push @bup, $_;
+ }
}
+ print "POTFILES.ignore found! Ignoring files...\n";
+ @buf2 = (@bup, @buf2);
+ }
- foreach (@bufff1){
- if (!exists($in2{$_})){
- push @result, $_ }
+ foreach my $file (@buf1){
+ open FILE, "<$file";
+ while (<FILE>) {
+ if ($_=~/_\(\"/o){
+ $file = unpack("x3 A*",$file) . "\n";
+ push @buff1, $file;
+ last;
}
-
- if(@result){
- open OUT, ">POTFILES.in.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";
}
- else{
- print "\nWell, it's all perfect! Congratulation!\n";
- }
}
+ @bufff1 = sort (@buff1);
+ @bufff2 = sort (@buf2);
- else{
- print "update.pl: invalid option -- $LANG\n";
- print "Try `update.pl --help' for more information.\n";
+ my %in2;
+ foreach (@bufff2) {
+ $in2{$_} = 1;
}
- exit;
+
+ foreach (@bufff1){
+ if (!exists($in2{$_})){
+ push @result, $_ }
+ }
+
+ if(@result){
+ open OUT, ">POTFILES.in.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";
}
+ else{
+ print "\nWell, it's all perfect! Congratulation!\n";
+ }
+}
-elsif(-s "$LANG.po"){
+sub InvalidOption{
+ print "update.pl: invalid option -- $LANG\n";
+ print "Try `update.pl --help' for more information.\n";
+}
+
+
+sub GeneratePot{
- print "Building the $PACKAGE.pot ...";
+ print "Building the $PACKAGE.pot...\n\n";
$c="xgettext --default-domain\=$PACKAGE --directory\=\.\."
." --add-comments --keyword\=\_ --keyword\=N\_"
@@ -138,29 +158,65 @@ elsif(-s "$LANG.po"){
$c1="test \! -f $PACKAGE\.po \|\| \( rm -f \.\/$PACKAGE\.pot "
."&& mv $PACKAGE\.po \.\/$PACKAGE\.pot \)";
- `$c`;
- `$c1`;
+ 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);
+ }
+ }
+ }
- print "...done";
+ close FILE;
- print "\nNow merging $LANG.po with $PACKAGE.pot, and creating an updated $LANG.po ...\n";
+ system($c);
+ system($c1);
+}
-
- $d="mv $LANG.po $LANG.po.old && msgmerge $LANG.po.old $PACKAGE.pot -o $LANG.po";
+sub Merging{
- $f="msgfmt --statistics $LANG.po";
+ if ($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";
+ }
+
+ $d="cp $LANG.po $LANG.po.old && msgmerge $LANG.po.old $PACKAGE.pot -o $LANG.po";
- `$d`;
- `$f`;
+ if ($ARGV[0] ne "--dist" && $ARGV[0] ne "-D") {
+ print "Working, please wait";
+ }
+ system($d);
+
+ if ($ARGV[0] ne "--dist" && $ARGV[0] ne "-D") {
+ print "\n\n";
+ }
unlink "messages";
unlink "$LANG.po.old";
-
- exit;
}
-else{
+sub NotExisting{
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";
+
+ system($f);
+ print "\n";
+}