Sono in difficoltà con le risorse localizzate definite nel mio pod.Accesso a Cocoapod resource_bundles
Questo pod utilizza Base Internazionalizzazione con i seguenti file:
Base.lproj
|- Localizable.strings
|- MyViewController.xib
fr.lproj
|- Localizable.strings
|- MyViewController.strings
Questo è il modo in cui sono definiti nel mio podspec
:
spec.resources = "MySDK/*.lproj/*"
In di Podfile
mia app, il mio pod è definito come un locale dipendenza:
pod 'MySDK', :path => '../MySDK'
Dopo aver eseguito pod install
, è possibile vedere le cartelle identiche allolproj
in Development Pods/MySDK/Resources/MySDK
.
MyViewController.xib
è perfettamente caricato e localizzato, posso cambiare la lingua sul mio telefono e il testo cambia di conseguenza.
Per poter utilizzare le stringhe localizzate, ho definito una funzione nel mio SDK pod:
public func NSLocalizedIntentString(key: String) -> String {
let sdkBundle = NSBundle(forClass: MySDKClass.self)
return NSLocalizedString(key, tableName: nil, bundle: sdkBundle, value: key, comment: "")
}
Funziona, se non che utilizza solo la stringa definita in Base.lproj
, qualunque sia la lingua selezionata sul telefono o simulatore.
ho cambiato la mia podspec
per:
spec.resource_bundles = {
"MySDK" => ["MySDK/*.lproj"]
}
per caricare il pacchetto dal codice, ma ora non funziona, il XIB non può ottenere caricato. È strano perché in Development Pods
riesco ancora a vedere la stessa identica struttura di prima, ma con le icone delle cartelle blu invece del giallo.
Ecco come si carica il mio XIB dal mio SDK, non dalla mia app:
MyViewController.swift
public init(...) {
...
super.init(nibName: "MyViewController", bundle: NSBundle(forClass: MyViewController.self))
}
ho cambiato per:
public init(...) {
...
super.init(nibName: "MyViewController", bundle: NSBundle(path: NSBundle.mainBundle().pathForResource("MySDK", ofType: "bundle")!))
}
ma non riesco a trovare il pacchetto.
Ho letto tonnellate di documentazione e forum da questa mattina senza successo, quindi qualsiasi aiuto sarebbe più che benvenuto! :)
Stai presumibilmente usando i framework? – Tommy
Sì, ho 'use_frameworks!' Nel mio 'Podfile'. – Tijee