2012-11-30 4 views
5

Ich habe mehrere Lokalisierungen in einem OSX-Projekt für Mac App Store hinzugefügt, die App eingereicht, aber nur Englisch wurde erkannt (Lokalisierungen: ("Englisch"), von ITC Binary Details übernommen). Das Produkt ist live auf iTunes, wobei auch Englisch als einzige Sprache angezeigt wird.Lokalisierungen in CFBundleLocalizations nicht von iTunesConnect (OSX)

Die lokalisierten Zeichenfolgen werden mit einem benutzerdefinierten System behandelt, so dass wir keine zusätzlichen Ordner wie English.lproj benötigen. Um die Anwendung zu lokalisieren, ich habe gerade alle Sprachkennungen innerhalb des Projekts Info.plist unter den Schlüssel CFBundleLocalizations hinzugefügt, wie die von Apple bei https://developer.apple.com/library/mac/#documentation/MacOSX/Conceptual/BPInternational/Articles/ChoosingLocalizations.html

Eine Anwendung schlägt vor, kann das System mitteilen, dass sie ihre zusätzlichen Lokalisierungen durch unterstützt Informationseigenschaftsliste (Info.plist) Datei. Um Lokalisierungen anzugeben, die nicht in den .lproj-Verzeichnissen Ihres Bundles enthalten sind, fügen Sie dieser Datei den CFBundleLocalizations-Schlüssel hinzu. Der Wert für den Schlüssel ist ein Array von Zeichenketten, von denen jede enthält einen Bezeichner ISO-Sprache, wie beschrieben in

Der Abschnitt der plist Datei, die Lokalisierungen bezeichnet ist, „Sprache und Gebietsschema Bezeichnungen.“:

<key>CFBundleLocalizations</key> 
<array> 
    <string>en</string> 
    <string>de</string> 
    <string>fr</string> 
    <string>it</string> 
    <string>es</string> 
    <string>pt</string> 
    <string>nl</string> 
    <string>se</string> 
</array> 

Ich habe die gleiche Methode auf 2 iOS-Apps in der Vergangenheit verwendet, und beide funktionierten gut. Ich verstehe nicht, warum wir diesmal ein anderes Verhalten bekommen. Irgendwelche Gedanken?

Danke.

Antwort

4

Ich habe es endlich verstanden.

In meiner Frage hatte ich gesagt:

Die lokalisierte Strings werden behandelt ein eigenes System, so dass wir keine zusätzlichen Ordner wie English.lproj benötigen.

Es stellt sich heraus, dass ich genau dies gelöst habe. Ich ging auf den Tab Projekt> Info unter Lokalisierungen und fügte für jede Sprache, die die App unterstützt, einen Eintrag hinzu. Dies erzeugt für jeden einen Ordner, z. es.lproj, fr.lproj usw. legte ich die App und in iTunesConnect ich sah, dass die Lokalisierungen erkannt wurden:

Lokalisierungen: ("de", "Englisch", "es", "fr", " es "," nl "," pt "," sv ")

Das Update ist noch nicht out, aber ich glaube, es wird in Ordnung sein.

Ich habe eine ältere iOS-App überprüft, die 3 Lokalisierungen enthielt, die ordnungsgemäß erkannt wurden. In dieser App hatte ich keine extra .lproj-Ordner mit der oben genannten Prozedur erstellt. Alles, was ich getan habe, war, die Lokalisierungskennungen in die PLIST-Datei unter CFBundleLocalizations aufzunehmen. Ich weiß nicht, ob sich in dieser Hinsicht etwas zwischen iOS- und OSX-Apps unterscheidet. Wenn jemand dazu Kommentare hat, würde ich mich freuen zu erfahren, warum das, was ich hier getan habe, das Problem tatsächlich gelöst hat.

+0

Du hast mich gerade zu einem sehr glücklichen Mann gemacht !!! Ich hatte die Dateien, die automatisch hinzugefügt wurden, aber JSON verwendet, um Sprachen basierend auf den Lokalisierungseinstellungen zu lesen. Sie arbeiteten sporadisch. Wenn Sie diese zu den Plisten hinzugefügt haben, haben sie funktioniert! VIELEN DANK. Was tatsächlich gelöst wurde - ich denke, sie nur in der Umgebung verfügbar zu machen, ist der Trick - in Kombination mit den Ordnern. –

1

Hoppend zu mir auch, aber da appirater alle lproj Ordner hatte, habe ich nicht verstanden, warum alle Sprachen nicht in der iTunes Beschreibung erscheinen.

Es stellt sich heraus, dass obwohl Sie alle Lproj-Ordner in Ihrem Projektnavigator sehen, sie nicht in Ihrem Bundle enthalten sind, außer Sie fügen die Sprachen hinzu, die Sie tatsächlich unter Projekt -> Info unterstützen.

Verwandte Themen