Как переключить язык во время выполнения внутри приложения? - PullRequest
2 голосов
/ 29 августа 2011

У меня есть требование переключать язык пользовательского интерфейса во время выполнения, открывая и выбирая всплывающее меню. Я немного прочитал об интернационализации какао, но нашел, что он не подходит для моего проекта, так как он требует от пользователя вносить изменения в настройки системы.

Запись типа "http://stackoverflow.com/questions/1669645/how-to-force-nslocalizedstring-to-use-a-specific-language" предполагает настройку AppleLanguages также потребует перезапуска приложения.

Интересно, могу ли я (а) создать несколько NIB и вызвать initWithNib в соответствии с текущим языком или (б) использовать один NIB, но создать список строк и сделать функцию для установки строки заголовка для всех текстов в все мои viewWillAppear. Какое решение звучит лучше или, пожалуйста, позвольте мне, если есть третий способ.

Спасибо Leo

1 Ответ

0 голосов
/ 29 августа 2011

Самым простым способом, который я могу придумать, является перезагрузка всех ваших представлений и обновление свойства текста всех текстовых компонентов (таких как UILabel, UITextField и т. Д.). Заданный текст для конкретного языка может быть возвращен вашим методом, например, -

-(NSString*) localizedStringForKey: (NSString*)key andLanguage: (NSString*)lang
{
    if([lang isEqualToString:@"en"])
    {
         if(key == @"hello")
              return @"Hello";

         //and so on...
    }

    else if([lang isEqualToString:@"fr"])
    {
         if(key == @"hello")
              return @"Bonjour";

         //and so on...
    }

} 

НТН,

Акшай

P.S .: Здесь я возвращаю жестко запрограммированные значения, но вы можете прочитать их из своих специфических для языка списков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...