Czy to prawda? Kiedy instancji UIAlertButton, trzeba zdać mu wyraźny tytuł przycisk Anuluj tak:Używanie standardowych tłumaczeń Apple dla przycisku Alert?
UIAlertView *av =
[[UIAlertView alloc]
initWithTitle:@"Error"
message:err.localizedDescription
delegate:nil
cancelButtonTitle:@"Cancel"
otherButtonTitles:nil];
Oznacza to, że jeśli chcesz zlokalizowaną aplikację (co oczywiście zrobić), trzeba zlokalizować również ciąg Anuluj, mimo że Apple ma już oczywiście już tłumaczenie kanoniczne. Czy naprawdę muszę napisać coś takiego, żeby sobie z tym poradzić (czy jest to nawet w porządku)?
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];
Wygląda to straszne dla mnie, ale pomysł, że muszę zachować własne tłumaczenia słów upoważnione przez HIG Apple (jak „Anuluj” lub „OK”) wydaje się równie absurdalne.
To jest świetne, nawet jeśli jest trochę brzydkie. Nie miałem pojęcia, że możesz zhackować zlokalizowane łańcuchy UIKit. – CodaFi
Dobre odpowiedzi na to pytanie: [1] (http://stackoverflow.com/q/6909885/3050403), [2] (http://stackoverflow.com/a/6468992/3050403). Lepiej niż zaakceptowany. – kelin