From 70b1a8b1cef34b956422c92d51aad73f47bc35a1 Mon Sep 17 00:00:00 2001 From: Vivek Dasmohapatra Date: Tue, 23 Apr 2013 19:47:39 +0100 Subject: Add new translation entries to the master file when importing --- utils/import-messages.pl | 37 +++++++++++++++++++++++++++++++------ 1 file changed, 31 insertions(+), 6 deletions(-) (limited to 'utils') diff --git a/utils/import-messages.pl b/utils/import-messages.pl index d34165a57..4c13a859e 100644 --- a/utils/import-messages.pl +++ b/utils/import-messages.pl @@ -59,6 +59,8 @@ sub main () my $opt_ok; my @input; my %message; + my $last_key; + my $last_plat; # option parsing: Getopt::Long::Configure( GETOPT_OPTS ); @@ -93,11 +95,33 @@ sub main () { use bytes; - if( !/#/ && - !/^\s*$/ && - /^([a-z]{2})\.([^.]+)\.([^:]+):/ ) + my( $lang, $plat, $key ); + + if( /^([a-z]{2})\.([^.]+)\.([^:]+):/ ) { - my( $lang, $plat, $key ) = ( $1, $2, $3 ); + ( $lang, $plat, $key ) = ( $1, $2, $3 ); + } + + if( $key || $message{ $last_key } ) + { + #print( $output "## $last_key -> $key\n" ); + # the key changed but we have a message for it still pending: + if( $last_key && $message{ $last_key } && ($key ne $last_key) ) + { + my $plt = $last_plat; + my $str = $message{ $last_key }; + my $msg = qq|$opt{lang}.$last_plat.$last_key:$str\n|; + + print( $output $msg ); + delete( $message{ $last_key } ); + + # if the line following our new translation is not blank, + # generate a synthetic group-separator: + if( !/^\s*$/ ) { print( $output "\n") } + } + + $last_key = $key; + $last_plat = $plat; if( $lang eq $opt{lang} ) { @@ -106,7 +130,8 @@ sub main () ( $opt{plat} eq 'any' || # all platforms ok $opt{plat} eq $plat ) ) # specified platform matched { - print( $output $val ? qq|$1.$2.$3:$val\n| : $_ ); + print( $output qq|$1.$2.$3:$val\n| ); + delete( $message{ $key } ); next; } } @@ -201,7 +226,7 @@ sub parser () while ( <$stream> ) { - if( /(\S+)\s*=\s?(.*)/ ) + if( /([^#]\S+)\s*=\s?(.*)/ ) { my $key = $1; my $val = $2; -- cgit v1.2.3