読者です 読者をやめる 読者になる 読者になる

ゆーすけべー日記

はてなBlogってどーなの!?

dankogai の添削に miyagawa product で答える

Danさんに添削された Acme::JapaneseAvActress。

モジュール名をどうするかはちとおいといて(ちょwおいときすぎ><)、

  • 次にAcme::JapaneseAvActress::Actressのフィールド。$aja->yomiに対応する$aja->engnameがあると、海外のerogeeksも喜ぶかも。

この部分。Danさん本人が Lingua::JA::Kana というかなとローマ字を変換するモジュールを先ほど作ったので、これ使えば女優のローマ字を返すメソッドできるんじゃね?と思ってはてブしたら、miyagawaさんが

yusukebe: Lingua::JA::Kanaは人名だとうまくいかないとおもう
use Lingua::JA::Hepburn::Passport

と教えてくれた。つまり、人名を Lingua::JA::Kana 使ってそのままローマ字変換すると「ゆうこ→yuuko」とかになってしまう。この場合「ゆうこ→yuko」となって欲しい。 そこで Lingua::JA::Hepburn::Passport 。 「日本の外務省パスポートのルール にあるヘボン式に則ったもの」ということで人名をそれっぽくヘボン式ローマ字に変換してくれる。 この2つのモジュールを試す、簡単なスクリプトを書くとこういう具合になった。

use utf8;
use Lingua::JA::Kana;
use Lingua::JA::Hepburn::Passport;

my $hepburn = Lingua::JA::Hepburn::Passport->new;
print $hepburn->romanize("ゆうこ") . "\n"; #YUKO
print kana2romaji(decode_utf8 "ゆうこ") . "\n"; #yuuko

おおー、miyagawa++; 。 ってなわけで、Lingua::JA::Hepburn::Passport を使って Acme::JapaneseAvActress の女優さんクラスに engname メソッドを追加しました。

sub engname {
    my $self = shift;
    my $yomi = $self->yomi;
    $yomi = decode("utf-8",$yomi);
    my $hepburn = Lingua::JA::Hepburn::Passport->new;
    return $hepburn->romanize($yomi);
}

これで、海外のエロギークが喜ぶかもね!