Changeset 7851 for lang/perl/Acme-Shukugawa-Atom
- Timestamp:
- 03/12/08 17:57:49 (9 months ago)
- Location:
- lang/perl/Acme-Shukugawa-Atom/trunk
- Files:
-
- 2 modified
-
lib/Acme/Shukugawa/Atom.pm (modified) (4 diffs)
-
t/01_basic.t (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
lang/perl/Acme-Shukugawa-Atom/trunk/lib/Acme/Shukugawa/Atom.pm
r7832 r7851 28 28 # Special case handling -- this could be optimized further 29 29 # put it in a sharefile later 30 my %special = (30 my @special = ( 31 31 '別に' => 'ジリサワゴネタ', 32 32 '予約した' => 'バミった', … … 34 34 '巨乳|胸(?:の|が)(大きい|でかい|デカイ)' => 'パイオツカイデー', 35 35 '女性|女の人|お姉さん|おねーさん' => 'チャンネー', 36 'お?(?:ばあ|婆)さん' => 'F3のチャンバー', 36 'お?(?:ばあ|婆)さん' => 'チャンバー', 37 '(?:おおきい|大きい)(?:のか?|か)?' => 'カイデー', 37 38 ); 38 39 while (my ($pattern, $replace) = each %special) { 39 40 for(0..$#special/2) { 41 my $pattern = $special[$_ * 2]; 42 my $replace = $special[$_ * 2 + 1]; 40 43 $$strref =~ s/$pattern/$replace/g; 41 44 } … … 60 63 } else { 61 64 my $feature = decode_utf8($node->feature); 62 my $yomi = (split(/,/, $feature))[8]; 63 if ($yomi) { 64 # normalize 65 $yomi = $self->atomize($yomi) || $surface; 65 66 if (my $yomi = (split(/,/, $feature))[8]) { 67 $ret .= $self->atomize($yomi) || $surface; 66 68 } else { 67 $ yomi= $surface;69 $ret .= $surface; 68 70 } 69 $ret .= $yomi;70 71 } 71 72 } … … 82 83 my $length = length($yomi); 83 84 if ($length <= 2) { 85 return $yomi if $yomi =~ s/(.)([^ン])/$2ー$1ー/; 84 86 return; 85 87 } -
lang/perl/Acme-Shukugawa-Atom/trunk/t/01_basic.t
r7832 r7851 8 8 } 9 9 10 is( Acme::Shukugawa::Atom->translate("六本木の胸の大きいお姉さんがいる店を予約した"), "ギロッポンのパイオツカイデーチャンネーがいる店をバミった" ); 11 is( Acme::Shukugawa::Atom->translate("狼"), "カミオー" ); 10 my %data = ( 11 "六本木の胸の大きいお姉さんがいる店を予約した" 12 => "ギロッポンのパイオツカイデーチャンネーがいるセーミーをバミった" , 13 "狼" => "カミオー", 14 "おばあさんの口はどうして大きいの?" => 15 "チャンバーのチークーはどうしてカイデー?" 16 ); 12 17 13 is( Acme::Shukugawa::Atom->translate("おばあさんの口はどうして大きいの?"), 14 "チャンバーのチークーはどうしてカイデー"); 18 while (my($orig, $expected) = each %data) { 19 is( Acme::Shukugawa::Atom->translate($orig), $expected ); 20 }
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)