CakePHP-ja tumblr

Nov 09 2009

翻訳言語がわからない場合の対処方法

環境変数 HTTP_ACCEPT_LANGUAGE を取得できない場合、例えば FeedHelper で生成したフィードをフィードリーダーなどで読むようなケースにおいてはフィードリーダーのクライアントプログラムでリクエストするため、HTTP_ACCEPT_LANGUAGE を取得できる可能性は低い。

このようなケースでなるべく適切な言語を選択させるためには環境変数 REMOTE_ADDR を元に国を特定して翻訳言語を見つける方法が考えられる。

例えば、カントリーコードに対するロケールを決めうちで作っておいて http://www.hostip.info/use.html の API を利用してカントリーコードを取得し、作っておいた対応表に照らし合わせてロケールを指定する。と言うような実装はどうだろうか。

無論毎回カントリーコードを見に行くのは無駄なので、キャッシュさせておくかそもそも API ではなく http://www.hostip.info/dl/index.html からデータをゲットして DB に突っ込んでおくなどの実装が現実的。

これだけの仕組みを実装するほど国際的なサービスを作る際にでももう少し掘り下げてみる。

@see http://ja.wikipedia.org/wiki/ISO_639

Page 1 of 1