Titanium で iOS 8 系シミュレータを日本語環境で起動する

  • 10
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

Xcode 6 の iOS 8 系シミュレータはシミュレータ内で言語環境を日本語に設定しても反映されません。もちろんキーボードも日本語入力ができないし、Ti.UI.Picker で type プロパティに Ti.UI.PICKER_TYPE_DATE を指定すると英語表記になってしまいます。

シミュレータ起動時に -AppleLanguages (Japanese) を渡してあげればよいのですが、Titanium の場合はビルドコマンドがよろしくやってくれるので、そのままだと渡すことができません。

Titanium CLI をちょっと改造すればよいかと思いますが、実は CLI にはビルドコマンドがありません。ビルドは SDK に依存するため、SDK 内部に存在しています。さらに、ビルドコマンド自体がシミュレータの操作を行うのではなく、ioslib という npm が担当しています(正確には、さらにこの中に node-ios-device がいて、この npm がシミュレータを操作してくれます)。もちろん Titanium Studio な方でも内部的に CLI が使われているわけですから、今回の改造は問題なく適用されます。

というわけで、SDK に内包されているビルドコマンドが使っている、ioslib へちょいと手を加えます(そもそも Titanium へプルリクエストすれば良いのでが、依存関係が複雑で、時間があれば JIRA へチケット切ろうかと思っております)。

対象となるファイルは以下の場所にありますので、テキストエディタで開いて編集してください。これを書いている時点では、Titanium SDK 3.5.0.GA になります。

~/Library/Application\ Support/Titanium/mobilesdk/osx/3.5.0.GA/node_modules/ioslib/lib/simulator.js

編集箇所はここになります。cmd 配列の最後に日本語のオプションを追加してください。このブロックの下に 8 以前のシミュレータの記述がありますが、そちらには手を加えないでください。

'cmd': [
    iossim,
    'launch',
    '<app path>',
    '--verbose',
    '--xcode-dir', xc.path,
    '--udid', sim.udid,
    '--args', '-AppleLanguages', '(Japanese)' // この行
]

保存したら早速ビルドしてみましょう。キーボードに日本語が出てきましたか?