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 件のコメント:
コメントを投稿