2016-08-04 61 views
0

Da die changes von cocoapods 1.0.0.S.1 sagen "Lokalisierte Interface-Dateien (XIB, Storyboard) mit Base Internationalisierung - Base.lproj/Main.xib und en.lproj/Main.strings sind als eine Variante Gruppe namens dargestellt Main.xib "und soweit cocoapods 1.0.0.beta.1" Spezielle Case-Interface-Dateien zur Verwendung des XIB- oder Storyboard-Namens für die Variantengruppe bei Verwendung der Basis-Internationalisierung. "Wie lokalisierte Schnittstellendateien (XIB, Storyboard) als xcode-Projektstruktur pendeln und Internationalisierung ermöglichen?

Ich beziehe mich auf die demo und ressource_bundles verwenden, um meine Ressourcen auf meinem podspecs zu organisieren.

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

und meine cocoapods Version ist 1.0.1, aber die Verzeichnisse Ergebnis ist

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

Es ist nicht das Ergebnis Verzeichnisse, die ich erwartet hatte und die Schnittstelle Internationalisierung funktionieren nicht. Cloud jemand zeigen mir eine korrekte Verwendung oder Demo?

HINZUFÜGEN: Ich verwende Import/Export-Lokalisierung von Xcode bevor Pod zu anderen Projekten. und ich möchte, dass es direkt von importierten xliff-Dateien funktioniert, anstatt das IBOutlet oder eine Unterklasse für UI-Steuerelemente hinzuzufügen.

+0

http://stackoverflow.com/questions/38716367/how -do-ich-ändern-the-localizable-string-Datei-of-the-app-programmatisch-in-swift/38716404 # 38716404 –

+0

@ PoojaM.Bohora. Danke für die Antwort, aber es hilft mir nicht. –

Antwort

0

Sie sollten für Ihre controls in XIB OR StoryboardViews & verwendeten Klassen schreiben zuweisen, die Klassen mit den jeweiligen Steuerungstypen wie diese -

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

Ich benutze Import/Export-Lokalisierung von xcode vor Pod in andere Projekte. und ich möchte, dass es von der importierten xliff-Datei direkt funktioniert, anstatt das IBOutlet oder eine Unterklasse für UI-Steuerelemente hinzuzufügen. –