会社のサーバーから統計情報をダウンロードする iOS アプリを作成しています。エラーが発生した場合、API はエラー コードとエラーの説明を提供します。内部ログ用にエラーの説明 (常に英語) を保持し、エラー コードをいくつかのローカライズされた文字列にマップしたいと考えています。この問題を解決するための最良のアプローチはどれですか? .plist ファイルを使用してマッピングを実行することを考えていましたが、100% 確実ではありません。
2 に答える
メモリ フットプリントが少ない限り、NSDictionary で plist ファイルを使用しても問題ありません。私は似たようなことをしました。
ただし、NSLocalizedStringである標準的な方法と、各言語の .Strings ファイルの使用にも注意してください。
NSLocalizedString の使用方法の例を次に示します。
// Set the label using the localized string
self.label.text = NSLocalizedString(@"Select choice:", @"Prompt to make a selection.");
最初の部分は、ファイルで定義するキーですLocalizable.strings
。文字列ファイルにエントリが存在しない場合は、キー名が使用されるため、キーをデフォルトのテキストと同じにします。上記の例では、デフォルト言語のエントリが見つからない場合、キー名のみが使用されます@"Select choice:"
。
次に、Localizable.string ファイルを作成し、[ローカライズ] ボタンをクリックしてから、言語ごとに 1 つ作成します。スペイン語は次のようになります。
/* Contents of Localizable.strings */
"Select choice:" = "Selecciona la opción:";
もちろん、次のような英語のものを使用することもできます。
/* Contents of Localizable.strings */
"Select choice:" = "Select choice:";
NSLocalizedString() の 2 番目のパラメーターはコメントです。これはオプションですが、Apple は、コード内のすべての NSLocalizedString() エントリを検索し、文字列リソース ファイル内にコメントを含む行を生成するツールを提供しています。