マルチ language なアプリを作る練習もかねて、ちょっとしたサイトつくりはじめたんだけど、

msgid  "Logged in as %1"
msgstr "%1 としてログインしています"

こういうのが化ける。%1 とかはいってないのはいける。Unicodeフラグっぽい化けかたなので、MyApp.pm に

sub localize {
    my $c    = shift;
    my $text = shift;

    my $args = ref $_[0] eq 'ARRAY' ? $_[0] : [@_];

    for my $arg (@$args) {
        utf8::decode($arg);# unless utf8::is_utf8($arg);
    }

    $c->NEXT::localize( $text, $args );
}

とか書いてみたら直ったよ。しかし、is_utf8 のところコメント外すとうごかねーよ、なにこれ。

$args には is_utf8 は真だけど、perl utf8 じゃないのがはいってる?何かが悪さをしておる。

Unicode プラグインと併用してるのがまずいのかもしれん。

by typester / at 2006-06-23T02:47:00 / perl · catalyst / Comments(0)