12 my $txt = $tab{$key1}{$key2};
20 my $txt = $tab{$key1}{$key2};
22 my @key = split /\$/, "$txt";
25 return "vsprintf(_(\"$txt\"), $extra)";
27 return "TOCHECKvsprintf(_(\"$txtsave\"), $extra)";
32 if ($verbose > 1) {print "Reading alltab.txt\n"};
33 open(FILE, "<", "alltab.txt") or die "Can't open alltab.txt: $!";
34 my $re = "^(.[^ ]*) (.[^ ]*) (.*)";
37 $tab{"$1"}{"$2"}="$3";
47 open(FILE, "<", $filename) or die "Can't open $filename: $!";
49 my ($buf, $data, $n); while (($n = read FILE, $data, 1000000) != 0) {if($verbose > 5){print "$n bytes read\n"}; $buf .= $data; } close(FILE);
51 $buf =~ s{\QLanguage->getText\E}{GLOBALS['Language']->getText}sg;
53 my $re = qr{ ( # paren group 1 (full function)
54 \QGLOBALS['Language']->getText\E
55 ( # paren group 2 (parens)
57 ( # paren group 3 (contents of parens)
59 (?> [^()]+ ) # Non-parens without backtracking
61 (?2) # Recurse to start of paren group 2
69 my (@key,$instr,$outstr,$extra,$params,$thrdparam,$cnt);
70 while ($buf =~ /$re/g) {
74 @key = split /,\s*/, "$params";
77 if ($verbose > 5) {print "=($cnt)= $instr ==> FUNC ERROR (too few args ) === \n"};
82 $outstr=findtxt2($key[0],$key[1]);
83 if ($verbose > 5) {print "=($cnt)= $instr ==> $outstr === \n"};
84 $buf =~ s{\$\Q$instr\E}{$outstr}s;
90 $thrdparam =~ s/.[^,]*,.[^,]*,//g;
91 $outstr=findtxt3($key[0],$key[1],$thrdparam);
92 if ($verbose > 5) {print "=($cnt)= $instr ==> $outstr === \n"};
93 if ($verbose > 10) {print "=(*)= thrdparam ==> $thrdparam === \n"};
94 $buf =~ s{\$\Q$instr\E}{$outstr}s;
100 $thrdparam =~ s/.[^,]*,.[^,]*,//g;
101 $outstr=findtxt3($key[0],$key[1],$thrdparam);
102 if ($verbose > 5) {print "=($cnt)= $instr ==> FUNC ERROR (too many args) === \n"};
103 if ($verbose > 10) {print "=(*)= outstr ==> $outstr === \n"};
104 if ($verbose > 10) {print "=(*)= extra ==> $extra === \n"};
105 if ($verbose > 10) {print "=(*)= params ==> $params === \n"};
106 if ($verbose > 10) {print "=(*)= thrdparam ==> $thrdparam === \n"};
107 $buf =~ s{\$\Q$instr\E}{$outstr}s;
113 if ($verbose > 10) {print "$buf\n"};
116 if ( ! -f "alltab.txt" ){
117 system("find . -name '*.tab' | grep -v '.svn' | grep en_US | xargs cat > alltab.txt");
121 if ($verbose > 1) {print "Reading $ARGV[0]\n"};
122 tab2gettextfile($ARGV[0]);
125 #print "\$1 = $1\n", "\$2 = $2\n";
126 #my @key = split /,\s*/, "$2";