我正在使用語言本地化。每當我從我的應用程序中出現的下拉列表中選擇一種語言時,我想更改我的應用程序的語言,是應該改變的語言,而不改變設備。請建議我的語言,我怎麼能實現提前從iphone下拉列表中選擇一個選項後語言發生變化
感謝
我正在使用語言本地化。每當我從我的應用程序中出現的下拉列表中選擇一種語言時,我想更改我的應用程序的語言,是應該改變的語言,而不改變設備。請建議我的語言,我怎麼能實現提前從iphone下拉列表中選擇一個選項後語言發生變化
感謝
嘿,我跟着你的鏈接,其部分真的很有幫助。在一個例子中,他們正在點擊按鈕選擇一種語言,但我的疑問是,我可以通過pickerview來設置它,即從pickerview中的列表中選擇語言應該改變 – sujay
有一組國家代碼,如@「it」,@「de」,並用它來填充選取器。然後,使用picker委託方法來切換語言:' - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {[Language setLanguage:[_array objectAtIndex:row]]; //更新視圖的一些代碼(標籤和使用不同語言的地方)}'。如果我正確理解你的問題:) –
你可以做到這一點,但它不會與內置的定位功能發揮很好基礎(例如NSLocalizedString
),所以您需要忽略它們並編寫自己的字符串獲取函數,XIB加載路徑等。
的問題和答案在這裏介紹瞭如何訪問本地化的管束上像這樣飛: Overriding preferred strings localization on the fly for testing
您可以強制「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"];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSMutableArray *languages = [NSMutableArray arrayWithArray:[defaults objectForKey:@"AppleLanguages"]];
[languages replaceObjectAtIndex:0 withObject:@"fr"];
[defaults setObject:languages forKey:@"AppleLanguages"];
[defaults synchronize];
這是設置語言爲法語。只需在位置0上加載你想要的語言即可。
一如既往,請考慮它是否符合用戶的利益,值得您花時間規避此處的標準系統行爲。 –