2016-08-04 367 views
0

我正在使用Xcode 7.3.1並嘗試爲我的項目設置本地化版本我試圖局部Main.storyboard文件Swift:Main.Storyboard本地化失敗

Screenshot 1

Screenshot 2

第二屏幕截圖顯示Main.storyboard被局部化。但是,這並不反映在Main.Storyboard(截圖1)中。它應該像截圖3

Screenshot 3

注:Main.Storyboard文件包含約10場景。

什麼解決?

+0

你在正確的方法 –

+0

@ Anbu.Karthik:然後在哪裏寫t控制的轉換值,即「uJE-ia-usa.text」=「印地文文本」; –

+0

我添加了答案檢查一次bro –

回答

1

第1步

選擇stroyboard - >去文件檢查器 - >本地化 - >啓用刻度線爲你的語言

你得到的輸出喜歡

enter image description here

步驟2

finaly你得到的輸出喜歡

enter image description here

+0

步驟2未顯示在我的案例中。爲什麼這樣? –

+0

您可以發送該項目我會做這 –

+0

@ Anbu.kartik:機密項目..不能共享它 –

2

你應該寫ClassesXIB OR StoryboardViews &使用您的controls分配Classes到相應的控制類型,像這樣 -

class LocalizedTextField: UITextField { 

    override func drawPlaceholderInRect(rect: CGRect) { 

     let localizedPlaceHolder = self.placeholder!.localized 
     self.placeholder = localizedPlaceHolder 
     super.drawPlaceholderInRect(rect) 
    } 
} 
class LocalizedLabel : UILabel { 
    override func awakeFromNib() { 
     if let text = text { 
      self.text = text.localized 
      self.bounds.size.width = CGFloat.max 
      self.sizeToFit() 
     } 
    } 
} 

class LocalizedButton : UIButton { 
    override func awakeFromNib() { 
     for state in [UIControlState.Normal, UIControlState.Highlighted, UIControlState.Selected, UIControlState.Disabled, UIControlState.Focused] { 
      if let title = titleForState(state) { 
       setTitle(title.localized, forState: state) 
      } 
     } 
    } 
} 

extension String { 

    var localized: String { 
     let localizedValue = NSLocalizedString(self, tableName: nil, bundle: NSBundle.mainBundle(), value: "", comment: "") 
     if localizedValue == "" { 

      return self 
     } 
     else 
     { 
      return localizedValue 
     } 
     return self 

    } 
} 

enter image description here