ロケール(後編)

webOS のシステムロケールを自由に変更出来ないのは、キャリアの縛りであると仮定した場合、普通にコードを書いてみたところで、これに太刀打ち出来るものでは有りません。

そこでボクは考えました、システムロケールというのは一度設定すれば、ずっとその状態を記憶します、つまりこれはマシンの「不揮発性メモリ」か「ファイルシステム」にその情報を残しているからなのです。

もし「不揮発性メモリ」に残してるのなら、その場所を探し出すのは、残念ながらほぼ不可能です、でも「ファイルシステム」に残しているのなら、上手く行けばそれを探し当てる事が出来るかも知れません。

ボクはダメ元で、有るのか無いのかも判らない、そのファイルを探してみる事にしました。
そして幸運にもボクは、数千にも及ぶファイルの中から、それを探し当てる事が出来たのです。

それでは皆様、大変長らくお待たせいたしました。
webOS のシステムロケールをキャリアの縛りに関わらず、自由に変更出来る方法についてレポートいたします。

■作業手順

(1) ボクが見つけたそのファイルは systemprefs.db という名前のデータベースで、以下のフォルダに存在していました。

/var/luna/preferences

まず、このファイルをPCに持って来ます。

(2) データベースを編集するソフト SQLite Database Browser を以下のページからダウンロードして、PCにインストールします。

http://sourceforge.net/projects/sqlitebrowser/files/

※ダウンロードするのは sqlitebrowser-1.3-win.zip です

(3) SQLite Database Browser で先の systemprefs.db を開いてください。

image22

(4) 書き換えるのは43行目のココ、何とこれが webOS のシステムロケールを決定する、大元の情報だったのです。

image35

(5) ココを { “languageCode”: “ja”, “countryCode”: “jp” } と書き換え systemprefs.db を保存します。

image4

(6) systemprefs.db をPreに書き戻し本体をリブートします。

以上の作業でこんな風に、システムロケールが ja_jp になりました。
hello_2009-30-10_171034

■アプリの挙動変化

実を申し上げますと、ホントのお楽しみはココからなんです。
システムロケールが ja_jp になった事で、各アプリの挙動に何らかの変化が起きているハズです。
アプリをひとつひとつチェックしてみましたところ、以下に示す3つの大きな変化を確認出来ました。

☆挙動変化1

予想通り webブラウザの吐き出す情報が ja_JP になりました。
これにより、複数言語のコンテンツを自動振分けしているようなサイトでは、
日本語のコンテンツが優先されるようになります。
browser_2009-30-10_170453

例えば facebook のログイン画面、
もともと英語だったものが、日本語で表示されるようになりました。
browser_2009-30-10_1705181

☆挙動変化2

Google Maps の初期起動画面、
もともと北米地図だったものが日本地図になりました
maps_2009-30-10_170124

操作画面やメニューについても、
もともと英語だったものが、日本語で表示されるようになりました。
maps_2009-30-10_170241

☆挙動変化3

Doc View で単純な日本語Word文書に限り、正常に読めるようになりました。
5ヶ月前、HALさんが試してくださった画像と比べると、その差は歴然。
http://www.hal9.sakura.ne.jp/fig/Pre090609A037.jpg

docviewer_2009-30-10_170026

※(注1) 文書体裁の凝ったものは、やはり文字化けします
※(注2) Doc Viewのフォントは少し細工してます
※(注3) この文書、ロケール変更前はエラーで開く事さえ出来ませんでした
※(注4) Excel と PowerPoint については、まだ文字化けします

以上が、システムロケールを ja_jp にしたことで、確認できた大きな変化です。
これ以外にも、まだボクが気付いていない、細かな変化が有るかも知れません。

