#!/usr/bin/perl -w 
# A simple capital checker for PO files <aep@kilinux.org>
print "CAPS CHECKER 0.1\n"; 
print "A simple Perl script that search for wrong capitalization in gettext PO files\n\n"; 

$e_flag=$s_flag=$msg_complete=$i=$e=0;
$m=-1;

while ($line = <STDIN>){ 
$i++;
	if ($line =~ /msgid "(.*)?"/){ 
	$english = $1;
	$m++;
#	print "IN ID\n";
	}
	if ($line =~ /msgstr "(.*)?"/) {
	$swahili = $1;
#	print "IN MSG\n";
	$msg_complete=1;
	}

if ($msg_complete == 1) {

		if ($english =~ /^\~?[A-Z]/) {
		$e_flag=1;
		}
		if ($english =~ /^\~?[a-z]/) {
		$e_flag=2;
		} 
		if ($swahili =~ /^\~?[A-Z]/) {
		$msg_complete = 1;	
		$s_flag=1;
		}
		if ($swahili =~ /^\~?[a-z]/) {
		$msg_complete = 1;	
		$s_flag=2;
		}

	if ((($e_flag==1) && ($s_flag==2)) |  (($e_flag==2) && ($s_flag==1))){
	print "ERROR!!!!  Line ".$i."\t"."EN : ".$english."\n";
	print "		       \t"."SW : ".$swahili."\n\n";
#	print "		       \t"."FIX: ".ucfirst($swahili)."\n\n";
	$e++;
	}
	$e_flag=$s_flag=$msg_complete=$english=$swahili=0;
}
}
$p=(100*$e)/$m;

print "\n\nNumber of msgids: ".$m."\n";
print "Summary errors: ".$e."\n";
printf "Percentage %.2f\n", $p;
