Ich habe das folgende Problem mit einem kleinen iOS 7 Projekt, auf dem ich die Lokalisierungsfähigkeiten teste.
/ * Mein Kommentar zu meinem Button * / "MY_BUTTON"="Meine [VALUE] Taste"; WERT = Basis, Niederländisch; Also sollten die Labels My Base Button & amp sein; Mein niederländischer Knopf
Problem: Wenn ich meine App mit der Sprache des Simulators als Niederländisch starte, ist das Label (wie erwartet) "My Dutch Button". Wenn ich es in Englisch starte, lautet das Label "My Base Button" (irgendwie ok ...)
Wenn ich es jedoch mit der auf Französisch eingestellten Sprache des Telefons starte, und ich hatte es zuvor auf Niederländisch eingestellt, wird die Beschriftung der Schaltfläche nicht standardmäßig auf Basis eingestellt und stattdessen wird wieder "Meine niederländische Schaltfläche"
angezeigtIrgendwelche Gedanken dazu?
Danke
Die Reihenfolge der Standardsprachen ist eine Benutzereinstellung unter OSX und nicht editierbar (AFAIK) unter iOS
ABER trotzdem eingehalten!
der App wurde das Array AppleLanguages (oder so ..) übergeben, das die zu testenden Sprachen angibt. Das NSLocalizedString-Makro wird versuchen, jede Sprache in dem Array in der Reihenfolge zu laden, in der sie angezeigt werden, bis sie ein funktionierendes finden und dann das
verwendetvergleichen: Erzwingen, dass NSLocalizedString eine bestimmte Sprache verwendet
Ich habe die folgende Klasse erstellt, die ein Fallback auf eine anpassbare Sprache unterstützt. In meinem Fall verwende ich Base.lproj als Datei für meine Standardsprachinhalte.
StringUtilities.h
%Vor%StringUtilities.m
%Vor%Verwendung
Importieren Sie die Headerdatei und verwenden Sie das Makro GetLocalizedString
anstelle von NSLocalizedString
Makro.
Tags und Links objective-c ios nslocalizedstring base