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