2013年05月15日

Amon2::Plugin::L10N だと以下のように書けます。
po/zh-hant.po とか po/zh-hans.po とかは用意しとかなくていいです。きもちわるいけど。

my $LANG_RE = qr/\A(?:en|ja|zh-tw|zh-cn)\z/;
__PACKAGE__->load_plugins('L10N' => {
    default_lang          => 'en',
    accept_langs          => [qw/ en ja zh-tw zh-cn zh-hans zh-hant /],
    po_dir                => 'po',
    before_detection_hook => __PACKAGE__->is_development ? sub {
        my ($c) = @_;

        my $param_lang = $c->req->param('lang');
        if ($param_lang && $param_lang =~ $LANG_RE) {
            $c->session->set('lang', $param_lang);
            return $param_lang;
        } elsif (! defined $param_lang) {
            my $session_lang = $c->session->get('lang');
            if ($session_lang && $session_lang =~ $LANG_RE) {
                return $session_lang;
            }
        }
        $c->session->set('lang', '');
        return;
    } : undef,
    after_detection_hook  => sub {
        my($c, $lang) = @_;
        return 'zh-tw' if $lang eq 'zh-hans';
        return 'zh-cn' if $lang eq 'zh-hant';
        return $lang;
    },
});
Posted by Yappo at 2013年05月15日 20:45 | TrackBack | Perl
Comments
Post a comment









Remember personal info?






コメントを投稿する前に↓の場所にnospamと入力してください。