将设备语言设置为区域设置?

时间:2012-06-10 18:15:24

标签: ios localization nsdate locale nsdateformatter

在我的一个本地化应用中,西班牙语是默认语言。但是,用户可以将英语设置为默认语言,将其区域​​设置为“西班牙语”。

问题是在我的应用程序中我使用此代码:

int day = (60*60*24);
NSDate *nextNextDay = [[NSDate alloc] initWithTimeIntervalSinceNow:(day*2)];
NSString *someString = [[dateFormatter stringFromDate:nextNextDay] capitalizedString];
NSLog(@"The day: %@", someString);

结果是默认语言环境中的日期名称,即(在此方案中)西班牙语。所以,相反,我会得到“星期一”的结果,而不是“Lunes”。当然,当应用程序的其余部分是英文时,这非常难看。

如果不对任何语言环境进行硬编码,我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

为什么不硬编码区域设置?

你可以这样做:

NSString *userLocale = [[NSLocale currentLocale]localeIdentifier];
NSString *userLanguage = [userLocale substringToIndex:2];
if([userLanguage isEqualToString:@"en"]){

    //English

}
if([userLanguage isEqualToString:@"es"]){

    //Spanish

}

希望这有帮助