キモブロ

Please spy check please, Fucking retard

TF2のゲーム内ブラウザはHTTPのAccept-Languageヘッダを適切に設定してくれてないっぽい?

motdをi18n化して、
http://tf2.kymt.me/mvm

ユーザーのAccept-Languageに応じて表示する言語を en / ja 切り替えるように先日したのだけど、どうもゲーム内ブラウザで見ると常にenになってしまう。

Accept-Languageヘッダが実際についてるかどうか実際にゲーム内ブラウザから送信されてるHTTPリクエストをちゃんとチェックし忘れてしまったのだけど、おそらく適切に設定してくれてないっぽい?

みんなどうしてるんだろうなーこれ。

この方式が無理だとしたら、普通にユーザーにマウスでlocaleを選択させて、HTTPのほうのcookie(sm_cookieではなく)にlocale情報をぶち込もうかしら。(しかしゲーム内ブラウザのcookieがどの程度生存してくれるのかもわかってない。ゲーム終了するたびに破棄されてたら意味ない)

どうしたものか。一度ログとってみたらそれっぽいHeader情報あるかもしれないのであれだけど。

ユーザーのIPアドレスをもとに、GeoIP.datを利用して国コード取得して翻訳刷る感じにするというのも有りだと思う。(これでデフォルトのlocaleを選択して、任意でユーザーによるcookie切り替えが一番妥当なやり方?)


あと、motdコマンドは実はsourcemodで実装されてて、nativeのShowMotdPanel関数で実現してるっぽいんだけど ShowMotdPanelはnativeじゃなくて、この関数内部で使ってるShowVGUIPanelがnativeだった。

この関数でhttp_header書き換えれるとかだったら、cl_languageとうまいこと組み合わせてイイ感じにできそうなんだけどなー。