]> git.proxmox.com Git - proxmox-i18n.git/blobdiff - po2js.pl
update German translation
[proxmox-i18n.git] / po2js.pl
index 8a00e6c2c871993c4e55712f56f140888ca4888c..ee5bbd14a7f5a270270ead6850c7ee7c8879c8ad 100755 (executable)
--- a/po2js.pl
+++ b/po2js.pl
@@ -2,19 +2,18 @@
 
 use strict;
 use warnings;
-use Getopt::Std;
-use Locale::PO;
-use JSON;
+
 use Encode;
+use Getopt::Long;
+use JSON;
+use Locale::PO;
 
 # current limits:
 # - we do not support plural. forms
 # - no message content support
 
 my $options = {};
-
-getopts('o:', $options) ||
-    die "unable to parse options\n";
+GetOptions($options, 't=s', 'o=s', 'v=s') or die "unable to parse options\n";
 
 die "no files specified\n" if !scalar(@ARGV);
 
@@ -59,6 +58,13 @@ foreach my $filename (@ARGV) {
        my $po = $href->{$k};
        next if $po->fuzzy(); # skip fuzzy entries
        my $ref = $po->reference();
+
+       # skip unused entries
+       next if !$ref;
+
+       # skip entries if t is defined (pve/pmg) and the string is
+       # not used there or in the widget toolkit
+       next if $options->{t} && $ref !~ m/($options->{t}|proxmox)\-/;
     
        my $qmsgid = decode($charset, $po->msgid);
        my $msgid = $po->dequote($qmsgid);
@@ -81,7 +87,8 @@ foreach my $filename (@ARGV) {
 
 my $json = to_json($catalog, {canonical => 1, utf8 => 1});
 
-my $content = '';
+my $version = $options->{v} // ("dev-build " . localtime());
+my $content = "// $version\n"; # write version to the beginning to better avoid stale cache
 
 my $outfile = $options->{o};