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, 9 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>