これは本当ですか?UIAlertButtonをインスタンス化するときは、次のように、[キャンセル]ボタンの明示的なタイトルを渡す必要があります。
UIAlertView *av =
[[UIAlertView alloc]
initWithTitle:@"Error"
message:err.localizedDescription
delegate:nil
cancelButtonTitle:@"Cancel"
otherButtonTitles:nil];
つまり、ローカライズされたアプリが必要な場合(もちろんそうします)、Appleがすでに正規の翻訳を取得している場合でも、Cancel文字列もローカライズする必要があります。私は本当にそれを処理するためにこのようなものを書くことを余儀なくされていますか(またはこれはOKです)?
NSBundle* uikitBundle = [NSBundle bundleForClass:[UIButton class]];
UIAlertView *av =
[[UIAlertView alloc]
initWithTitle:NSLocalizedString(@"Error", @"Title for Alert box when error occurs")
message:err.localizedDescription
delegate:nil
cancelButtonTitle:NSLocalizedStringFromTableInBundle(@"Cancel", @"Localizable", uikitBundle, nil)
otherButtonTitles:nil];
これは私には恐ろしいように見えますが、AppleのHIGによって義務付けられている単語の翻訳を自分で維持しなければならないという考え(「キャンセル」や「OK」など)も同様にばかげているようです。