Предоставляет ли компания Apple локализованные строки для обычных названий NSButton, таких как эквиваленты на OK, Отменить, попробовать еще раз и Бросить?Предоставляет ли Apple локальные опции восстановления для общего названия NSButton для NSError?
Я пытаюсь создать пользовательский объект 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'S:
NSArray *recoveryOptions = [anError localizedRecoverySuggestion];
но это обычно только по умолчанию в локализованной «OK». Он не подходит для пользовательских NSErrorRecoveryAttempting
.