17
2016
04

IOS下识别系统语言

做本地化需要获取用户系统的语言,来展示不同语言的界面。

这里可以通过NSUserDefaults里的AppleLanguages属性来实现,注意AppleLanguages是Key,对应的Value是字符串数组,包含了本机所有的语言,而数组第一个值,就是当前系统语言。

比如简体中文是zh-Hans,英文是en,但通常这个值还包含地区码,比如zh-Hans-CN,所以使用时用字符串比对来判断。


//objc代码

+ (NSString*)getPreferredLanguage

{

    NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];

    NSArray * allLanguages = [defaults objectForKey:@"AppleLanguages"];

    NSString * preferredLanguage = [allLanguages objectAtIndex:0];

    return preferredLanguage;

}


//Java代码(RoboVM)

public String getPreferredLanguage()

        NSUserDefaults defaults = NSUserDefaults.getStandardUserDefaults();

        NSArray valus = defaults.getArray("AppleLanguages");

        NSString curLanguage = (NSString) valus.get(0);

        return curLanguage.toString();

}


        //test

        String curLanguage = getPreferredLanguage();

        if (curLanguage.toString().startsWith("zh-Hans"))

        { }

        else if (curLanguage.toString().startsWith("en"))

        { }

        else

        { }



« 上一篇下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。