iOSアプリのI18N(国際化と多言語化)
iOSアプリのI18N(国際化と多言語化)
iOSにはアプリを多言語化する仕組みが用意されている。
・国際化できるリソース
1) 画面定義 Storyboard (.storyboard)
2) 画面定義 nib (.xib)
3) 画像 (.png, .jpg)
4) 文字列 (Localizable.strings)
5) プロジェクト設定 (Info.plist、プロジェクト設定のInfo)
・国際化方法
1) Storyboardやnib、画像ファイルを国際化する
Xcodeのプロジェクト設定で Localizations で+ボタンをクリックして対応する言語を追加する。
この時点で多言語化対応できるリソースは対象にするかチェックすることができる。
Storyboardを一つずつ国際化するには、Storyboardファイルを選択して表示されるファイルインスペクターで Localization にチェックする。
*Localizationに一覧が表示されていない時は, Loalize... ボタンをクリックする。
*ファイルインスペクターの Localization にはプロジェクト設定で追加した言語だけが表示され選択可能となっている。
2) 文字列を国際化する
Localizable.strings ファイルを作成する
Localizable.stringsを一つずつ国際化するには、Localizable.stringsファイルを選択して表示されるファイルインスペクターで Localization にチェックする。
*Localizationに一覧が表示されていない時は, Loalize... ボタンをクリックする。
*ファイルインスペクターの Localization にはプロジェクト設定で追加した言語だけが表示され選択可能となっている。
Localizable.stringsのファイル形式
"Key" = "翻訳した文字";
プログラム方法
NSLocalizedString(@"Key", @"")
3) プロジェクト設定を国際化する
InfoPlist.stringsを一つずつ国際化するには、InfoPlist.stringsファイルを選択して表示されるファイルインスペクターで Localization にチェックする。
*Localizationに一覧が表示されていない時は, Loalize... ボタンをクリックする。
*ファイルインスペクターの Localization にはプロジェクト設定で追加した言語だけが表示され選択可能となっている。
InfoPlist.strings ファイルを作成する
InfoPlist.strings ファイル形式
例)アプリ表示名称の国際化
CFBundleDisplayName = "アプリ名";