#!/usr/bin/perl my %defstr, $k, $uname, $name, $new, $pref; if (stat "lang/en.i18n") { chomp ($pref = `pwd`); chdir "lang"; } if (stat "../lang/en.i18n") { chomp ($pref = `pwd`); chdir "../lang"; } open NRS, ") { chomp; if (m/^([0-9][0-9][0-9][0-9]):/) { if ($1 != 9999) { $neu = $1; } } } } $neu ++; return $neu; }} %defstr = {}; print "Numbering new translation entries.\n"; if ($#ARGV == -1) { chdir "../src"; @ARGV = glob "*.c"; chdir "../lang"; $pref = "../src"; } while ($uname = shift) { $name = "$pref/$uname"; stat "$name~" && next; stat "$name" || next; open IN, "<$name" || die; $match = 0; while () { $match = 1 if (m/i18n \(##*, "(([^"]*(\")*)*)"\)/); } next if not $match; print "$uname "; $nl = "\n"; rename ($name, "$name~"); open IN, "<$name~" || die; open OUT, ">$name" || die; while () { $k = $_; while ($k =~ m/i18n \(##*,((("(([^\"]*(\\.)*)*)")*(COL(NONE|CONTACT|CLIENT|MESS|SERV|ACK|SENT))* *)*)\)/) { $new = $1; $new =~ s/\\/\\\\/g; $new =~ s/\(/\\(/g; $new =~ s/\)/\\)/g; $new =~ s/\./\\./g; $new =~ s/\[/\\[/g; $new =~ s/\]/\\]/g; $new =~ s/\|/\\|/g; $new =~ s/\+/\\+/g; $new =~ s/\*/\\*/g; $new =~ s/\?/\\?/g; $new =~ s/\"/"/g; print $nl; $nl = ""; if (not defined $defstr{$new}) { $i = NewNumber (); $defstr{$new} = $i; print ("New translation: $i:$new\n"); } $l = $k; foreach $i (keys %defstr) { $k =~ s/i18n \(##*,($i)\)/i18n ($defstr{$i},$1)/g; } if (not $k cmp $l) { print "Line loops: $k"; last; } else { print "Line was: $l"; print "Line is: $k"; } } print OUT $k; } } print $nl . "Finished.\n";