2013-12-10 2 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, вы можете использовать это, чтобы установить локальный язык.

 Смежные вопросы

  • Нет связанных вопросов^_^