#Exploitation du fichier GeorgAmiran

use strict;
use warnings;

#table amiran => géorgien, sera remplie au lancement du script
#on y loge a priori les caractères dont on sous-entend la mise en œuvre
#il faut tout dire pour pouvoir détecter les manques lors de la mise au point
my %tab_amiran  = (' ' , ' ', # le blanc est universel !
				   '-', '-',  # on conserve le trait d'union
				   '?', '?',  # le point d'interrogation
				   ',', ',',  # la virgule
				   '. ','.'   # et le point
				   ); 

sub tab_alim($$){ # 2 caractères
my( $g, $a ) = @_;

	$tab_amiran{$a} = $g;
	return 0;
}#tab_alim

sub init_tab(){ #procédure sans argument

	open(AMIRAN, "<:utf8", "GeorgAmiran.txt");
	my $ligne = <AMIRAN>; # sauter la 1ère ligne
	
	my @tab = <AMIRAN>;
	my $txt = join('', @tab);
	
	my $er = '^(\p{Georgian})\s+(\p{Latin})$';
	$txt =~ s/$er/tab_alim($1, $2)/emg;
}#init_tab

sub tradCar($){ #caractère
my( $car ) = @_;
	if( exists($tab_amiran{$car}) ){
		return $tab_amiran{$car};
	}else{
		die("Inconnu : ".ord($car)." = $car\n");
	}
}#tradCar

sub tradChaine($){ # chaîne Amiran
my( $chn ) = @_;

	$chn =~ s/(.)/tradCar($1)/eg;
	return $chn;
}#tradChaine

init_tab();
binmode(STDOUT, ":utf8");
print tradChaine($ARGV[0]);