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, 10 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.
#$numbered=1;
sub readlexicon {
my $fn=shift;
open(IN,$fn);
my %lexicon=();
my $contents=join('',<IN>);
close(IN);
$contents=~s/package Apache\:[^\;]+//;
$contents=~s/use base[^\;]+//;
eval($contents.'; %lexicon=%Lexicon;');
delete $lexicon{'_AUTO'};
delete $lexicon{'char_encoding'};
delete $lexicon{'language_code'};
return %lexicon;
}
sub readnew {
open(IN,'newphrases.txt');
my %lexicon='';
while (my $line=<IN>) {
chomp($line);
$lexicon{$line}=$line;
}
close(IN);
return %lexicon;
}
# ==== Main Program
my %master=&readnew();
foreach (<*.pm>) {
print "Reading: ".$_."\n";
%master=(%master,&readlexicon($_));
}
# Remove obsolete from synch
open(IN,'removephrases.txt');
while (my $line=<IN>) {
chomp($line);
delete $master{$line};
}
close(IN);
foreach my $fn (<*.pm>) {
print "Synching: ".$fn."\n";
my %lang=&readlexicon($fn);
system ("cp $fn $fn.original");
open(IN,$fn.'.original');
open(OUT,'>'.$fn);
my $found=0;
while (<IN>) {
if ($_=~/\#\s*SYNCMARKER/) { $found=1; last; }
print OUT $_;
}
if ($found) {
$i=0;
print OUT "\n\#SYNC ".localtime()."\n";
foreach my $key (sort keys %master) {
unless ($key) { next; }
unless ($lang{$key}) {
my $comment='';
my $copytrans=$key;
foreach (reverse sort keys %lang) {
$copytrans=~s/$_/$lang{$_}/gsi;
}
if (lc($copytrans) ne lc($key)) {
$comment='# '.$copytrans;
}
if ($numbered) {
$i++;
$num=' ('.$i.')';
} else {
$num='';
}
if ($key=~/\'/) {
$del='"';
} else {
$del="'";
}
print OUT (<<ENDNEW);
$del$key$del
=> $del$key$num$del,
$comment
ENDNEW
}
}
print OUT "\n\#SYNCMARKER\n";
foreach (<IN>) {
print OUT $_;
}
}
close (IN);
close (OUT);
}
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>