2010-09-28 53 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" 

問候, 費爾南多

相關問題