Verwendung der Dateiformate xliff oder po l10n in der .net-Entwicklung (C # / ASP.Net)

7

Ich habe über xliff und po i18n-Dateiformate geforscht und es scheint, dass sie weit verbreitet sind und unterstützt werden. Es gibt viele kostenlose Tools, um die Übersetzungen in xliff / po Dateien zu verwalten.

Bisher konnte ich jedoch keine gute Lösung für die Verwendung der xliff- oder po-Dateien in Projekten .net (C # / ASP.Net) finden. Ich würde eine Art von xliff/po => resx Converter erwarten, aber bis jetzt noch keinen gefunden.

Gleichzeitig unterstützen jedoch viele Tools die Konvertierung von xliff / po Dateien in das Format . .

Wenn Sie Erfahrung mit der Implementierung von l10n über xliff- oder po-Dateien in .Net-Projekten haben, geben Sie bitte Ratschläge und teilen Sie die besten Vorgehensweisen, wie es funktioniert.

PS: Ich würde lieber das xliff-Format verwenden, da ich es sauberer finde und mehr Feature-Reach, aber po ist auch eine Option.

    
Paul 09.12.2011, 19:14
quelle

4 Antworten

6

PO- und XLIFF-Dateien funktionieren normalerweise anders:

  • PO-Dateien sind Ressourcendateien, die in ein Binärformat umgewandelt werden und auf die dann mithilfe von gettext () - Bibliotheken zugegriffen wird. Manchmal wird PO als Extraktionsformat wie XLIFF verwendet, aber das ist nicht der ursprüngliche Zweck.

  • XLIFF sind Extraktionsdateien, die durch Extrahieren Ihrer Ressourcendatei (z. B. resx) in XLIFF erstellt und dann wieder in das ursprüngliche Format zusammengeführt werden.

Also sollten Sie für XLIFF nach einem Tool suchen, das resx -> xliff -> resx anstatt xlif -> resx macht.

Die Tools, die XLIFF-Dateien extrahieren / zusammenführen, werden normalerweise als Filter bezeichnet. Es gibt einige kommerzielle Übersetzungstools, die XLIFF akzeptieren, und einige, die auch XLIFF erstellen können (Swordfish, Trados Studio, etc.).

Es gibt auch ein paar Open-Source-Tools, die XLIFF extrahieren / zusammenführen können: File2XLIFF4j zum Beispiel (aber ich glaube nicht, dass es resx unterstützt).

Rainbow vom Okapi-Projekt unterstützt resx. Die "alte" .net-Version (Rainbow 5: Okapi auf SourceForge) hat einen Filter, der der resx-Datei gewidmet ist und sie sehr gut verarbeiten kann; sogar mit binären Daten. Es kann jedoch zu Problemen mit Kontrollen von Drittanbietern kommen (Details finden Sie unter Ссылка ).

>

Die neue Java-Version (Rainbow 6: Ссылка ) unterstützt resx durch ihren XML-Filter und funktioniert gut mit einfachen resx , aber wenn Sie binäre Daten in ihnen haben, wird der Text in diesen Einträgen nicht extrahiert.

-ys

    
Yves 10.12.2011, 13:09
quelle
10

Sie könnten auch das i18n-Paket von Daniel Crenna in Betracht ziehen , verfügbar von nuGet . Es verwendet PO-Dateien als Standardspeicher für lokalisierten Text.

    
mcw0933 14.03.2012 06:05
quelle
4

Ich habe PO verwendet, um ein .Net-Projekt zu verwalten, nachdem .resx-Dateien aus dem Ruder gelaufen sind. Ich benutzte es "als Extraktionsformat wie XLIFF" (siehe Yves Kommentar ) . Unsere bestehenden .resx-Dateien wurden einmal in eine .po-Datei pro Sprache exportiert / zusammengeführt, die dann zu unseren autoritativen Sprachdateien wurden, aus denen alle resx-Dateien automatisch generiert würden.

Die Projekte, auf denen ich arbeite, sind nicht ASP, daher weiß ich nichts über das Paket, das von mcw0933 erwähnt wird, aber die Implementierung von resgen.exe von Mono hat einige einfache po & lt; = & gt; Resx-Konvertierungsfähigkeit. Um jedoch vorhandene Kommentare beizubehalten und den Originaltext automatisch als zusätzliche Kommentare hinzuzufügen, habe ich Monos Konvertierungstool auf den Punkt erweitert, an dem der von mir verwendete Text im Grunde neu geschrieben wird.

Ich habe die erweiterte .po & lt; = & gt; .resx-Konverter auf GitHub .

Was die Auswahl von .po zum Verwalten der Übersetzungen eines C # -Projekts angeht, ist .po einfach und freundlich, aber es gibt einige Unannehmlichkeiten, wenn man es in einer Weise verwendet, die sich leicht von seiner ursprünglichen Verwendung in gettext unterscheidet, und das habe ich nicht Die Erfahrung zu sagen, ob es eine bessere Wahl als Xliff war, aber die Fähigkeit, Übersetzungen zu verwalten und Aufgaben zu automatisieren, war viel besser als der Umgang mit den Resx-Dateien, wie wir es in der Vergangenheit waren.

Kleinere Unannehmlichkeiten bei der Verwendung von PO ein wenig anders als die Absicht:

  • Da gettext msgid verwendet, um das Feld zu verdoppeln, in dem die ursprüngliche nicht übersetzte Zeichenfolge gespeichert werden soll, musste ich resgenEx die ursprüngliche Übersetzungszeichenfolge in einen angehängten Kommentar anstatt in ein zu diesem Zweck entworfenes Feld archivieren.
  • Einige Tools nehmen an, dass die msgid die ursprüngliche englische Übersetzung enthält (und nicht nur eine ID-Zeichenfolge), was bedeuten könnte, dass die automatische Fehlerüberprüfung dieses Tools nicht sehr nützlich ist anderes Werkzeug usw. Die meisten Werkzeuge machen jedoch keine Annahme.
  • Einige .po-Tools wie \ n anstelle von \ r \ n

Das Projekt, für das ich ursprünglich resgenEx geschrieben habe, hatte zwei .resx-Dateien und eine .isl-Datei für jede unterstützte Sprache, aber bald muss ich alle Übersetzungen für ein .Net-Projekt verwalten, das mehrere resx-Dateien für jede Klasse enthält der Code. Wenn das passiert, werde ich entscheiden, ob ich weiter .po verwenden soll oder ob ich xliff oder etwas anderes verwenden soll. Wenn ich weiterhin .po verwende, bereinige ich resgenEx und muss wahrscheinlich weitere Funktionen hinzufügen, wie die Möglichkeit, automatisch den Namen der Assembly und die Präfixe der Klassen den msgids hinzuzufügen.

    
Treer 19.03.2014 12:09
quelle
0

Sie können auch PhraseApp ausprobieren. PhraseApp ist eine Übersetzungsmanagement-Plattform und unterstützt eine Vielzahl von Formaten. Auf diese Weise können Sie es in jedem Format hochladen und es wieder in einem Format exportieren, das am besten zu Ihrem Fall passt, wie XLIFF, po oder resx. Auf diese Weise müssen Sie sich nicht für ein einzelnes Übersetzungsformat entscheiden. Und Sie können später jederzeit problemlos auf ein anderes Format wechseln. PS: Vollständige Offenlegung Ich arbeite für das PhraseApp-Team.

    
Eknoes 16.10.2017 18:39
quelle

Tags und Links