絶品ゆどうふのタレ

ふと気づいたことを綴るだけのメモ

XULRunnerのlocale設定

最近XULRunnerをいじってる。
でね、こいつはすごくいい奴なんだけど、デフォルトでen-US。ビルドもja-JPではこけた(というかないっぽい?)。エンジンだし当たり前かもしれない。


それでも、日本人だから国際化対応はしなきゃいけないわけで。色々ググって、国際化対応の際に気をつけるlocaleの設定値としては

user_pref("general.useragent.locale" "ja");

を設定するべし、というのが色々なところに書いてあって確かにabout:configにもこの記述があったんだけど。*1


でも、色々いじりまわってわかったけどこいつはUserAgentのなかにjaって文字列を埋め込むけど、Accept-Languageは変えてくれない。
Accept-Languageを変えるのは

user_pref("intl.accept_languages", "ja,en-us,en");

てなやつ。


一般的に、IEとかはUserAgentの中にlocaleを埋め込んでこないわけだし、国際化対応されたサイトでlocaleを適切に切り替える場合には、Accept-Languageの順番を見るんじゃなかろうか。
いや、自分の場合はそうするかなという話だし、他の人がどうしてるかは予想にすぎないけど、普通そうしてると思うんだ。挙動的に。
だから、あちこちで「国際化設定はgeneral.useragent.locale変えろ!」って書いちゃってるのは盲目的にそれを受け継がないで気をつけた方がいいと思うよ。


というプチネタでした。

*1:当然、user_prefで変えるのはナンセンスだからXPCOMのメソッド使うべきだけど。説明用。