Wie können wir Änderungen an Übersetzungen innerhalb unseres Projekts nachverfolgen?

Ich arbeite in einer Spieleentwicklungsfirma mit rund 100 Mitarbeitern. Jeder von ihnen kann Text zum Übersetzen hinzufügen. Es gibt viel Text zu übersetzen, daher ist es problematisch, den Überblick über den gesamten Text zu behalten. Bevor wir Text an Übersetzer senden, muss jemand den gesamten Text finden, der hinzugefügt oder geändert wurde, und das ist eine enorme Zeitverschwendung.

Wie können wir diesen Prozess vereinfachen? Wie können wir Änderungen in Dateien nachverfolgen, die Text enthalten?

Antworten (4)

Beginnen Sie mit der Quellcodeverwaltung

Das Empfehlen bestimmter Tools ist hier kein Thema, aber aus Sicht des Softwareprojektmanagements (und sogar aus technischer Sicht) ist die richtige Antwort wahrscheinlich die Verwendung einer effektiven Quellcodeverwaltung.

Ein Source Code Management (SCM)-System wie Subversion oder Git wurde entwickelt, um genau das zu tun, was Sie zu tun versuchen: Änderungen an Textdateien innerhalb eines Projekts nachverfolgen. Gute SCMs machen es sogar einfach, die letzten Änderungen aufzulisten, Dateien zu vergleichen oder Versionen derselben Datei zu vergleichen.

Implementieren Sie Internationalisierung und Lokalisierung

Verfahren

Sobald Sie die Quellcodeverwaltung eingerichtet haben, möchten Sie wahrscheinlich Prozesse und Engineering-Praktiken für die Internationalisierung und Lokalisierung entwickeln. Ihr Projektmanagementprozess sollte die folgenden Teilprozesse umfassen:

  1. Internationalisierung
  2. Lokalisierung
  3. Qualitätskontrolle

Maschinenbau

Ihre Engineering-Praktiken sollten eine konsistente Methode zur Verwaltung globalisierter Nachrichten beinhalten. Laut Wikipedia :

Die derzeit vorherrschende [Engineering]-Praxis besteht darin, dass Anwendungen Text in Ressourcenstrings platzieren, die während der Programmausführung nach Bedarf geladen werden.

Spezifische Engineering-Methoden liegen außerhalb des Geltungsbereichs eines Standorts, der sich auf Projektmanagement konzentriert. Dies sollte Ihnen jedoch eine solide Grundlage bieten, um die Anforderungen Ihres Projekts zu untersuchen und Ihre eigenen Engineering-Praktiken zu entwickeln.

Halten Sie alle Textteile in einer einzigen Datei zusammen (oder besser gesagt, eine Datei pro Sprache). Wenn Sie diesen Text verwenden müssen, ziehen Sie ihn aus der Datei.

Auf diese Weise ist es viel einfacher, alles zu visualisieren, da der gesamte Text zusammengehalten wird. Es wird auch viel einfacher, Änderungen an dieser Datei zu sehen, besonders wenn Sie die Quellcodeverwaltung verwenden – vergleichen Sie einfach die neueste Version dieser Datei mit der Version vor X Tagen, und Sie sehen alle Änderungen, die jemand am Text dieser Sprache vorgenommen hat .

Dies macht es auch viel einfacher, zwischen Sprachen zu wechseln - Sie tauschen einfach die verwendete Datei aus.

So handhaben wir es im Moment mehr oder weniger. Wir haben auch separate Dateien für jeden Zweck, jede Sprache hat einige Dateien (wie bei Dialogen oder Optionen). Bei etwa 5 Sprachen und einigen tausend Datensätzen pro Sprache ist es wirklich nicht einfach, dies zu verfolgen.
@Derag Das ist das Problem. Sie sollten EINE Datei pro Sprache haben. Nicht wenige Dateien pro Sprache. Wenn sich alles in einer einzigen Datei befindet, wird es viel einfacher, Änderungen nachzuverfolgen.

Ich sehe dies eher als eine Tool-basierte Lösung denn als eine Management-basierte Lösung. Sie verwenden bereits Ressourcendateien und

Wir haben auch separate Dateien für jeden Zweck, jede Sprache hat einige Dateien (wie bei Dialogen oder Optionen). Bei etwa 5 Sprachen und einigen tausend Datensätzen pro Sprache ist es wirklich nicht einfach, dies zu verfolgen.

Ihr Problem (wie ich es sehe) besteht also darin, festzustellen, wann Ressourcentexte geändert werden und welche Arbeit getan werden muss, um alle Ressourcen für die anderen Sprachen zu reparieren.

