2011年4月29日金曜日

アプリをローカライズする手順メモ

Localizable.strings を用意する.




  • ファイル>新規ファイル>Resource>Strings Filesと選択












  • Localizable.string をResourcesフォルダに入れる




  • Localizable.string を右クリックし[情報を見る] を選択





    [一般] タブの下部にある[ファイルをローカライズ可能にする] ボタンを押下





  • [一般] タブに、"ローカリゼーション"欄ができる
    [ローカリゼーションを追加] ボタンを押下。一覧に出てこない国名はISO-639の省略形をつければ良い。韓国なら「kor」かな?







  • ファイルを開いてローカリゼーションの追加をおこなっていく
    例:"Hellow"="こんにちは";








アプリ名のローカライズ



  • Localizable.stringを作った時と同じような手順で、"InfoPlist.string"というファイルを作成する.
  • InfoPlist.string は、アプリの設定ファイルである Info.plist の項目を、ローカライズ毎に上書きするために用いるファイルとなる.
  • 特に、Info.plist の内容をローカライズする必要が無いときには、 InfoPlist.string を作成する必要は無い.


CFBundleDisplayName = "Hellow Timer"; CFBundleDisplayName = "Hellow Timer";

プログラム側をLocalizedStringに対応させる



正式に書くなら下のような感じ。 NSString *localizedString = [[NSBundle mainBundle] localizedStringForKey:@"Hoge" value:@"Hoge" table:nil]; ただし、マクロが用意されているので下記で書くのがふつう NSString *localizedString = NSLocalizedString(@"String", @"message"); messageは特に表示されるわけでは無いので@""と空にしても良い。

Xibのローカライズ




これの右クリック>情報をみる から設定が可能。
でも、かりにIBで画面を作っていたとしてもViewDidLoadのところでラベルやボタンのタイトルにlocalizedStringでテキストを再設定するように書いておいた方が明らかに便利。

国によって表示する画像や色を変えたりという場合に使うのかな。
でも、どの国でどういうデザインがうけるのかリサーチが必要だな。。。


その他、Sqliteのファイルもローカライズする設定がでてくるんだけれど、国別にファイルを分けられるって事?
うーん、必要にかられたら今度実験してみよう。
でも、必要なカラムを持っておいてコードで分岐させる方が楽かな。

NSArray *languages = [NSLocale preferredLanguages];
//NSLog(@"preferredLanguages : %@", languages);

language = [languages objectAtIndex:0];

こんな感じで NSStringで持って来ちゃえばいいんだもんなぁ。

0 件のコメント:

コメントを投稿