苹果是否为常见的NSButton标题提供本地化字符串,例如 好的, 取消, 再试一次, , 和 辞职?

我试图从另一个可可框架从一个手中创建一个自定义的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标题外)吗?还是我必须手动填充 .strings 文件和使用 NSLocalizedString() 反而?

Apple确实为非注定的NSERROR提供了局部恢复选项:

NSArray *recoveryOptions = [anError localizedRecoverySuggestion];

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

有帮助吗?

解决方案

看来苹果没有。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top