Предоставляет ли Apple локализованные строки для общих заголовков NSButton, например, эквиваленты OK , Отмена , Попробуйте еще раз и Выход ?
Я пытаюсь создать собственный объект NSError из одного, переданного мне другой платформой Cocoa.Я хочу реализовать неофициальный протокол 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];
Но обычно это просто значение по умолчаниюлокализовано "ОК".Это не подходит для пользовательских NSErrorRecoveryAttempting
.