/usr/local/CPAN/Lingua-PT-Speaker/Lingua/PT/Speaker/Specials.pm


package Lingua::PT::Speaker::Specials;

use strict;

use Text::RewriteRules;

my %sotaques=(
  porto     => {txt => \&porto,
                pho => \&phoporto},
  viseu     => {pho => \&viseu},
  cebolinha => {txt => \&cebolinha},
  spain     => {txt => \&spain,
                pho => \&phospain},
  lamego    => {txt => \&lamego},
);

sub phospecials{  
 my ($sotaq,$t)=@_;
 print "PHO special ($sotaq)\n";
 if(defined($sotaques{$sotaq}{pho})){  &{$sotaques{$sotaq}{pho}}($t)}
 else {$t}; 
}

sub txtspecials{  
 my ($sotaq,$t)=@_;
 if(defined($sotaques{$sotaq}{txt})){&{$sotaques{$sotaq}{txt}}($t)}
 else {$t}; 
}

RULES cebolinha

rr==>r
r==>l

ENDRULES

RULES porto

oão==>uoum
ão==>oum
am==>om
em\b==>âinnhe
v==>b

ENDRULES

RULES phoporto

o:? r==>u 6 r

ENDRULES

RULES lamego

ch([aeiou])==>tx$1
\bx([aeiou])==>tx$1

ENDRULES

RULES/m viseu

v==>b
s==>S
z==>Z
S==>Z
([^vszS]+)==>$1

ENDRULES

RULES/m spain

\bj==>r
ção==>ción
ções==>cións
v==>b

ENDRULES

RULES phospain

6==>a
@==>E

ENDRULES

1;