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)' // この行
]
保存したら早速ビルドしてみましょう。キーボードに日本語が出てきましたか?