Верно ли это? Когда вы создаете экземпляр UIAlertButton, вы должны передать ему явный заголовок для кнопки «Отмена», например:
UIAlertView *av =
[[UIAlertView alloc]
initWithTitle:@"Error"
message:err.localizedDescription
delegate:nil
cancelButtonTitle:@"Cancel"
otherButtonTitles:nil];
Это означает, что если вы хотите локализовать приложение (что, конечно же, вы делаете), вы также должны локализовать строку «Отмена». , хотя у Apple, очевидно, уже есть канонический перевод. Я действительно вынужден писать что-то подобное, чтобы справиться с этим (или это вообще нормально)?
NSBundle* uikitBundle = [NSBundle bundleForClass:[UIButton class]];
UIAlertView *av =
[[UIAlertView alloc]
initWithTitle:NSLocalizedString(@"Error", @"Title for Alert box when error occurs")
message:err.localizedDescription
delegate:nil
cancelButtonTitle:NSLocalizedStringFromTableInBundle(@"Cancel", @"Localizable", uikitBundle, nil)
otherButtonTitles:nil];
Мне это кажется ужасным, но мысль о том, что я должен поддерживать свои собственные переводы слов, предусмотренных HIG Apple (таких как «Отмена» или «ОК»), кажется столь же абсурдной.