UNPKG

885 Bapplication/x-perlView Raw
1#!/usr/bin/perl
2use strict;
3use warnings;
4
5use JSON;
6use Hash::Merge::Simple qw(merge);
7use Getopt::Long;
8
9my $en_file = 'po/mypads.default.json';
10GetOptions ("file|f=s" => \$en_file);
11
12my $json = JSON->new->utf8->space_before(0)->space_after(1)->indent(1)->canonical(1);
13
14my $en;
15{
16 open my $fh, '<', $en_file or die;
17 local $/ = undef;
18 $en = <$fh>;
19 close $fh;
20}
21
22$en = $json->decode($en);
23
24my $new_json = {};
25my $old_json = '';
26
27while (defined(my $line = <STDIN>)) {
28 $old_json .= $line;
29}
30
31$old_json = decode_json($old_json);
32for my $key (keys %{$old_json}) {
33 my $value = $old_json->{$key};
34
35 $value = $en->{$key} unless (defined($value) && $value ne '');
36
37 my @keys = split(/\./, $key);
38 while (scalar(@keys)) {
39 $value = {
40 pop(@keys) => $value
41 };
42 }
43
44 $new_json = merge $new_json, $value;
45}
46
47print $json->encode($new_json);