做本地化需要获取用户系统的语言,来展示不同语言的界面。
这里可以通过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
{ }
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。