在我的一个本地化应用中,西班牙语是默认语言。但是,用户可以将英语设置为默认语言,将其区域设置为“西班牙语”。
问题是在我的应用程序中我使用此代码:
int day = (60*60*24);
NSDate *nextNextDay = [[NSDate alloc] initWithTimeIntervalSinceNow:(day*2)];
NSString *someString = [[dateFormatter stringFromDate:nextNextDay] capitalizedString];
NSLog(@"The day: %@", someString);
结果是默认语言环境中的日期名称,即(在此方案中)西班牙语。所以,相反,我会得到“星期一”的结果,而不是“Lunes”。当然,当应用程序的其余部分是英文时,这非常难看。
如果不对任何语言环境进行硬编码,我该如何解决这个问题?
答案 0 :(得分:0)
为什么不硬编码区域设置?
你可以这样做:
NSString *userLocale = [[NSLocale currentLocale]localeIdentifier];
NSString *userLanguage = [userLocale substringToIndex:2];
if([userLanguage isEqualToString:@"en"]){
//English
}
if([userLanguage isEqualToString:@"es"]){
//Spanish
}
希望这有帮助