Im Thread ReactOS in Deutsch bin ich auf eine Idee gekommen, welche die Übersetzung und damit den Weg Mehrsprachigkeit von ReactOS vereinfachen soll.
Ich habe mir nun die aktuellen .rc-files angeschaut, in denen die Übersetzungen für ReactOS stehen. Ich habe festgestellt, das es für manche Verzeichnisse schon relativ viele Sprachfiles gibt, bei anderen nur sehr wenige. Deutsch und auch Spanisch sind z.B. schon sehr gut vertreten. Bei Russisch, Ungarisch oder Finnisch sieht es dagegen noch recht mau aus und viele Sprachen sind überhaupt noch nicht dabei.
Daher frage ich mich wie das im Moment eigentlich mit den Übersetzungen gemacht wird. Ich denke mal das man sich das englische rc-file holt und dann in einem Texteditor die betreffenden Stellen in seine Sprache übersetzt.
Wenn das allerdings so praktiziert wird hat dieses Verfahren doch einige Nachteile:
- Leute die noch nie etwas mit Quellcode in ihrem Leben zu tun hatten werden es sehr schwer haben die betreffenden Dateien und Stellen zu finden, die übersetzt werden müssen. Hierzu gibt es im Thread ReactOS in Deutsch auch einen entsprechenden Benutzer-Eintrag:
loki1985 wrote:ich wäre gerne bereit an einer deutschen übersetzung mitzuhelfen, sofern der ganze text / die strings in einem externen file ausgelagert sind. direkt im source rumzupfuschen wäre IMHO nicht so vorteilhaft...
- Man muss relativ lange in den Verzeichnissen suchen um Dateien zu finden die noch nicht übersetzt wurden.
- Es ist problematisch eine Datei nur "halb" zu übersetzen (weil man z.B. einige Wörter nicht weiß) und sie dann in das CVS zu stellen.
- Der gesamte Status der Übersetzung ist schwer zu erkennen. Es ist nicht ablesbar wieviel Prozent einer Sprache schon implementiert wurden.
- Manche Übersetzungen sind unglücklich oder falsch. Es dauert relativ lange solche Fehler zu finden. (z.B in der Datei cdlg_DE.rc: Hier wurde der String "PD32_PRINTER_STATUS_OFFLINE" in Deutsch mit "Printer ist offline; " übersetzt. Natürlich ist das nicht dramatisch aber dennoch unglücklich: Alle anderen Strings in dieser Datei in denen das englische Wort "Printer" vorkommt, wurden mit "Drucker" übersetzt. Die Übersetzung ist in diesem Fall also nicht Konsistent und außerdem würde ich "Printer" noch nicht als "eingedeutscht" bezeichnen. Es sollte daher übersetzt werden. So evtl. auch das Wort "offline".)
Wenn nun also die oben genannte Bearbeitungsweise zutrifft hätte ich folgenden Vorschlag:
Es müsste ein zentrales Übersetzungstool für ReactOS geben, das webbasiert, einfach und damit für jeden zugänglich ist.
Ich stelle mir vor, das ein USE-CASE dafür ungefähr so funktioniert:
- Man wählt aus in welche Sprache man übersetzen will.
- es erscheinen alle Dateien mit der Angabe wieviel Prozent schon übersetzt sind
- Man wählt eine Datei aus die man übersetzen will.
- es werden nun alle Strings aufgelistet:
- mit Variablen-Name
- evtl. Beschreibung der Bedeutung
- der englische Text
- einem editierbaren Textfeld, das entweder leer ist wenn es noch keine Übersetzung gibt, oder wo das bisherige übersetzte Wort darin steht
- es werden nun alle Strings aufgelistet:
- Man bestätigt die Übersetzung
Zu gewissen Zeitpunkten (eine neue ReactOS Version, oder wann immer es gewünscht ist) werden dann die Dateien in das ReactOS-CVS zurück importiert.
Ein weiteres Feature dieses Tools könnte sein, dass aus dem aktuellen Datenbank-Bestand der Status der jeweiligen Übersetzungen berechnet wird. Zum Beispiel in dieser Form:
Code: Select all
German: 97% of translation completed
Spanisch: 89% of translation completed
...
Code: Select all
cdlg_En.rc: 100% of translation completed
cdlg_De.rc: 67% of translation completed
...
Code: Select all
comctl_Fr.rc: 100% of translation completed
cdlg_Fr.rc: 0% of translation completed
...
Die Vorteile eines solchen Übersetzungs-Tools noch einmal kurz zusammengefasst:
- Mithilfe an der Übersetzung durch wesentlich mehr Leute
- keine komplette Bearbeitung eines Files zwingend erforderlich
- schnellere Übersetzung durch vereinfachtes Handling
- komfortable Übersicht über den Fortschritt der Übersetzung
- bessere Kontrolle und Fehlerkorrektur über die Übersetzung
- leichtere Erweiterbarkeit der Files durch neue Strings möglich
Im Moment fällt mir da zum Beispiel Folgendes ein:
Was ist wenn es Änderungen an den grafischen Benutzer-Elementen wie Buttons, Labels usw. in einer .rs-Datei gibt, die Datei aber schon zur Übersetzung in das Übersetzungs-Tool importiert ist? Klar, in diesem Fall müsste man bei dem Reimport einen "merge" der Dateien machen. Dieses Problem wäre also mit vertretbarem Aufwand lösbar. Es gibt aber sicher noch Weitere, an die ich im Moment nicht denke...
Warum mache ich diesen Vorschlag?
Naja, da ich mit C-Programmierung im Bereich Betriebssysteme leider ein eher bescheidenes Wissen habe, kann ich ReactOS in diesem Bereich nur schwer unterstützen. Um aber auch meinen Beitrag zu ReactOS zu leisten, könnte ich mir vorstellen so ein Übersetzungs-Tool zu schreiben. Da ich mich mit Java Client/Server-Programmierung und Datenbanken relativ gut auskenne, würde ich es mit einem Java-Applet und einer MySQL-Datenbank realisieren. Ich würde das Ganze aber nur angehen, wenn es eine realistische Chance gibt, dass dieses Projekt (bei entsprechend geglückter Umsetzung) auch tatsächlich genutzt wird und auch von offizieller Seite empfohlen und unterstützt wird. Ich könnte allerdings erst Mitte März 2005 mit der Umsetzung anfangen, da ich im Moment noch mit meinem Studium (Diplomarbeit, Prüfungen) beschäftigt bin.
Daher würde ich euch um folgende Antworten zu diesem Thema bitten:
- wie seht ihr die Chancen eines solchen Projekts?
- bietet es überhaupt einen Mehrwert zur bisherigen Vorgehensweise?
- welche Risiken bestehen bei der technischen Umsetzung?
- welche Risiken bestehen bei der Akzeptanz der User?
- welche Alternativen Vorgehensweisen gäbe es?
- wie wird die Übersetzung in anderen Projekten (wie z.B. KDE für Linux gibt es ja mittlerweile in über 150 Sprachen) gemacht?
Ich habe diesen Vorschlag bewusst erstmal nur im deutschen Forum gepostet. Falls er hier positiven Anklang findet, kann man dann später auch noch im englischen Forum darüber diskutieren. Ich würde in diesem Fall diesen Text mit evtl. Änderungen dorthin übersetzen.
Vielen Dank an alle die sich die Mühe gemacht haben diesen langen Post zu lesen!