コメント / トラックバック 15 件

  1. マクベス より:

    凄い!!凄いとしか言いようがないです

  2. ミニー より:

    マクベスさん

    ロケールの謎が解けて、これで一安心です(^^)

  3. shino-ji より:

    この時点でPalmWebOSに夢を託したくなりました。
    日本で入手出来れば買いですね、これは。今のうちにお金貯めておこう。

  4. ミニー より:

    shino-ji さん

    webOS日本語版、行けるトコまでがんばってみますので、
    どうか仲間になってください(^^)

  5. より:

    どこかに変更を許可するロケールのDBがあるはずで、そこにja-JPを加えれば良いはず。ちょっと探してみます。
    QWERTZのPre用にキャリア情報を入れ込んだROM作成を試みていますのでそこに盛り込めれば良いなと。できればLanguagePickerにJapaneseを入れたいところです。
    そういえば、PalmOS6からはjaJPでしたね。

  6. ミニー より:

    せさん

    そのQWERTZのPreって、持ち主は例の方ですよね?
    ホントに毎度毎度ご苦労さまですm(_ _)m

    キャリアごとの許可するロケールを列記したDBも探してみたのですが、
    どうもボクの方では見つけられませんでした。

    仰るように LanguagePickerにJapaneseを追加出来れば、
    それが一番スマートなんですけど、
    もし可能なようでしたら、宜しくお願いします。

    それと、もうご存じだと思いますが、
    キャリア情報が入っているのは CarrierNetworkSettings.db3 で、
    この記事と同様に SQLite Database Browser で編集可能です、
    設定すべき項目が細かくて難しそうです。

  7. より:

    まだお金払ってないですが、例の方から僕のになります。今、大阪と水戸の間のどこかを移送中!

    ところで、ミニーさんってDOCOMO使っていますか?
    DOCOMOは放っておいて良いですよね(^^;)

  8. ミニー より:

    せさん

    あらら、そういう話になってたのですか・・・
    例の方「2日は徹夜してがんばる」と仰ってましたが(^^)

    ドコモは使っておりますが、放っておいて頂いて結構ですよ
    APNの登録方法のみ解説しておけば、
    あとは誰かがやってくれると思いますから。

  9. 章仁 より:

    もうこれは日本語版ですね!
    ホントに国内キャリアから出てくれれば面白そう!
    確かにこーゆーのを見てると、iPhone対抗というのが良く感じられますね

  10. ミニー より:

    章仁さん

    ロケール、リージョン、フォントの問題が解決しましたので、
    OSとしてはもう日本語版になってます。

    後は、アプリ個別の文字化けや、
    オフラインで使えるIMEが無い等の問題を残すのみ。

    何とか日本でもwebOSが広まって欲しいです(^^)

  11. より:

    今日、半日QWERTZのPreをいじっていましたが、MMSアプリのユーザーエージェントに関するエントリーが見当たらなくてつまづき中です。
    ZとYが入れ替わってもあまり気にならないことが判ったのは大きな収穫でした。
    ところで、PalmOSではシステムロケールを切り替える際にファイルの存在を見ていたはずです。例えば、jpANに切り替えたいときはBoot_jpANとPalmOSDATA_jpANがあれば切り替えOKというように。Preでも同じようなことやっていませんかね?
    追伸:MMS以外(通話、e-mail、Web、SMSなど)はOK。

  12. ミニー より:

    せさん

    キャリアごとの許可するロケールを列記したDB、見つからないでしょ?
    何か悔しいですよね。

    どれが Boot_jpAN と PalmOSDATA_jpAN に相当するか不明なんですが、
    テストアプリで実験してみた限り、fr_fr とか de_de とか、
    イケるかなと思えるロケールもダメでした。

    Webブラウザのユーザエージェントでしたら、
    /usr/lib/libWebKitLuna.so にパッチ当てすれば変更出来ると思いますが、
    MMSのユーザエージェントとは関係無いかなぁ。

  13. より:

    ロケールに関係しそうな情報がwebosdoctorの中のwebOS.tarでは無いtarファイルにありました。
    役に立ちそうでしょうか?

    Sprint版
    resources\sprint.tar\
    ⇒sweatshop-sprint-castle_1.0-118_armv7.ipk
    ⇒data.tar.gz
    ⇒.\usr\lib\luna\customization\locale.txt

    O2版
    ⇒resources\wr.tar
    ⇒sweatshop-wr-castle_1.0-13_armv7.ipk
    ⇒data.tar.gz
    ⇒.\usr\lib\luna\customization\locale.txt

  14. ミニー より:

    せさん

    凄い情報ありがとうございました m(_ _)m

    今ちょっと試してみました、バッチリです V(^^)
    LanguagePickerにJapaneseをあっさり追加出来ましたよ、感激です!
    何でコレに気付かなかったのだろう・・・

    今晩にでも記事にしますね

  15. より:

    >> /usr/lib/libWebKitLuna.so にパッチ当て

    (iPhone)というキーワードをうめこんでみました。

    結果
    ①⇒MMSは上手くフェッチできないよと怒られるのは変わらず。
    ②⇒GoogleMapを起動すると、WebのほうのGoogleMapが起動してしまいます。
      どうも、iPhoneでブラウザのGoogleMapを見ているみたいな感じです。
    で、失敗でした。