ごうれむてっく

ボクわるいゴーレムじゃないよ

Play Framework の i18n でハマって、初めて Issue を書いてみた話

何が起きたか

application.conf が以下の場合、イギリス英語(en-GB)などに設定した端末で日本語が表示されてしまう・・・

play.i18n.langs = [ "ja", "ja-JP", "en", "en-US" ]

理由は en-GB が上記のどれにもマッチしないので、デフォルトの ja になっているようです

本来、サーバーが en をサポートしている場合は en-ANYen にマッチされるはずなんです

stackoverflow.com

Play Framework の不具合か?

Play のソースコードを見ていて、これかな?と思われる記述が見つかりました

playframework/Langs.scala at 8793cfaa568f79e822cb11c1d6a156331ca9ba74 · playframework/playframework · GitHub

どうやら Locale.lookup のパラメーターが逆に代入されているっぽい! Javadoc によると、Locale#lookup の第一引数は user's Language Priority List となっているのに、逆に代入しているように見える

GitHub で Issue を書いてみた

英語があっているか不安になりながらも初めて Issue を書いてみました

github.com