2013-01-10 23 views
8

Mam aplikacji iPhone za pomocą ujęć z dwoma języka (arabski/angielski), jak mogę przełączyć z arabskiego lokalizacja ujęć na angielski ujęć bez konieczności zmiany ustawień języka iPhone (w czasie wykonywania)Przełączanie pomiędzy zlokalizowanej ujęć przy starcie

+1

Nie lokalizuj scenorysu, a następnie zapytaj o zestaw niestandardowych zlokalizowanych ciągów. Szczerze mówiąc, zmiana języka jest jedynym usystematyzowanym sposobem lokalizacji, bez napisania własnego rozwiązania. – CodaFi

+0

Nie zgadzam się z tobą Zmieniam język aplikacji w czasie wykonywania w XIB, nie w scenopisie – wod

+0

, więc co wtedy próbowałeś? – CodaFi

Odpowiedz

8

Postanowiłem, że możesz to zrobić, wykonując poniższy kod:

UIStoryboard *storyBoard; 
if ([language isEqualToString:@"ar"]) { 
    lan = [[NSLocale preferredLanguages] objectAtIndex:0]; 
    storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone5Arabic" bundle:bnd]; 
} 
else if([language isEqualToString:@"en"]) { 
    NSLog(@"DDD "); 
    lan = [[NSLocale preferredLanguages] objectAtIndex:20]; 
    storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone5English" bundle:bnd]; 
} 
NSBundle *bnd = [NSBundle bundleWithPath:[[NSBundle mainBundle]pathForResource:lan ofType:@"lproj" ]]; 



UIViewController *initViewController = [storyBoard instantiateInitialViewController]; 
[self.window setRootViewController:initViewController]; 
+0

Hello! Odpowiedź na to pytanie jest taka sama, ale gdy zmieniam język w czasie wykonywania i ponownie ładuję potrzebne obrazy storyboardów nie są załadowane komunikatem dziennika: Nie można załadować obrazu "readability.png", do którego odwołuję się ze stalówki w pakiecie z identyfikatorem "(null) " –

+2

Och, to jest błąd w lokalizacji storyboardu, dlatego musisz stworzyć inny scenorys bez korzystania z lokalizacji. – wod

+0

Mam aktualizację moje rozwiązanie – wod

Powiązane problemy