#!/usr/bin/perl use POSIX qw(locale_h); setlocale(LC_CTYPE, "pt_PT"); use locale; use warnings; use strict; use Data::Dumper; use NAT::Client; use NAT::Matrix; use NAT::PatternRules; my ($dic, $f1, $f2) = @ARGV; $/ = "\n"; open F1, $f1 or die $!; open F2, $f2 or die $!; open O1, ">$f1.out" or die $!; open O2, ">$f2.out" or die $!; my ($l1, $l2); my $client = NAT::Client->new(localDumper => $dic); print STDERR "Dictionary loaded. Writing file...\n"; while ($l1 = ) { $l2 = ; my ($left, $right) = ($l1,$l2); $l1 = clean($l1); $l2 = clean($l2); my @w1 = map { my @a = split /\s+/; $a[0] } split /\n/, $l1; my @w2 = map { my @a = split /\s+/; $a[0] } split /\n/, $l2; my (%w2,%w1); @w1{@w1}=@w1; @w2{@w2}=@w2; my @trans1 = (); my @trans2 = (); for my $w (@w1) { $w = lc($w); my $tr = "\"\""; my $data = $client->ptd({direction => '~>'}, $w); for my $t (sort {$data->[1]{$b} <=> $data->[1]{$a}} keys %{$data->[1]}) { if (exists($w2{$t})) { $tr = $t; last } } push @trans1, $tr; } for my $w (@w2) { $w = lc($w); my $tr = "\"\""; my $data = $client->ptd({direction => '<~'}, $w); for my $t (sort {$data->[1]{$b} <=> $data->[1]{$a}} keys %{$data->[1]}) { if (exists($w1{$t})) { $tr = $t; last } } push @trans2, $tr; } for my $linha (split /\n/, $left) { if ($linha =~ m!^!!gs; s!^<.*$!!mg; s!\n+!\n!g; s!^\s*\n!!g; s!^\*.*\n!!g; return $_; }