0

ローカライズされたアプリの 1 つで、スペイン語がデフォルトの言語になっています。ただし、ユーザーは英語をデフォルト言語として設定し、その地域を「スペイン」に設定することもできます。

問題は、アプリ内で次のコードを使用していることです。

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

結果は、(このシナリオでは) スペイン語であるデフォルトのロケールでの曜日の名前です。そのため、結果として「Monday」が返される代わりに、「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 に答える