diff options
| -rwxr-xr-x | tools/uplang | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/tools/uplang b/tools/uplang new file mode 100755 index 0000000..f63edd3 --- /dev/null +++ b/tools/uplang @@ -0,0 +1,76 @@ +#!/usr/bin/perl + +if(!$ARGV[0]) { + print <<MOO +Usage: lang.pl <english file> <translated file> +MOO +; + exit; +} + +open(ENG, "<$ARGV[0]"); +while(<ENG>) { + if($_ =~ / *\#/) { + # comment + next; + } + if($_ =~ / *([a-z]+): *(.*)/) { + ($var, $value) = ($1, $2); + # print "$var => $value\n"; + + $set{$var} = $value; + + if($var eq "new") { + # the last one for a single phrase + $all{$set{'id'}, 'desc'}=$set{'desc'}; + $all{$set{'id'}, 'eng'}=$set{'eng'}; + + $ids{$set{'id'}}=1; + undef %set; + } + } +} +close(ENG); + +undef %set; +open(NEW, "<$ARGV[1]"); +while(<NEW>) { + if($_ =~ / *\#/) { + # comment + next; + } + if($_ =~ / *([a-z]+): *(.*)/) { + ($var, $value) = ($1, $2); + + $set{$var} = $value; + + if($var eq "new") { + # the last one for a single phrase + + print "\nid: ".$set{'id'}."\n"; + print "desc: ".$set{'desc'}."\n"; + if($set{'eng'} ne $all{$set{'id'}, 'eng'}) { + print "### English phrase was changed! Previous translation was made on:\n", + "### ".$set{'eng'}."\n"; + $set{'eng'} = $all{$set{'id'}, 'eng'}; + } + print "eng: ".$set{'eng'}."\n"; + print "new: ".$set{'new'}."\n"; + + $ids{$set{'id'}}=0; + } + } +} +close(NEW); + +# output new phrases not already translated +for(sort keys %ids) { + if($ids{$_}) { + my $id=$_; + print "\nid: $_\n"; + print "desc: ".$all{$id, 'desc'}."\n"; + print "eng: ".$all{$id, 'eng'}."\n"; + print "### Not previously translated\n"; + print "new: \n"; + } +} |