Was tun, wenn's beim SVN update Konflikte gibt?

Burkhard Lück lueck at hube-lueck.de
Mon Nov 8 23:27:28 CET 2010


Am Montag, 8. November 2010, um 22:17:23 schrieb Gerhard Stengel:
> Hallo,
> 
> ich habe mal auf meinen KDevelop4/stable Ordner ein SVN update losgelassen,
> da ja schon einiges eingecheckt wurde. Allerdings sind jetzt in ein paar
> anderen .po-Dateien Konflikte entstanden. Warum ist das so? 

Weil Subversion und alle anderen Versionsverwaltungssysteme für 
Übersetzungskataloge (gettext- / po-Dateien) nur bedingt geeignet sind.

Für das Gettextsystem ist nur Status der Nachricht, msgctxt und msgid 
maßgebend; und hier spielt noch nicht einmal die Formatierung oder die 
Reihenfolge der Statusangaben eine Rolle. 
Du kannst eine msgid aus vielen Wörten in eine Zeile schreiben oder auch für 
jedes Wort eine eigene Zeile benutzen. 
Solange jedes Wort oder der ganz lange Satz aus vielen Wörtern nur in Kommata 
(") eingeschlossen ist, sind für das dann für Gettext gleiche msgid's (das ist 
jetzt ein kleines bißchen vereinfacht - ich wills nicht zu kompliziert machen 
-  aber im Prinzip korrekt).

Auch die Reihenfolge der Nachrichten in der po_datein sind für Gettext 
unwichtig, ob die Nachricht samt Übersetzung am Anfangoder Ende oder in der 
Mitte steht, das ist egal.

Versionsverwaltungssysteme verstehen sowas natürlich nicht, die sehen po-
Dateien als Textdateien, in denen jede Änderung bedeutsam ist.

> An den
> Übersetzungen werkele ja nur ich im Moment herum, glaube ich. Kann es
> sein, dass (ein Entwickler) das Skript Messages.sh aufruft? 

Das (Nachrichten via Messages.sh extrahieren und mit den vorhandenen 
Übersetzungen 'mergen') macht Scripty einmal am Tag für trunk + stable.

Wenn jetzt ein Entwickler am Quelltext im 'String Freeze' arbeitet, fügt er 
zum Beispiel neuen Code ein oder ändert vorhanden Code, aber nicht die 
Nachrichten, das ist nicht erlaubt.
Damit wird auch Text in der po-Datei geändert (z. B. Zeilennummer der 
Nachricht im Code. Nachricht in andere Datei verschoben...). 
Es gibt noch viele weitere Ursachen, die zu einer Änderung von Text in der po-
Datei führen, die zu übersetzenden Nachrichten aber nicht verändern, daher im 
'String Freeze' erlaubt und für Gettext und die Übersetzung bedeutungslos 
sind.

Diese bedeutungslosen Textänderungen verstehen Versionsverwaltungssysteme wie 
SVN nicht, daher deine Konflikte, die für Gettext nicht existieren.

> Soll ich
> versuchen, die po-Dateien wieder zu mergen und sie wieder ins Review-Board
> stellen, damit der checkin dann geschmeidiger geht?
> 
"Im Prinzip" ja, das hängt aber von der Zahl der Konflikte ab. Bei der Doku (da 
verstehen Versionsverwaltungssysteme noch weniger als bei der GUI) benuzte ich 
zum Patchen immer die alte Version, gegen die der Diff fürs Reviewboard 
erstellt wurde.

-- 
Burkhard Lück


More information about the kde-i18n-de mailing list