这是真的吗?当你实例化一个UIAlertButton时,你必须为Cancel按钮传递一个显式的标题,就像这样:
UIAlertView *av =
[[UIAlertView alloc]
initWithTitle:@"Error"
message:err.localizedDescription
delegate:nil
cancelButtonTitle:@"Cancel"
otherButtonTitles:nil];
这意味着如果您想要一个本地化的应用程序(当然您想要),即使Apple已经有一个规范的翻译,您也必须本地化Cancel字符串。我真的被迫编写像这样的内容来处理它吗(或者这样做没问题)?
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 规定的(例如“取消”或“确定”)。