#! /usr/bin/perl -w
use warnings;
use strict;
use CGI;
use CGI::Carp qw ( fatalsToBrowser );
use DB_File;
use Fcntl;
use File::Basename;
print "Content-Type:text/html\n\n";
######################open the settings file
my $query = new CGI;
my $status = $query->param("status");
my $lgfilename = $query->param("lgfilename");
my %sts;
my $settingsfile="$ENV{'DOCUMENT_ROOT'}/cgi-bin/test/ex/settings/settings.txt";# tie %sts hash to settings file in settings.txt
tie (%sts, "DB_File", $settingsfile) or die "Can't open $settingsfile: $!\n";
######################open the language file
my $langdir=$sts{'1'};
my %lng;
my $lfile="$ENV{'DOCUMENT_ROOT'}/cgi-bin/test/ex/language/$sts{'1'}";# tie %lng hash to language file in ???language.txt
tie (%lng, "DB_File", $lfile) or die "Cant open $lfile: $!\n";
my $count = scalar keys %lng;
####################
print qq~
~;
untie %lng;
untie %sts; # Clears buffers, then saves, closes, and unlocks file
##make the new "form-on-the-fly
open(AAA,">makelangfile.pl")or die "Cant create newlangform.pl $!";
print AAA"\#! /usr/bin/perl -w\n";
print AAA"use warnings\;\n";
print AAA"use strict\;\n";
print AAA"use CGI\;\n";
print AAA"use CGI::Carp qw ( fatalsToBrowser )\;\n";
print AAA"use DB_File\;\n";
print AAA"use Fcntl\;\n";
print AAA"use File::Basename;\n";
print AAA"print\"Content-Type:text/html\\n\\n\"\;\n";
print AAA"my \$query = new CGI\;\n";
print AAA"my \$existing_lang_file = \$query->param(\"existing_lang_file\")\;\n";
print AAA"my \$new_lang = \$query->param(\"new_lang\")\;\n";
print AAA"my \%sts\;\n";
##open the settings file
print AAA"my \%sts\;\n";
print AAA"my \$settingsfile=\"\$ENV{\'DOCUMENT_ROOT\'}/cgi-bin/test/ex/settings/settings.txt\"\;\n";# tie %sts hash to settings file in settings.txt
print AAA"tie (\%sts, \"DB_File\", \$settingsfile) or die \"Cant open \$settingsfile: \$!\\n\"\;\n";
##open the language file
print AAA"my \%lng\;\n";
print AAA"my \$lngfile=\"\$ENV{\'DOCUMENT_ROOT\'}/cgi-bin/test/ex/language/\$sts{\'1\'}\"\;\n";# tie %lng hash to language file in ??language.txt
print AAA"tie (\%lng, \"DB_File\", \$lngfile) or die \"Can't open \$lngfile: \$!\\n\"\;\n";
####################
print AAA"print qq~\n";
print AAA"\n";
print AAA" \n";
print AAA" \n";
print AAA" \$lng{\'19\'}\n";
print AAA" \n";
print AAA" \n";
print AAA"
\n";
print AAA" \n";
print AAA"
\n";
print AAA" \n";
print AAA"\n";
print AAA"~\;\n";
print AAA"untie \%lng\;\n";
print AAA"untie \%sts\;\n"; # Clears buffers, then saves, closes, and unlocks file
close(AAA);
######################Build Final Processing Page
open(BBB,">processlangfile.pl") or die "Cant build the processlangfile.pl file $!";
print BBB"\#! /usr/bin/perl -w\n";
print BBB"use warnings\;\n";
print BBB"use strict\;\n";
print BBB"use CGI\;\n";
print BBB"use CGI::Carp qw ( fatalsToBrowser )\;\n";
print BBB"use DB_File\;\n";
print BBB"use Fcntl\;\n";
print BBB"use File::Basename;\n";
print BBB"my \$query = new CGI\;\n";
print BBB"my \$new_lang = \$query->param(\"new_lang\")\;\n";
for($b=0;$b<$count;$b++){$a=$b+1; #figure how many entries for form
print BBB"my \$newlang$a = \$query->param(\"newlang$a\")\;\n";
}
##open the settings file
print BBB"my \%sts\;\n";
print BBB"my \$settingsfile=\"\$ENV{\'DOCUMENT_ROOT\'}/cgi-bin/test/ex/settings/settings.txt\"\;\n";# tie %sts hash to settings file in settings.txt
print BBB"tie (\%sts, \"DB_File\", \$settingsfile) or die \"Cant open \$settingsfile: \$!\\n\"\;\n";
##open the language file
print BBB"my \%lng\;\n";
print BBB"my \$lngfile=\"\$ENV{\'DOCUMENT_ROOT\'}/cgi-bin/test/ex/language/\$sts{\'1\'}\"\;\n";# tie %lng hash to language file in ??language.txt
print BBB"tie (\%lng, \"DB_File\", \$lngfile) or die \"Cant open \$lngfile: \$!\\n\"\;\n";
print BBB"my \$newlanguagefile\;\n";
print BBB"my \$lcnew_lang =lc(\$new_lang)\;\n";
print BBB"\$new_lang =~ s/.txt*//g\;\n";#remove the ".txt" from the name
print BBB"my \$status\;\n";
print BBB"if(\$new_lang eq \"\"){\n";#make it all lower case
print BBB"\$newlanguagefile=\"\$sts{\'1\'}\"\;\n";
print BBB"\$status=\"old\"\;\n";
print BBB"}\n";
print BBB"elsif(\$new_lang ne \"\"){\n";
print BBB"\$newlanguagefile=\"\$new_lang\"\;\n";
print BBB"\$status=\"new\"\;\n";
print BBB"}\n";
###########################################PRINT OUT THE NEW INFORMATION
for($b=0;$b<$count;$b++){$a=$b+1; #figure how many entries for form
print BBB"my \$final$a\;\n";
print BBB"if(\$newlang$a ne \"\"){\$final$a=\"\$newlang$a\"\;}\n";
print BBB"elsif(\$newlang$a eq \"\"){\$final$a=\"\$lng{\'$a\'}\"\;}\n";
}
print BBB"untie \%lng\;\n";
# delete any existing language.txt file
print BBB"unlink \$lngfile\;\n";
# tie %lng(language) hash to and create db file in color.txt
print BBB"tie (\%lng, \"DB_File\", \$lngfile, O_CREAT) or die \"Cant open \$lngfile: \$!\\n\"\;\n";
# (re)evaluate db in language.txt by evaluating key/value pairs in \%lng hash as follows\n";
print BBB"\%lng=(\n";
for($b=0;$b<$count;$b++){$a=$b+1;
print BBB"\'$a\' => \"\$final$a\",\n";
}
print BBB")\;\n";
print BBB"\$newlanguagefile =~ s/.txt*//g\;\n";
print BBB"my \$newlanguagefile=lc(\$newlanguagefile)\;\n";
print BBB"open(EEE,\">values/\$newlanguagefile.txt\")or die\"No Can Do \$!\"\;\n";
for($b=0;$b<$count;$b++){$a=$b+1; #figure how many entries for form
print BBB"print EEE\"\\\$lng{\\\'$a\\\'} = \$final$a\\n\"\;\n";
}
print BBB"close(EEE)\;\n";
print BBB"untie \%lng\;\n";
print BBB"untie \%sts\;\n"; # Clears buffers, then saves, closes, and unlocks file
print BBB"print\"Location:newlangform.pl?status=\$status\;lgfilename=\$newlanguagefile\\n\\n\"\;\n";
close(BBB);