0

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

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

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

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

如何在不硬编码任何语言环境的情况下解决这个问题?

4

1 回答 1

0

为什么不硬编码语言环境?

你可以这样做:

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

    //English

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

    //Spanish

}

希望这有帮助

于 2012-06-10T18:39:39.713 回答