Xcode 4.6, Ziel iOS 6, SDK iOS 6.1Basis Lokalisierung + + Storyboard .strings -> keine Lokalisierung
ich mit einem Storyboard gestartet, die gut für meinen App gearbeitet; Die enthaltenen Strings sind in Englisch. Ich wollte eine französische Lokalisierung hinzufügen. Ich tat dies:
- Added eine Basis-Lokalisierung, die MainStoryboard.storyboard von en.lproj zu Base.lproj übertragen.
- Eine französische Lokalisierung hinzugefügt, die InfoPlist.strings (Englisch) und MainStoryboard.storyboard (Base) in fr.lproj geklont hat.
- Ein paar Zeichenfolgen (Titel von Segmenten in einem UISegmentedControl) in der französischen MainStoryboard.storyboard geändert.
- Setzen Sie im Simulator die Sprache auf Französisch.
- Lief die App von Xcode.
Ergebnis: Dies hat funktioniert; Meine geänderten Zeichenfolgen erschienen in der laufenden Anwendung.
Aber ich möchte alle Phantasie sein. Ich möchte die französische Lokalisierung mit einer .strings-Datei durchführen. (Es ist nicht nur eine Frage des Seins Phantasie, die Französisch Lokalisierung auf nicht-technische Übersetzer übergeben werden, die nicht erwartet werden kann, Interface Builder zu meistern.) Also:
- ausgewählt, um die Basis MainStoryboard.storyboard im Xcode Projekt Navigator.
- Im Dateiinspektor unter Lokalisierung wurde die französische Lokalisierung von "Interface Builder Cocoa Touch Storyboard" zu "Localizable Strings" geändert.
- Akzeptierte Xcode-Warnung, dass das französische Storyboard zugunsten einer .strings-Datei verworfen wird, die im Assistenten-Editor angezeigt wird.
- Die gleichen zwei Bearbeitungen vorgenommen; Es gibt keine Frage, dass sie die falschen Strings sind, weil sie alle kommentiert sind als IBUISegmentedControl ... segmentTitles; und der Beschriftungstext erscheint nicht irgendwo sonst in der .strings-Datei.
- Die vorhandene (funktionierende) Kopie der App wurde aus dem Simulator gelöscht.
- Lief die App.
Ergebnis: Die Ansicht verwendet die Basis (ursprünglich englisch) Lokalisierung, anstatt die Französisch-Strings zu laden.
Die Konvertierung in Autolayout hatte keine Auswirkungen. Das Löschen der App aus dem Simulator hatte keine Auswirkungen. Das Löschen des Verzeichnisses für abgeleitete Produkte hatte keine Auswirkungen. Ein Stack-Overflow schlug vor, ibtool zum Generieren der .strings-Datei anstelle von Xcode zu verwenden. Die zwei generierten Dateien sind identisch.
Dies ist nicht zufriedenstellend. Wie gesagt, ich kann eine .storyboard-Datei nicht an einen nichttechnischen Übersetzer übergeben. Wie kann ich iOS dazu bringen, die Storyboard-Lokalisierung aus einer .strings-Datei zu akzeptieren?
Die Reinigung des Build-Ordners löste das Problem für mich. – Robert