Die Übersetzung von .NET Programmen gestaltet sich doch recht schwierig. Wobei schwierig in diesem Fall das falsche Wort ist. Umständlich trifft es in diesem Fall besser. Vor allem wenn als Entwickler das Qt Übersetzungssystem mit Qt Linguist kennenlernen dürfte. Ein Problem bei der Übersetzung ist, dass man zu jedem Programm mehrere Ressourcen (resx) Dateien in den unterschiedlichsten Sprachen hat z.B. translate.resx, translate.de.resx und translate.nl.resx.
An dieser Stelle ist ein Tool wünschenswert welches diese ganzen Dateien nebeneinander darstellt und einigen Komfort bei der Bearbeitung bietet. Basierend auf dem Resx Resource Translator (http://resxtranslator.codeplex.com) von Hakan Lindestaf habe ich dabei ein Tool namens Vertimas (litauisch für Übersetzung) geschaffen welches einem diesem Arbeit leichter von der Hand gehen lässt.
Vertimas ist dabei ein Open Source Projekt welches unter der GPL steht. Die offizielle Projektseite ist dabei unter https://github.com/seeseekey/Vertimas zu finden. Über Feedback, Verbesserungen und Kritik freue ich mich :)
Hallo,
ich habe heute dein Tool ausprobieren wollen. Wo wird denn die Übersetzung der Strings am Ende abgelegt? Wenn ich das resx im VisualStudio öffne, sehe ich nach wie vor nur die Original-Sprache. Ich wollte dann über den ResourcenManager an meine Übersetzung kommen, aber irgendwie pack ich das nicht.
Kannst du mir da weiterhelfen?
Mit besten Grüßen
Falk
Es kommt darauf an was du übersetzen möchten (UI oder Text im Quellcode). Bei der UI gehe ich immer so vor, dass ich wenn ich z.B. eine FormMain.cs habe, die neutrale Sprache Englisch ist und ich über die Eigenschaft Language des Formulars eine Sprache erstelle (z.B. Deutsch). Dadurch wird dann eine „FormMain.de.resx“ erzeugt. Wenn man nun mittels Vertimas das Projekt öffnet und Dinge in der FormMain.cs ändern so wird die deutsche Übersetzung in die „FormMain.de.resx“ übertragen.
Bei Texten im Quellcode gehe ich anders vor. Hier lege ich mir eine „Translate.resx“ Datei an, welche ich in das Projekt einfüge. Mit Vertimas ist es dann möglich für diese Datei neue Sprachen hinzuzufügen, z.B. „de“. Wenn ich nun einen String übersetzen will, so übertrage ich ihn in die „Translate.resx“ Datei und verweise im Quelltext auf diesen String:
z.B. Console.WriteLine(Translate.NoJoystickSelected)
Mit Vertimas wird das ganze dann übersetzt und nach dem speichern im Vertimas sollte es dann auch in diesen Dateien zu finden sein. Für das vereinfachte übertragen der Strings in die RESX Datei nutze ich im übrigen die Erweiterung ResourceRefactor welcher unter http://visualstudiogallery.msdn.microsoft.com/39ae29d3-81e1-43d4-9c48-fc9644869d84/ zu finden ist.
Hoffe das hilft dir weiter.