Предоставляет ли Apple локализованные варианты восстановления для общих заголовков NSButton для NSError? - PullRequest
2 голосов
/ 02 июля 2010

Предоставляет ли 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.

1 Ответ

0 голосов
/ 12 октября 2010

Похоже, что Apple нет.

...