2010-09-28 54 views
2

如何获取应用程序运行的语言?我并不是说偏好设置为设置!如何获取iPhone应用程序使用的语言

让我进一步解释... 我用三种语言本地化我的应用程序:英语,意大利语和西班牙语。如果iPhone设置为意大利语或西班牙语,则该应用程序将使用这两个...否则它会回到英语。

例如:法国用户获得英文版...所以即使French是语言设置,我的应用程序也会自动使用英语。现在......我如何在代码中返回这个“值”?

谢谢!

回答

2

可以使用获取用户的偏好的语言:

的NSString *语言代码= [[NSLocale preferredLanguages] objectAtIndex:0];

[NSLocale preferredLanguages]数组实际上包含了所有用户的首选语言,因此您可以循环访问它,直到找到应用程序支持的语言为止。

0

真的不承认这是什么我并不是说偏好设置为设置!是什么意思?

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
NSArray *languages = [defaults objectForKey:@"AppleLanguages"]; 
NSString *currentLanguage = [languages objectAtIndex:0]; 
+0

嗨亚伦,我的意思是在法国用户的例子中描述...您的代码可能会返回“fr”或类似的东西,因为这是在iPhone国际和语言设置上设置的语言。相反,我正在寻找的是一段代码,它会返回“en”,因为我的应用程序没有法语版的本地化资源,因此它会回退到英语。希望这是清楚的知道...我真的很感谢你的帮助! – Andrea 2010-09-28 07:20:01

0

你只需要获得设备的当前语言(如上由其他用户解释),并将它与您的应用程序支持的语言,像比较:

currentLangue = //get current language with code in other answers 
languageToUse = "" 
for each language in languagesSupportedbyMyApp 
    if currentLanguage == language 
    languagetoUse = language 

//if no language is found then set it to "en" 
if languageToUse == "" 
    languageToUse = "en" 

问候, 费尔南多

相关问题