2014-04-13 33 views
0

我需要使用本地化按鈕單擊時切換語言。NSLocalizedString與從應用程序切換語言

我試過這個,錯誤元素不刷新。

- 他們被這樣設置:

self.lblSectionMyPictures.text=NSLocalizedString(@"lblSectionMyPictures", nil); 

代碼以切換:

- (void)SwitchToFrench{ 
    [[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"fr", nil] 
               forKey:@"AppleLanguages"]; 
    [[NSUserDefaults standardUserDefaults] synchronize]; 
    [self.view setNeedsDisplay]; 
} 

- (void)SwitchToEnglish{ 
    [[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"en", nil] 
               forKey:@"AppleLanguages"]; 
    [[NSUserDefaults standardUserDefaults] synchronize]; 
    [self.view setNeedsDisplay]; 
} 

任何想法\最佳做法?

回答

1

蘋果的本地化解決方案不支持即時切換本地化。字符串被加載一次,然後從未改變。我認爲你最好的選擇是創建你自己的符合KVO的本地化字符串提供程序,並綁定每個GUI元素(按鈕的標題,文本字段的值等)。隨着啓用AutoLayout,這可能甚至工作。