2013-12-10 35 views
0

我想要的很簡單:是否有可能在iOS上「重定向」本地化?

我的應用程序只有兩種語言:英語和簡體中文。我希望如果系統語言是簡體中文或繁體中文,則使用簡體中文;否則使用英文。

看來,大多數用戶不知道他們可以設置他們的次要首選語言。所以我不能依靠他們。

+0

這將是默認行爲。您的應用程序將顯示除中文以外的所有語言的英語。 – alex

+0

@alex但是如果系統語言是繁體中文,我需要選擇簡體中文。 – BlueWanderer

+0

是的,我明白了。穆塔夫的回答看起來不錯。 – alex

回答

0

您可以使用此代碼來獲取用戶的語言和設置應用程序語言:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
// Reset system defaults to get the complete language list. 
[defaults removeObjectForKey:@"AppleLanguages"]; 
// Default language choosen by user. 
NSString *defLanguage = [defaults objectForKey:@"Language"]; 
NSArray *sysLangugages = [defaults arrayForKey:@"AppleLanguages"]; 
// System default language: first element of array. 
NSString *sysLanguage = [sysLangugages objectAtIndex:0]; 
NSArray *array = [NSArray arrayWithObjects:defLanguage, sysLanguage, nil]; 
LocalizationSetLanguage(defLanguage); 
[defaults setObject:array forKey:@"AppleLanguages"]; 

//To set and get the saved language 
// in the .h 
#define LocalizationSetLanguage(language) \ 
[[LocalizationSystem sharedLocalSystem] setLanguage:(language)] 

//in the .m 
- (void) setLanguage:(NSString*) language 
{ 

    lang = language; 
} 

- (NSString*) getLanguage 
{ 

    if (!lang) { 
     NSArray* languages = [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"]; 

     NSString *preferredLang = [languages objectAtIndex:0]; 
     lang = preferredLang; 
    } 

    return lang; 
} 
+0

嗯......這是什麼? – BlueWanderer

+0

男人,你可以告訴我「實際使用的語言列表存儲在用戶的默認值」... – BlueWanderer

+0

我的錯,很高興幫助 – Mutawe

0

使用AMLocalizedString,你可以用它來設置你的本地語言。

相關問題