2010-07-02 2 views
2

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

ответ

0

Похоже, что Apple этого не делает.