3 @ARGV == 2 || die "Usage: $0 <source-dir> <dest-dir>\n";
5 my $source_dir = shift @ARGV;
6 my $target_dir = shift @ARGV;
10 system('mkdir', '-p', $target_dir);
17 if( open F
, "find $source_dir -type f -name '*.po' |" )
19 while( chomp( my $file = readline F
) )
21 if( open L
, "< $file" )
23 my ( $basename ) = $file =~ m{.+/([^/]+\.[\w\-]+)\.po$};
25 if( open D
, "> $target_dir/$basename.lua" )
27 printf "Generating %-40s ", "$target_dir/$basename.lua";
31 while( chomp( my $line = readline L
) )
33 if( $line =~ /^msgid "(.+)"/ )
37 elsif( $k && $line =~ /^msgstr "(.*)"/ )
41 elsif( $k && defined($v) && $line =~ /^"(.+)"/ )
47 if( $k && defined($v) )
49 $v =~ s/\\(['"\\])/$1/g;
50 $v =~ s/(['\\])/\\$1/g;
52 printf D
"%s%s='%s'\n", $v ?
'' : '--', $k, $v;