2013年04月25日

HTTP::AcceptLanguage - Accept-Language ヘッダを解析して適切な言語を返す君

月曜日の悪魔こと yappo です。
今時のグローバルな社会ではみなさん多言語対応の web アプリを書いているとおもいますが、その時に使う Accept-Language を解析してくれるのを書きました。

HTTP::AcceptLanguage

Plack なアプリだったら。

my $lang = HTTP::AcceptLanguage->new($req->header('Accept-Language'))->match(qw/ en fr es ja zh-tw /);
ってするだけで、英語フランス語スペイン語日本語台湾語の中からユーザが利用可能な最適な言語を探して返してくれます。

もし適切な言語が無ければ undef を返すので、あなたがおすすめの言語で返しておくといいでしょう。

I18N::AcceptLanguage っていうのが既にあるんですが、名前空間がわかりづらいのと、ドキュメントがわかりづらいのと、コードが余計な事やってるのと、インデントが独自すぎてコード読めないのと、頑張ってコード読むとバグがあったり解釈がRFCの通りになってなかったりして、ハマった時のデバッグが不能だったので作りました。

まぁ、 RFC の件はあんまどうでもいい。っていうか RFC なんか信じてたら世界が破滅するので厳密な実装にはなってなくて、あるていど実用的にしてあります。

Posted by Yappo at 17:06 | Comments (0) | TrackBack

2013年04月01日

#perlcasual で例外処理の話した

こんにちわ!
先週金曜日に NHN で開催された PerlCasual っていうイベントで Perl の例外処理最新ベストプラクティスの話をして来ました。

http://yappo.github.com/talks/20130329-perlcasual7-exception/

yusukebe が開催するよって言うから、話したいって言ったら「もうスピーカーきめちゃった!」とか言われてたんですが、カジュアルに仲間に入れてもらえました。

スピリチュアルな話とかぼうよくわからないんで感想とか書けないんですが、yusukebeさん駄目な人間さん、NHNさんありがとうございました!

Posted by Yappo at 18:17 | Comments (0) | TrackBack