xcode の多言語対応手順についてメモしておく。
多言語対応の仕組みは知っていたが、いざ実際に行ってみると”Info.list”と”Localizable.strings”ってどう違うの?とか、xcode の ファイルインスペクタ操作などで疑問がでてきたので、まとめた。
1. xcode 設定を多言語対応する
“project” – “Info” の Localizations に “Japanese” を追加する
・ローカライズ対象ファイルが多言語対応化される
・English と Japanese 用のファイルが用意される
以下のフォルダが作成されてそれぞれに多言語対応されたファイルが格納される
en.lproj
ja.lproj
例えば、InfoPlist.strings (アプリ設定ファイル) をローカライズすればアプリ名称なども多言語対応することができる
/* Localized versions of Info.plist keys */ CFBundleDisplayName = "日本語アプリ名";
2. ソースコードを多言語対応する
書式: NSLocalizedString(@”キー”, @”コメント”)
NSBundle.h に以下のように定義されている
1 2 | #define NSLocalizedString(key, comment) \ [[NSBundle mainBundle] localizedStringForKey:(key) value:@"" table:nil] |
多言語対応例
1 2 3 4 5 | // 変更前 (Localizations - English) self.title = @"Detail"; // 変更後 (Localizations - English) self.title = NSLocalizedString(@"Detail", @"Detail"); |
3. genstrings コマンドで言語ファイル生成
$ genstrings -a $(find . -name "*.m")
4. Localizable.strings の言語を指定する
3. で出力された Localizable.strings ファイルを xcode に追加し、言語を指定する
“File Inspector”を表示し、以下のボタンを押下する
Localizable.strings ファイルの内容 (日本語リソースの場合)
1 2 3 4 5 | /* Detail */ "Detail" = "詳細"; /* Master */ "Master" = "マスタ"; |