File:  [LON-CAPA] / loncom / localize / localize / synch.pl
Revision 1.7: download - view: text, annotated - select for diffs
Fri Nov 28 02:12:05 2003 UTC (20 years, 6 months ago) by www
Branches: MAIN
CVS tags: version_2_7_X, version_2_7_1, version_2_7_0, version_2_6_X, version_2_6_99_1, version_2_6_99_0, version_2_6_3, version_2_6_2, version_2_6_1, version_2_6_0, version_2_5_X, version_2_5_99_1, version_2_5_99_0, version_2_5_2, version_2_5_1, version_2_5_0, version_2_4_X, version_2_4_99_0, version_2_4_2, version_2_4_1, version_2_4_0, version_2_3_X, version_2_3_99_0, version_2_3_2, version_2_3_1, version_2_3_0, version_2_2_X, version_2_2_99_1, version_2_2_99_0, version_2_2_2, version_2_2_1, version_2_2_0, version_2_1_X, version_2_1_99_3, version_2_1_99_2, version_2_1_99_1, version_2_1_99_0, version_2_1_3, version_2_1_2, version_2_1_1, version_2_1_0, version_2_0_X, version_2_0_99_1, version_2_0_2, version_2_0_1, version_2_0_0, version_1_99_3, version_1_99_2, version_1_99_1_tmcc, version_1_99_1, version_1_99_0_tmcc, version_1_99_0, version_1_3_X, version_1_3_3, version_1_3_2, version_1_3_1, version_1_3_0, version_1_2_X, version_1_2_99_1, version_1_2_99_0, version_1_2_1, version_1_2_0, version_1_1_X, version_1_1_99_5, version_1_1_99_4, version_1_1_99_3, version_1_1_99_2, version_1_1_99_1, version_1_1_99_0, version_1_1_3, version_1_1_2, version_1_1_1, version_1_1_0, version_1_0_99_3, version_1_0_99_2, version_1_0_99_1, HEAD
New optional "numbered" mode, take care of "'" in phrases.

    1: #$numbered=1;
    2: 
    3: sub readlexicon {
    4:     my $fn=shift;
    5:     open(IN,$fn);
    6:     my %lexicon=();
    7:     my $contents=join('',<IN>);
    8:     close(IN);
    9:     $contents=~s/package Apache\:[^\;]+//;
   10:     $contents=~s/use base[^\;]+//;
   11:     eval($contents.'; %lexicon=%Lexicon;');
   12:     delete $lexicon{'_AUTO'};
   13:     delete $lexicon{'char_encoding'};
   14:     delete $lexicon{'language_code'};
   15:     return %lexicon;
   16: }
   17: 
   18: sub readnew {
   19:     open(IN,'newphrases.txt');
   20:     my %lexicon='';
   21:     while (my $line=<IN>) {
   22: 	chomp($line);
   23: 	$lexicon{$line}=$line;
   24:     }
   25:     close(IN);
   26:     return %lexicon;
   27: }
   28: 
   29: # ==== Main Program
   30: 
   31: my %master=&readnew();
   32: 
   33: foreach (<*.pm>) {
   34:     print "Reading: ".$_."\n";
   35:     %master=(%master,&readlexicon($_));
   36: }
   37: 
   38: # Remove obsolete from synch
   39: 
   40: open(IN,'removephrases.txt');
   41: while (my $line=<IN>) {
   42:     chomp($line);
   43:     delete $master{$line};
   44: }
   45: close(IN);
   46: 
   47: 
   48: foreach my $fn (<*.pm>) {
   49:     print "Synching: ".$fn."\n";
   50:     my %lang=&readlexicon($fn);
   51:     system ("cp $fn $fn.original");
   52:     open(IN,$fn.'.original');
   53:     open(OUT,'>'.$fn);
   54:     my $found=0;
   55:     while (<IN>) {
   56: 	if ($_=~/\#\s*SYNCMARKER/) { $found=1; last; } 
   57: 	print OUT $_;
   58:     }
   59:     if ($found) {
   60: 	$i=0;
   61: 	print OUT "\n\#SYNC ".localtime()."\n";
   62: 	foreach my $key (sort keys %master) {
   63: 	    unless ($key) { next; }
   64: 	    unless ($lang{$key}) {
   65: 		my $comment='';
   66: 		my $copytrans=$key;
   67: 		foreach (reverse sort keys %lang) {
   68: 		    $copytrans=~s/$_/$lang{$_}/gsi;
   69: 		}
   70: 		if (lc($copytrans) ne lc($key)) {
   71: 		    $comment='# '.$copytrans;
   72:                 }
   73: 		if ($numbered) {
   74: 		    $i++;
   75: 		    $num=' ('.$i.')';
   76: 		} else {
   77: 		    $num='';
   78: 		}
   79: 		if ($key=~/\'/) {
   80: 		    $del='"';
   81: 		} else {
   82: 		    $del="'";
   83: 		}
   84: 		print OUT (<<ENDNEW);
   85:    $del$key$del
   86: => $del$key$num$del,
   87: $comment
   88: ENDNEW
   89: 	    }
   90: 	}
   91: 
   92: 	print OUT "\n\#SYNCMARKER\n";
   93: 	foreach (<IN>) {
   94: 	    print OUT $_;
   95: 	}
   96:     }
   97:     close (IN);
   98:     close (OUT);
   99: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>