Mein erster Gedanke war, ein Programm zu erstellen, um alle Ressourcentexte in eine flache Datei mit Feldern wie zu extrahieren

Source-File
Resource-Name
Resource-Language
Resource-Text

... und dann sortieren und die aktuelle Flatfile mit einer früheren Version unterscheiden. Jetzt können Sie die geänderten Ressourcen sehen und manuell korrigieren.

Natürlich werden neue Eingaben von Ihren Übersetzern in den Diffs auftauchen und müssen ignoriert werden.

Aber Ihre Situation (100 Mitarbeiter) erscheint mir als Gelegenheit, ein viel besseres Tool zu entwickeln, das die Softwareentwicklung in Ihren nächsten Projekten verbessern würde. Hier ist ein komplexeres Werkzeugkonzept:

Erstellen Sie ein Programm zum Extrahieren aller Ressourcentexte in eine Datenbanktabelle mit Feldern wie

Source-File
Resource-Name
Resource-Language
Resource-Text
Last-Change-Date
From-Resource-File-Flag
Translator-Name

Das Programm würde diese Tabelle mit geänderten Ressourcen ergänzen - dh, wenn die Sprache und der Text gleich sind, würde die Zeile nicht aktualisiert. Wenn sich die Sprache/der Text von der aktuellen Zeile unterscheidet, fügen Sie diese Ressource als neue Zeile hinzu.

Somit würde die Tabelle alle Versionen der Ressource nach Datum enthalten. Das From-Resource-File-Flag würde anzeigen, dass die Quelle dieser Zeile von einer Entwickleränderung an einer Ressourcendatei stammt.

Da sich die Tabelle in SQL befindet, können Sie Abfragen ausführen. Sie könnten Änderungen von Entwicklern identifizieren, die übersetzt werden müssten. Sie könnten auch Ressourcen finden, die nicht übersetzt sind – beispielsweise gibt es eine englische und eine französische Version, aber keine spanische Version.

Aber das Beste daran ist, dass jetzt ein separates Tool (oder eine Website) möglich wäre, damit Sie Übersetzungsänderungen ohne zu viel menschliche Aufsicht aufteilen können. Ein Übersetzer meldet sich an und sieht eine Liste mit Texten, die übersetzt werden müssen; Die Übersetzung würde der Datenbank hinzugefügt und dann mit einem anderen Programm zurück in die Ressourcendatei übertragen.

Wie gesagt, eher eine toolbasierte Lösung. Eine verwaltungsbasierte Lösung kann scheitern, wenn die Mitarbeiter nicht gewissenhaft sind. Es würde mehr Tests geben, um sicherzustellen, dass alle Ressourcen übersetzt wurden (denn wenn eine Ressource nicht übersetzt wird, würde der Ressourcentext in der falschen Sprache ausgegeben).

Die Idee mit SQL klingt großartig, aber es ist zu viel Arbeit für unsere Bedürfnisse. Das Aufbewahren des Änderungsverlaufs ist eine interessante Idee.

Wenn es nicht möglich ist, die Anzahl der Personen zu reduzieren, die Text ändern können, ist es möglicherweise der richtige Weg, ein Tool zu finden, das Änderungen automatisch erkennt und eine Warteschlange für Übersetzungsaufträge erstellt.

Ich habe keine persönliche Erfahrung mit Übersetzungsmanagementsystemen für Unternehmen (z. B. Transifex ), aber ich habe Startup-freundliche Systeme wie WebTranslateIt und OneSky verwendet . Beide verfügen über Entwicklertools und APIs, die so in Ihren Workflow integriert werden können, dass sie den neuesten Stand Ihrer Textressourcendateien mit ihren Portalen synchronisieren.

Auf solche Tools können Übersetzer zugreifen und den gesamten Übersetzungsprozess hosten. Wenn eine Änderung vor kurzem als der letzte Stand einer Übersetzung in einer bestimmten Sprache synchronisiert wurde, wird sie Nachricht für Nachricht und Sprache für Sprache markiert. Diese können von Übersetzern leicht gefiltert werden, und Dashboards helfen Managern, den Fortschritt zu verfolgen.

Es gibt in letzter Zeit ein ziemlich breites Feld von Dienstleistungen wie diesem. Es hängt davon ab, ob Sie selbst Linguisten verwalten, eine Beziehung zu einem Anbieter haben, an den Sie bei Bedarf Kits senden, Crowd-Sourcing-Übersetzungen durchführen oder wie auch immer Ihr aktueller Alltag aussieht.