2011-07-06 43 views
0

我正在使用語言本地化。每當我從我的應用程序中出現的下拉列表中選擇一種語言時,我想更改我的應用程序的語言,是應該改變的語言,而不改變設備。請建議我的語言,我怎麼能實現提前從iphone下拉列表中選擇一個選項後語言發生變化

感謝

+1

一如既往,請考慮它是否符合用戶的利益,值得您花時間規避此處的標準系統行爲。 –

回答

2
+0

嘿,我跟着你的鏈接,其部分真的很有幫助。在一個例子中,他們正在點擊按鈕選擇一種語言,但我的疑問是,我可以通過pickerview來設置它,即從pickerview中的列表中選擇語言應該改變 – sujay

+0

有一組國家代碼,如@「it」,@「de」,並用它來填充選取器。然後,使用picker委託方法來切換語言:' - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {[Language setLanguage:[_array objectAtIndex:row]]; //更新視圖的一些代碼(標籤和使用不同語言的地方)}'。如果我正確理解你的問題:) –

0

你可以做到這一點,但它不會與內置的定位功能發揮很好基礎(例如NSLocalizedString),所以您需要忽略它們並編寫自己的字符串獲取函數,XIB加載路徑等。

的問題和答案在這裏介紹瞭如何訪問本地化的管束上像這樣飛: Overriding preferred strings localization on the fly for testing

0

您可以強制「AppleLanguages」用戶默認設置。 下面的例子顯示瞭如何完成;特別是在這裏,我用第二種語言切換第一個(默認)。



    NSArray *lang = [[NSUserDefaults standardUserDefaults] arrayForKey:@"AppleLanguages"]; 
    NSLog(@"current lang: %@",lang); 
    [[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects: 
                 [lang objectAtIndex:1], 
                 [lang objectAtIndex:0], 
                 nil] 
               forKey:@"AppleLanguages"]; 
0
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    NSMutableArray *languages = [NSMutableArray arrayWithArray:[defaults objectForKey:@"AppleLanguages"]]; 

    [languages replaceObjectAtIndex:0 withObject:@"fr"]; 

    [defaults setObject:languages forKey:@"AppleLanguages"]; 
    [defaults synchronize]; 

這是設置語言爲法語。只需在位置0上加載你想要的語言即可。

相關問題