2016-08-04 65 views
0

由於cocoapods 1.0.0.beta.1的changes表示「使用Base Internationalization - Base.lproj/Main.xib和en.lproj/Main.strings的本地化接口文件(XIB,Storyboard)被表示爲一個變體組Main.xib「以及cocoapods 1.0.0.beta.1」特殊情況下的界​​面文件,以便在使用Base Internationalization時爲變體組使用XIB或Storyboard名稱。「如何將本地化的界面文件(XIB,Storyboard)作爲xcode項目結構並使國際化起作用?

我參考demo並使用resource_bundles在我的podspec上組織我的資源。

s.resource_bundles = { 
    'Resources' => ['LocalizationDemo/LocalizationDemo/Resources/**/*.{lproj,storyboard}'] 
} 

和我的CocoaPods版本是1.0.1,但目錄的結果是

-Resources 
--en.lproj 
---LocalizationDemo.strings 
--LocalizationDemo.storyboard 
--de.lproj 
---LocalizationDemo.strings 

這是沒有結果的目錄,這是我期待和接口的國際化不起作用。 雲任何人都告訴我一個正確的用法或演示嗎?

ADD:我使用導入/導出本地化xcode之前,其他項目。我希望它可以直接導入xliff文件,而不是添加IBOutlet或UI控件的子類。

+0

http://stackoverflow.com/questions/38716367/how -do -i-change-the-localizable-string-file-of-the-app-programatically-in-swift/38716404#38716404 –

+0

@ PoojaM.Bohora。謝謝你的回覆,但這對我沒有幫助。 –

回答

0

你應該寫在XIB OR StoryboardViews &用於您controls類分配類相應的控制類型這樣的 -

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

+0

在使用其他項目之前,我使用xcode導入/導出本地化。我希望它可以直接導入xliff文件,而不是爲UI控件添加IBOutlet或子類。 –