#! /usr/bin/perl
eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' if 0; # not running under some shell
BEGIN { $main::DEFA = "/usr/lib/dbman"; }

require 5.003;
use strict qw/subs vars/;
use vars qw/$VERSION $VERNAME $ORIG_0 $DEFAULT_DIR $mylib $DEBUG $RESOURCE $DEFA
		%Message $taglist $langframe %langvar $last_sel/;

BEGIN {
	$DEBUG = 0;
	$VERSION = '0.0.9';
        $VERNAME = "dbMan Language Defaulter $VERSION";  
	use FindBin;
	$ORIG_0 = $FindBin::RealScript;  $0 = "dbman-le";
	$DEFAULT_DIR = $DEFA;
        if ($ORIG_0 !~ /\//) { $ORIG_0 = './' . $ORIG_0; }
        $mylib = $ORIG_0;  $mylib =~ s/\/[^\/]*$//;
        unshift @INC,".";
        unshift @INC,$DEFAULT_DIR;
        unshift @INC,$mylib;
        unshift @INC,$ENV{DBMAN_LIB} if $ENV{DBMAN_LIB};
}

for (@INC) {
	if (-f "$_/dbManLang.pm") { $RESOURCE = "$_/dbManLang.pm";  last; }
}

unless ($RESOURCE) { 
	print STDERR "Can't find dbManLang.pm resource module.\n";  exit;
}

print "Resource file $RESOURCE...\n";
require $RESOURCE;  dbManLang::le_import();

my %AllTags = ();
for my $lang (sort keys %Message) { 
	print "Loading resource strings for language $lang...\n"; 
	for my $tag (keys %{$Message{$lang}}) { ++$AllTags{$tag}; }
}

###########################################################################

sub saveto {
	my $filename = shift;
	if (open F,">$filename") {
		if (open FS,$RESOURCE) {
			while (<FS>) {
				chomp;
				last if /^##LE_START$/;
				print F "$_\n";
			}
			while (<FS>) {
				chomp;
				last if /^##LE_STOP$/;
			}
			print F "##LE_START\nmy %Message = (\n\n";
			for my $lang (sort keys %Message) {
				print F "'$lang' => {\n\n";	
				for my $tag (sort keys %{$Message{$lang}}) {
					my $hl = "'";  my $hr = "'";
					my $t = $Message{$lang}->{$tag};
					if ($t =~ /'/) {
						if ($t =~ /"/) {
							$hl = 'q\\';  $hr = '\\';
						} else {
							$hl = '"';  $hr = '"';
						}
					}
					print F "$tag => $hl$t$hr,\n";
				}
				print F "},\n\n";
			}
			print F ");\n##LE_STOP\n";
			print F while <FS>;
			close FS;
		}
		close F;
	}
}

###########################################################################

for my $t (keys %AllTags) {
	for my $l (keys %Message) {
		my $source = ($l eq 'en')?'cz':'en';
		$Message{$l}->{$t} = $Message{$source}->{$t} 
			unless exists $Message{$l}->{$t};
	}
}

if (@ARGV) {
	saveto(shift);
} else {
	print STDERR "Using: dbman-le-default savefile\n";
}
