2012-03-05 4 views
0

Я создал две локализованные каталоги с именем en.lproj и fr.lproj. Я помещал два разных изображения с таким же именем, как.png, в эти локализованные каталоги.Как изменить локализованные изображения во время выполнения

Теперь я создал таблицу View Controller с двумя строками «Английский» и «Французский» текст соответственно.

После выбора первой или второй строки я выбираю путь пакета и изменяю весь локализованный текст моего приложения во время выполнения.

Код:

-(NSString*) languageSelectedStringForKey:(NSString*) key 
{ 

    NSString *path; 
    NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults]; 
    if([[userDefault valueForKey:@"language_Selected"] intValue] == 0) 
     path = [[NSBundle mainBundle] pathForResource:@"en" ofType:@"lproj"]; 
    else if([[userDefault valueForKey:@"language_Selected"] intValue] == 1) 
     path = [[NSBundle mainBundle] pathForResource:@"fr" ofType:@"lproj"]; 

    NSBundle* languageBundle = [NSBundle bundleWithPath:path]; 
    NSString* str=[[languageBundle localizedStringForKey:key value:@"" table:nil] retain]; 
    return str; 
} 

Через выше код динамически я могу изменить язык запуска приложения. Но как получить изображения из этого пакета?

Любая идея?

Благодаря

+0

сделать переменную пути и получить изображение по пути, у вас уже есть путь как динамический из приведенного выше кода. –

+0

спасибо за ответ. , :) .. Понял, это работает –

+0

Любая причина опроса Вопрос? –

ответ

1

Предположительно, вы не хотите, чтобы изменить все изображение, только изображения, содержащие текст или другой культуры в зависимости от содержания. Для этих изображений вы можете добавить запись в файл localizable.strings, содержащий путь изображения для языка дания, и использовать этот путь вместо жестко закодированного пути.

При этом во многих случаях у вас будут изображения, включенные в пользовательский интерфейс, как часть .xib. Все, что вам нужно сделать в этих случаях, - локализовать xib (т. Е. Сделать другую версию .xib на язык), вы можете сделать это в XCode через элемент управления «Языки» на панели свойств) и просто изменить изображение на каждой языковой версии .xib с помощью Interface Builder.

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