my $options = {};
-getopts('o:', $options) ||
+getopts('t:o:v:', $options) ||
die "unable to parse options\n";
die "no files specified\n" if !scalar(@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);
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};
$content .= "// Proxmox Message Catalog: $outfile\n" if $outfile;
$content .= <<__EOD;
-Proxmox = { i18n_msgcat: $json }
+__proxmox_i18n_msgcat__ = $json;
function fnv31a(text) {
var len = text.length;
function gettext(buf) {
var digest = fnv31a(buf);
- var data = Proxmox.i18n_msgcat[digest];
+ var data = __proxmox_i18n_msgcat__[digest];
if (!data) {
return buf;
}