簡體   English   中英

如何將本地化的接口文件(XIB,情節提要)轉換為xcode項目結構並使國際化工作?

[英]How to pod Localized interface files(XIB, Storyboard) as xcode project structure and make internationalization work?

當cocoapods1.0.0.β.1 發生更改時 ,請說“使用Base Internationalization的本地化接口文件(XIB,情節提要)-Base.lproj / Main.xib和en.lproj / Main.strings表示為名為Main的變體組。 “ xib”以及cocoapods 1.0.0.beta.1“特殊情況接口文件,用於在使用Base Internationalization時使用XIB或Storyboard名稱作為變量組。

我參考該演示,並使用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

這不是我期望的結果目錄,接口國際化也不起作用。 有人告訴我正確的用法或演示嗎?

添加:我先通過xcode使用導入/導出本地化功能,然后再轉貼到其他項目。 我希望它可以直接通過導入的xliff文件工作,而不是添加IBOutlet或UI控件的子類。

您應該為XIB OR Storyboard Views使用的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

    }
}

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM