我試圖在更改英文語言爲烏爾都語(RTL)語言後更新我的所有控制器。本地化無法更新storybaord RTL(右至左)對於Urdu支持
手段,
如果tableview中單元格中包含的圖像出現在左側,文本目前在tableview中細胞右側。當用戶選擇烏爾都語時,它會交換。右側添加圖像,文字左側。
爲此自動佈局。設置適當的約束像引導和拖尾一樣,如果我們改變蘋果語言,它會照顧到這一點。
使用此代碼來設置Apple語言。寫一個通知刷新意見。但它不會立即工作。
如果用戶選擇烏爾都語語言
if([preferredLangCode isEqualToString:@"ur"])
{
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"ur", nil] forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize];
[[NSNotificationCenter defaultCenter]postNotificationName:@"AppLayoutDirectionTrigger" object:nil];
}
對於刷新視圖
-(void)updateUIForRTLSupportConfirmedScreen:(NSNotification *)notification
{
for (UIView *view in self.view.subviews)
{
[view setNeedsDisplay];
}
}
不更新我的看法不交換看法subiviews。
它會工作,如果我停止應用程序,並再次運行它的工作。但我想立即反映這些變化。
任何人都可以幫我解決這個問題。
問候 Jitendra
在回答你的問題之前:爲什麼你不依賴系統語言有什麼特別的理由嗎?不建議您在應用中手動設置AppleLanguages。 此外:這是在iOS 9或8? – wakachamo
我想支持urdu langauage這就是爲什麼我將它添加到NSUSERDEFAULTS。 – Jitendra
您可以通過簡單地在您的Xcode項目中添加一個Urdu本地化來實現。在iOS 8+上,用戶可以選擇首選語言,即使它們不受系統本身支持。 – wakachamo