2013-01-24 3 views
7

Wir entwickeln eine Anwendung, die auf verschiedenen Plattformen läuft (Windows, Windows RT, MacOSX, iOS, Android).Gibt es eine Möglichkeit, eine Anwendung auf verschiedenen Plattformen zu lokalisieren

Das Problem ist, wie man die verschiedenen Lokalisierungen auf den verschiedenen Plattformen in einer einfachen Weise verwaltet. Die Sprachdateien auf den verschiedenen Plattformen haben verschiedene Formate (einige sind XML-basiert, andere sind einfache Schlüssel-Wert-Paare und andere sind total verrückte Formate wie auf MacOS)

Ich bin mir sicher, wir sind nicht die erste Firma mit Dieses Problem, aber ich war nicht in der Lage, eine einfach zu benutzende Lösung zu finden, die die Möglichkeit bietet, eine "Datenquelle" zu haben, in der die Strings in verschiedenen Sprachen gesammelt werden (die beste wäre eine Benutzeroberfläche für die Übersetzer) und dann exportieren kann es zu den verschiedenen Formaten für die verschiedenen Plattformen.

Hat jemand eine Lösung für dieses Problem?

Grüße Alexander

+2

Ich denke, dass Sie Ihr eigenes Format und Ihre eigene Lokalisierung mechanizm erstellen können, dass alle Plattformen Einwickeln über. Nicht einfach, aber verfügbar – gaussblurinc

Antwort

2

I GNU Gettext Werkzeugkette für das Management empfehlen und zur Laufzeit verwenden entweder

  • einige alternative Implementierung zur Laufzeit wie Boost.Locale Lesen,
  • eigene Implementierung (die .mo-Format ziemlich trivial ist) oder
  • Verwendung Translate Toolkit, um die Nachrichtenkataloge in ein anderes Format Ihrer Wahl zu konvertieren.

Sie können nicht die libintl Komponente von GNU Gettext verwenden, da es unter der LGPL und sowohl hinsichtlich des von Apple App Store und Windows Live Store ist nicht kompatibel mit dieser Lizenz veröffentlicht. Aber es ist wirklich trivial, das zur Laufzeit benötigte Bit neu zu implementieren.

Die Translate Toolkit reimplementiert tatsächlich alle oder die meisten GNU Gettext und unterstützt viele zusätzliche Lokalisierungsformate, aber das Gettext .po Format hat die meisten kostenlose Tools dafür (zB poedit für die lokale Bearbeitung und Weblate für die Online-Bearbeitung), damit ich empfehlen Kleben mit es trotzdem . Und lesen Sie das GNU Gettext Handbuch, beschreibt es den beabsichtigten Prozess und die dahinter liegenden Gründe gut.

Ich habe recht gute Erfahrungen mit der Toolchain. Die Translate Toolkit ist einfach zu Skript, wenn Sie einige spezielle Verarbeitung wie Extrahieren übersetzbare Zeichenfolgen aus Ihren benutzerdefinierten Ressourcen-Dateien benötigen und Weblate ist einfach für Ihre Übersetzer zu verwenden, vor allem, wenn Sie für die meisten Übersetzungen Geschäftspartnern und Testern in verschiedenen Ländern wie wir tun.

Translate Toolkit unterstützt auch das Extrahieren von übersetzbaren Zeichenfolgen aus HTML, sodass derselbe Prozess für die Übersetzung Ihrer Website verwendet werden kann.

0

Disclaimer: Ich bin der CTO und Mitgründer bei Tethras, sondern werden versuchen, dies in einer Art und Weise zu beantworten, die „Nutzen Sie unseren Service“ nicht gerecht ist.

