我想要的很簡單:是否有可能在iOS上「重定向」本地化?
我的應用程序只有兩種語言:英語和簡體中文。我希望如果系統語言是簡體中文或繁體中文,則使用簡體中文;否則使用英文。
看來,大多數用戶不知道他們可以設置他們的次要首選語言。所以我不能依靠他們。
我想要的很簡單:是否有可能在iOS上「重定向」本地化?
我的應用程序只有兩種語言:英語和簡體中文。我希望如果系統語言是簡體中文或繁體中文,則使用簡體中文;否則使用英文。
看來,大多數用戶不知道他們可以設置他們的次要首選語言。所以我不能依靠他們。
您可以使用此代碼來獲取用戶的語言和設置應用程序語言:
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;
}
嗯......這是什麼? – BlueWanderer
男人,你可以告訴我「實際使用的語言列表存儲在用戶的默認值」... – BlueWanderer
我的錯,很高興幫助 – Mutawe
使用AMLocalizedString
,你可以用它來設置你的本地語言。
這將是默認行爲。您的應用程序將顯示除中文以外的所有語言的英語。 – alex
@alex但是如果系統語言是繁體中文,我需要選擇簡體中文。 – BlueWanderer
是的,我明白了。穆塔夫的回答看起來不錯。 – alex