Erfahrungswerte für Vorgehen bei Lokalisierung

25/11/2008 - 11:35 von Holger Vorberg | Report spam
Hallo zusammen,

wir wollen (müssen) unsere ASP.NET Anwendung mehrsprachig machen. Das war
von Anfang an vorgesehen, aber es bestand bis jetzt eigentlich kein
wirkliches Konzept dafür. Der aktuelle Stand ist deshalb, dass wir ca. 150
Forms haben, in denen sàmtliche Strings "hardcodiert" sind, und entweder als
.Text, .Tooltip oder àhnlichen Eigenschaften zugeordnet sind, oder sie
werden im Codebehind (C#) zugewiesen.

Wir haben uns entschlossen, die von .NET vorgesehene Variante der
Lokalisierung über Resource Dateien zu verwenden (es stand auch im Raum,
alles über eine String Tabelle der DB zu machen, was aber verworfen wurde).

Leider ist es mit dem Treffen dieser Entscheidung allein ja nicht getan.
Bevor wir anfangen, irgendwelche Wörter oder Texte in eine andere Sprache zu
übersetzen, müssen wir erstmal dafür sorgen, dass wir sàmtliche Strings in
deutschen Resource Dateien haben.

Wir sind z.Zt. mit 4 Entwicklern tàtig, wobei jeder seinen eigenen Bereich
hat. Manchmal gibts es Überschneidungen, aber das ist ja normal.

Der Punkt ist, dass es nun unterschiedliche Meinungen darüber gibt, ob wir
sàmtliche Strings in einer einzigen globalen Resource Datei speichern, oder
ob wir die Resourcen "verteilen". Damit ist gemeint, dass z.B. Strings, die
überall bzw. an mehreren Stellen verwendet werden, in eine globale Resource
Datei wandern, aber bestimmte Strings, die voraussichtlich nur in einem
bestimmten Bereich benötigt werden, auf Formular- oder Usercontrolebene in
separaten Resourcedateien gehalten werden.

Hat da jemand Erfahrung, was sich besser handhaben làsst?

Ein Argument gegen die Verwendung einer einzigen Resourcedatei wàre z.B.,
dass es nicht möglich ist, dass nun alle Entwickler gleichzeitig ihre
Formulare von hardcodierten Strings bereinigen, weil wir uns dann stàndig
gegenseitig diese Resourcedatei sperren und immer der eine auf den anderen
warten muss. In diesem Fall wàre einer dazu "verdammt" diese Strings aus
allen Formularen herauszuziehen, was dann zwar die Resourcedatei besser
handhabbar machen würde, aber das Problem des Sperrens immer noch bei den
eigentlichen Formularen bestünde.

Bin für jede Meinung dankbar!

MfG
Holger Vorberg
 

Lesen sie die antworten

#1 Thomas Bandt
25/11/2008 - 11:50 | Warnen spam
Hallo Holger,

ich quote mal voll.

Holger Vorberg schrieb:
wir wollen (müssen) unsere ASP.NET Anwendung mehrsprachig machen. Das
war von Anfang an vorgesehen, aber es bestand bis jetzt eigentlich kein
wirkliches Konzept dafür. Der aktuelle Stand ist deshalb, dass wir ca.
150 Forms haben, in denen sàmtliche Strings "hardcodiert" sind, und
entweder als .Text, .Tooltip oder àhnlichen Eigenschaften zugeordnet
sind, oder sie werden im Codebehind (C#) zugewiesen.

Wir haben uns entschlossen, die von .NET vorgesehene Variante der
Lokalisierung über Resource Dateien zu verwenden (es stand auch im Raum,
alles über eine String Tabelle der DB zu machen, was aber verworfen wurde).

Leider ist es mit dem Treffen dieser Entscheidung allein ja nicht getan.
Bevor wir anfangen, irgendwelche Wörter oder Texte in eine andere
Sprache zu übersetzen, müssen wir erstmal dafür sorgen, dass wir
sàmtliche Strings in deutschen Resource Dateien haben.

Wir sind z.Zt. mit 4 Entwicklern tàtig, wobei jeder seinen eigenen
Bereich hat. Manchmal gibts es Überschneidungen, aber das ist ja normal.

Der Punkt ist, dass es nun unterschiedliche Meinungen darüber gibt, ob
wir sàmtliche Strings in einer einzigen globalen Resource Datei
speichern, oder ob wir die Resourcen "verteilen". Damit ist gemeint,
dass z.B. Strings, die überall bzw. an mehreren Stellen verwendet
werden, in eine globale Resource Datei wandern, aber bestimmte Strings,
die voraussichtlich nur in einem bestimmten Bereich benötigt werden, auf
Formular- oder Usercontrolebene in separaten Resourcedateien gehalten
werden.

Hat da jemand Erfahrung, was sich besser handhaben làsst?

Ein Argument gegen die Verwendung einer einzigen Resourcedatei wàre
z.B., dass es nicht möglich ist, dass nun alle Entwickler gleichzeitig
ihre Formulare von hardcodierten Strings bereinigen, weil wir uns dann
stàndig gegenseitig diese Resourcedatei sperren und immer der eine auf
den anderen warten muss. In diesem Fall wàre einer dazu "verdammt" diese
Strings aus allen Formularen herauszuziehen, was dann zwar die
Resourcedatei besser handhabbar machen würde, aber das Problem des
Sperrens immer noch bei den eigentlichen Formularen bestünde.

Bin für jede Meinung dankbar!



Letztendlich làuft alles darauf hinaus, was das praktikabelste
für den Übersetzungs-Workflow ist. Ob ihr nun alle gemeinsam
die 150 Seiten bearbeitet oder einer nach dem anderen spielt da
eigentlich ne untergeordnete Rolle, weil man das einmalig schon
handhaben kann.

Viel wichtiger ist dann aber: wie kommen die Daten aus der .resx
zum Übersetzer, und noch wichtiger: wie wieder zurück? Ich kenne
kein Übersetzungsbüro, denen man die Dateien so hinwerfen kann,
bzw. eins was z.B. mit dem Zeta-Resourcen-Editor arbeitet, die
wollen meist Excel.

Also musst du ein Tool schreiben (ggf. gibt's inzwischen schon
was) womit du im- und exportieren kannst.

Womit wir bei der Frage wàren, ob eine große .resx oder viele
lokale - ich denke weder der Übersetzer noch du/deine Kollegen
dürften sich über 150-Excel-Dateien und damit 300-Im- und Export-
Aktionen freuen.

Was gegen eine Datei spricht: "schnelle Änderungen" werden zur
Tortur, darüber hinaus benötigt ihr absolut eindeutige Keys,
zweimal Label1.Tooltip funktioniert dort halt nicht. Und wie
sich eine am Ende mehrere Megabyte große .resx in der Praxis
macht weiß ich auch nicht, könnte mir aber vorstellen, dass
es da den einen oder anderen Hànger gibt.

Meine Meinung: ich würde nochmal über eine Datenbanklösung
nachdenken. Die Performance dürfte da ja eher keine Rolle
spielen, ggf. cacht ihr dann. Ihr seid aber so mit der
Datenhaltung und vor allem auch dem Im- und export wesentlich
flexibler, im einfachsten Fall generierst du ein Excelsheet
für den Übersetzer einfach via Management Studio > Export.

Gruß, Thomas [MVP ASP/ASP.NET]
http://blog.thomasbandt.de - Blog
http://www.69grad.de - ASP.NET, Webdesign und mehr.

Ähnliche fragen