Wie Loldop oben erwähnt, müssen Sie Ihre Inhalte auf allen Plattformen wirklich normalisieren, wenn Sie eine Lösung aus einer Hand für die Verwaltung Ihrer lokalisierten Inhalte haben möchten. Dies kann sehr viel Arbeit kosten und würde viel Code und Skripting sowie das Aufrufen verschiedener Tools aus den verschiedenen SDKs erfordern, um ein gemeinsames Format zu erhalten, das die Lokalisierungsanforderungen aller verschiedenen Dateiformate unterstützt, die Sie unterstützen müssen. Die Länge und Komplexität meines vorherigen Satzes ist umgekehrt proportional zu der Menge an Arbeit, die Sie tun müssten, um zu einer günstigen Lösung für all dies zu gelangen.

Unter Tethras haben wir eine Plattform entwickelt, die die Notwendigkeit für Multi-Plattform-Software-Publisher verringert, dies zu tun. Wir unterstützen alle nativen Formate von den oben aufgeführten Plattformen und können Übersetzungen von einem Dateiformat auf ein anderes anwenden. Konvertieren Sie beispielsweise den Inhalt in Localizable.strings aus Ihrer iOS-App in eine Reihe von Sprachen, laden Sie dann die entsprechende Datei strings.xml von Android oder foo.resx von Windows RT auf das System hoch, und Übersetzungen werden automatisch für Sie verwendet. Alle nicht übersetzten Zeichenfolgen werden markiert, und Sie können Aktualisierungen für diese Zeichenfolgen bestellen.

Tatsächlich ist Tethras ein CMS für lokalisierten Inhalt über viele verschiedene native Dateiformate.

+0

Tethras sieht wirklich cool aus, aber gibt es eine Möglichkeit, Strings zwischen Projekten zu teilen? Wenn nicht, wird es unser Problem nicht beheben ... –

+0

Ja, auf jeden Fall können Sie Übersetzungen projektübergreifend teilen. Alle lokalisierbaren Inhalte werden aus den nativen Dateiformaten extrahiert, die Sie in Ihr Konto hochladen. Das System identifiziert übereinstimmende Zeichenfolgen projekt- und dateiübergreifend und nutzt bestehende Übersetzungen automatisch für Sie. Wenn Sie beispielsweise X-Strings in Localizable.strings für Ihre iOS-App übersetzen und Y-Strings in Strings .xml für Ihre Android-App hochladen, erkennt das System alle übereinstimmenden Zeichenfolgen in englischer Sprache zwischen beiden Dateien. iOS-Übersetzungen werden automatisch in strings.xml integriert. –

1

Ich habe ein Projekt für iPhone und Android gemacht, das viele Übersetzungen hat und ich denke, dass ich genau die Lösung habe, die Sie suchen.

Die Art, wie ich es gelöst habe war, alle Übersetzungstexte in eine Excel-Tabelle zu legen und ein VBA-Makro zu verwenden, um die .string und .xml Übersetzungsdateien von dort zu erzeugen.

http://members.home.nl/bas.de.reuver/files/multilanguage.zip

Erst vor kurzem habe ich auch hinzugefügt vorläufiges Visual Studio .resx Ausgabe, obwohl das nicht getestet ist: Sie können mein Beispiel Excel-Sheet und VBA-Makro hier herunterladen.

bearbeiten: btw auch mein Javascript xcode/eclipse converter könnte von Nutzen sein ..

+0

Ich habe mit dem Konverter ein bisschen gespielt, aber es vernachlässigt wichtige Eckfälle wie Strings mit Zeilenumbrüchen, Anführungszeichen, Backspaces und so weiter. Ja, ich habe eine ganze Reihe solcher Saiten in der Wildnis gesehen. –

+0

Okay, ich kann vielleicht raten, wie Strings mit Zeilenumbrüchen oder Anführungszeichen aussehen sollten, aber Backspaces ..? Ich werde das untersuchen, wenn Sie mir einige dieser Fälle schicken könnten, also eine .xml- oder .strings-Datei mit einigen dieser Ausnahmen, meine Mail-Adresse finden Sie hier http://members.home.nl/bas .de.rever – BdR