Apple是否为NSError的常见NSButton标题提供了本地化恢复选项?

时间:2010-07-02 16:21:22

标签: cocoa localization nserror nslocalizedstring

Apple是否为常见的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是否提供了轻松获取Try Again / Quit(以及其他常见NSButton标题)的本地化版本的方法?或者我必须手动填充.strings个文件并改为使用NSLocalizedString()吗?

Apple确实为非自定义NSError提供了本地化恢复选项:

NSArray *recoveryOptions = [anError localizedRecoverySuggestion];

但这通常只是默认为本地化的“OK”。它不适合自定义NSErrorRecoveryAttempting

1 个答案:

答案 0 :(得分:0)

似乎Apple没有。