Lokalisierung für iPhone Apps - Was ist Ihr Ansatz?

9

Im Allgemeinen weiß ich, wie man die Lokalisierung von iOS-Apps durchführt, die einzige Sache ist, zwischen verfügbaren Möglichkeiten zu wählen und es richtig zu machen. Daher möchte ich Sie nach Ihrem l10n Ansatz für Ihre Projekte fragen.

Hier sind meine Eingaben:

  1. Ich habe 15 XIB - Dateien (gepackt mit viele IB-Outlets, die nicht sind synthetisiert als Eigenschaften, wird aber muss lokalisiert werden).
  2. Es ist sehr wahrscheinlich, dass das mein App wird 3-5 Sprachversionen haben, aber es ist möglich, dass ich es auch werde gehe für 10 Sprachen in der Zukunft.
  3. In naher Zukunft plane ich neue hinzuzufügen Ziele, die das UI-Design ändern können (bezahlte / kostenlose Versionen).

Ich sehe zwei Möglichkeiten, wie ich gehen könnte:

Option A: Lokalisieren Sie jede NIB-Datei, indem Sie XIBs lokalisierbar machen und Sprachversionen hinzufügen:

  1. Ich befürchte, dass es mit 15 XIBs und 3-5 Sprachen zu einem Wartungs-Horror kommen wird, der außer Kontrolle gerät, wenn ich die Lokalisierung auf ~ 10 Sprachen ausweite und neue Ziele einführe (Wartungs-Horror geht nicht um SCM, ich ' m mit git btw).
  2. Ich müsste alle Versionen von XIBs synchronisieren, die sich in einem schmerzhaften Change-Request-Prozess auswirken würden.
  3. Ich befürchte auch, dass mein App-Bundle stark wachsen wird (derzeit benutzen XIBs ~ 1.1 MB und übersetzen in ~ 120 kB NIB-Dateien).
  4. Wenn ich mich für die iPad-Version entscheide, wird die Anzahl der XIBs wieder wachsen.

Option B: führt die Lokalisierung im Code durch, indem alle benötigten Steckdosen miteinander verknüpft und mit Eigenschaften versehen und ihre Beschriftungen / Titel richtig gesetzt werden:

  1. Ich befürchte, dass der Speicherplatzbedarf meiner App sehr groß sein wird. Oder sollte ich, unter Berücksichtigung des richtigen Memgments, dies nicht als Problem betrachten?

Ich würde mich für die zweite Option entscheiden, da ich weniger Nachteile sehe und es erlauben kann, alles an einem Ort unter Kontrolle zu haben, aber ich würde gerne wissen, was Sie wählen würden? Welcher Weg funktioniert besser für dich?

BEARBEITEN: Ich weiß, dass ibtool den Prozess in Plan A vereinfachen könnte, aber ich bin immer noch nicht davon überzeugt.

    
matm 31.01.2011, 12:08
quelle

2 Antworten

1

Nun, ich habe etwas mehr Feedback von SO-Benutzern erwartet, aber das ist in Ordnung, denn nach einigen Recherchen habe ich meine eigene Entscheidung getroffen, Option B aufzugeben und eine modifizierte Version von Option A zu wählen.

Ich habe viele Ideen aus einem Compile-Time-Ansatz von Philippe Casgrain verwendet. Im Allgemeinen wird ibtool verwendet, um die Nibs beim Erstellen automatisch zu lokalisieren. Philippe's Ansatz hält die Wartung im Moment vernünftig. Alle anderen Zeichenfolgen, die ich im Code verwende, werden mit NSLocalizedString approach behandelt, was in meinem Fall ziemlich einfach zu implementieren war (nur verwendet genstrings tool). Das einzige Problem, das mich in Zukunft möglicherweise treffen könnte, ist das Hinzufügen neuer Ziele mit unterschiedlichen / geänderten UI-Layouts.

Es ist schwer zu sagen, ob es die beste Wahl war. Die Zeit wird es zeigen, also werde ich eines Tages die Frage aktualisieren und mit Ihnen teilen, wie die Entscheidung für mich gelaufen ist. Vielleicht wird jemand davon in der Funktion profitieren;)

    
matm 01.02.2011, 15:58
quelle
3

Ich verwende Option B in allen meinen Projekten, da dies es mir auch erleichtert, die String-Dateien an die Localizer zu verteilen. Das Testen ist natürlich danach notwendig, um sicherzustellen, dass die Strings passen. Auch einige Projekte verwenden keine XIB-Dateien, daher ist der Prozess immer gleich, egal ob XIB-Dateien verwendet werden oder nicht. Es gibt kein Speicherproblem mit dieser Option nach meiner Erfahrung.

    
Kerni 31.01.2011 12:36
quelle