3 use File::Slurp qw( read_file );
4 use JSON qw( from_json to_json );
5 use Encode qw( decode_utf8 );
7 our $lang = $ARGV[0] || 'en';
8 my $json = read_file(sprintf 'koha-tmpl/intranet-tmpl/prog/js/vue/locales/%s.json', $lang);
10 my $h = from_json($json);
11 my $i; my $size = scalar keys %$h;
13 while (my ($k, $v) = each %$h ){
14 warn sprintf "%s - Translating string %s/%s\n", $lang, ++$i, $size;
16 for my $kk ( keys %$v ) {
17 ( my $vv = $k ) =~ s|\s*$||;
18 if ( $kk eq 'counter' ) {
19 $translated->{$k}->{counter} = translate("$vv \%{counter}");
20 } elsif ( $kk eq 'id' ) {
21 $translated->{$k}->{id} = translate("$vv #\%{id}");
23 die "INVALID structure with key " . $kk;
26 } elsif ( $k =~ /^There are no/ ) {
27 $translated->{$k} = translate("$k.");
30 $translated->{$k} = translate($k);
34 say to_json($translated, {utf8 => 1, pretty => 1, canonical => 1});
38 my $translated = $string;
39 return "/" if $string eq "/";
40 if ( $lang ne 'en' ) {
41 my $cmd = sprintf 'trans --brief :%s "%s"', $lang, $string;
42 $translated = decode_utf8 qx{$cmd};