Apple は、 OK、Cancel、Try Again、Quitに相当するものなど、一般的な NSButton のタイトルにローカライズされた文字列を提供していますか?
別の Cocoa フレームワークから渡されたカスタム NSError オブジェクトを作成しようとしています。エラーが発生した場合にユーザーが再試行または終了NSErrorRecoveryAttempting
できる非公式プロトコルを実装したいと考えています。(簡単な)例:
NSString *cachesDir = ...;
NSError *error = nil;
BOOL success = [[NSFileManager defaultManager] createDirectoryAtPath:cachesDir withIntermediateDirectories:NO attributes:nil error:&error];
// Failed creating the directory.
if (!success)
{
NSMutableDictionary *errorUserInfoCopy = [[[error userInfo] mutableCopy] autorelease];
NSArray *recoveryOptions = [NSArray arrayWithObjects:@"Try Again", @"Quit", nil];
[errorUserInfoCopy setObject:recoveryOptions forKey:NSLocalizedRecoveryOptionsErrorKey];
NSError *newError = [NSError errorWithDomain:[error domain] code:[error code] userInfo:errorUserInfoCopy];
[NSApp presentError:newError];
}
10 行目でNSArray *recoveryOptions = ...
、Apple は (他の一般的な NSButton タイトルの中でも) Try Again/Quit のローカライズされたバージョンを簡単に入手する方法を提供していますか? .strings
または、ファイルを手動で入力してNSLocalizedString()
代わりに使用する必要がありますか?
Apple は、カスタマイズされていない NSError に対してローカライズされた回復オプションを提供しています。
NSArray *recoveryOptions = [anError localizedRecoverySuggestion];
ただし、これは通常、ローカライズされた「OK」にデフォルト設定されています。カスタムには向きませんNSErrorRecoveryAttempting
。