【问题标题】:Set device language as locale?将设备语言设置为区域设置?
【发布时间】:2012-06-10 18:15:24
【问题描述】:

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

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

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

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

如何在不对任何语言环境进行硬编码的情况下解决此问题?

【问题讨论】:

    标签: ios localization nsdate locale nsdateformatter


    【解决方案1】:

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

    你可以这样做:

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

    希望这有帮助

    【讨论】:

    • 虽然是硬编码,但还是可以使用的。
    猜你喜欢
    • 2011-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-29
    • 2017-05-17
    • 2012-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多