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" )
24 my ( $lang, $basename ) = $file =~ m{.+/(\w+)/([^/]+)\.po$};
28 if( open D, "> $target_dir/$basename.$lang.lua" )
30 printf "Generating %-40s ", "$target_dir/$basename.$lang.lua";
34 while( chomp( my $line = readline L ) || ( defined($k) && defined($v) ) )
36 if( $line =~ /^msgid "(.+)"/ )
40 elsif( $k && $line =~ /^msgstr "(.*)"/ )
44 elsif( $k && defined($v) && $line =~ /^"(.+)"/ )
50 if( $k && defined($v) && length($v) > 0 )
52 $v =~ s/\\(['"\\])/$1/g;
53 $v =~ s/(['\\])/\\$1/g;
55 printf D "%s='%s'\n", $k, $v;
63 print $content ? "done ($content strings)\n" : "empty\n";
68 unlink("$target_dir/$basename.$lang.lua")
69 unless( $content > 0 );