Wie kann man Produkte kontinuierlich in 20 Sprachen veröffentlichen und nicht sterben?

In diesem Artikel werden wir beschreiben, wie wir die Lokalisierung mobiler Projekte in Smartcat übersetzt haben , welche Schmerzen wir anfangs hatten und wie wir damit umgegangen sind.

Bild

Wer sind wir


Hallo an alle! Wir sind Ekaterina Galitskaya und Daria Egorushkina vom Kaspersky Lab (Dokumentations- und Lokalisierungsabteilung). Etwas genauer: Das Team, in dem wir arbeiten, ist für das Schreiben und Lokalisieren von Schnittstellentexten und die Hilfe für mobile Anwendungen verantwortlich.

Schmerzen


Der Hauptauslöser für Veränderungen war der Entwicklungsbedarf. Die Entwicklung wurde alle zwei Wochen auf häufige Veröffentlichungen umgestellt. Der Umfang nahm ab, aber sie begannen häufiger zu übersetzen, und wir mussten es schneller machen. Tatsächlich ist die Lokalisierung zu einem engen Entwicklungshals geworden. Und wenn die Projektmanager früher nicht einmal die Namen der Lokalisierer kannten - aber warum überhaupt nicht, weil die Übersetzungen auf magische Weise selbst erschienen -, war sich jetzt fast jeder der Probleme bewusst und wusste sogar, was Sprachtests sind :)

Quelldaten.

Das Timing


Der Lokalisierungszyklus dauerte 3 Wochen:

  • 3-5 Tage - Transfer;
  • 2 Wochen - Sprachtests.

Bei der Übersetzung ist alles klar, aber warum Sprachtests und worum geht es?

Das Hauptziel von Sprachtests ist es, die Übersetzung im Kontext zu überprüfen, dh wirklich zu lokalisieren. Die Übersetzer kannten unsere Terminologie, aber sie übersetzten den Text einfach und sahen nicht, dass es sich um eine Schaltfläche oder eine Überschrift handelte, welcher Text als nächstes kam.

Darüber hinaus können Sie mit Sprachtests Inkonsistenzen, Unterübersetzungen und nicht in Zeilen eingefügten Text (fest codierter Text) erkennen und rechtliche Risiken verringern (wenn beispielsweise Zahlungstexte nicht in das richtige Feld eingefügt werden). Sprachtests werden normalerweise mit Screenshots durchgeführt.

Bände


Es gibt einen Mythos, dass wenn die Anwendung mobil ist, sie klein ist und was gibt es zu übersetzen?
Ha ha. Einige Statistiken:

  • Texte in der Benutzeroberfläche - durchschnittlich 25.000 Wörter im Projekt;
  • 10 Bewerbungen;
  • durchschnittlich 19 Lokalisierungen in jedem Projekt;
  • Aktualisierung der Texte in der Benutzeroberfläche, wöchentliche Übersetzung der Dokumentation.

Warum konnte nicht beschleunigen?


Mal sehen, woraus jede der Lokalisierungsstufen bestand. Übersetzungsschritt (9 Schritte):

  1. manuell aus verschiedenen Brunchs aus VCS auswählen;
  2. manuell ein Übersetzungsdelta erstellen;
  3. Übersetzungspakete erstellen;
  4. auf FTP hochladen;
  5. Schreiben Sie eine Reihe von Briefen an Agenturen, Freiberufler und lokale Büros.
  6. Nach der Übertragung von FTP abholen, auf CAT hochladen, überprüfen;
  7. in VCS setzen - nicht in Brunchs verwirrt werden;
  8. Montage starten, Fehler beheben, Montage neu erstellen;
  9. Starten Sie zusätzliche Übersetzungen und Fehlerbehebungen in den Fällen, in denen der Übersetzungsprozess neu gestartet werden musste.

Probleme in der Übersetzungsphase: Kurz gesagt, es ist eine Einschränkung alter Prozesse und viel Routinearbeit bei der Verwendung alter CATs:

  • Die Sammlung von Zeilen aus mehreren Brunchs wird nicht unterstützt - das Delta für die Übersetzung aller Brunchs wurde manuell gebildet, und die Übersetzung wurde manuell in Brunchs angeordnet. Es war schwer zu pflegen, leicht zu verwirren und diesen Schrecken nicht zu vergessen.
  • Die Wahrung der Einheitlichkeit innerhalb des Projekts und in Sprachen im manuellen Modus war nicht möglich.
  • Sie können die parallele Übersetzung nicht parallel ausführen. Aktualisieren Sie die Quellressourcen während des Übersetzungsprozesses. Es war notwendig, zuerst das erste Übersetzungsbündel zu erhalten und erst danach eine zusätzliche Übersetzung zu starten.
  • Fälle von Montagefehlern aufgrund von Fehlern in Variablen, Apostrophen und anderen Lokalisierungsfehlern sind häufiger geworden.

Stufe der Sprachtests (19 Schritte):

  1. Führen Sie die Assembly aus und warten Sie darauf.
  2. , .
  3. , -.
  4. .
  5. 20+ .
  6. , .
  7. — .
  8. FTP.
  9. .
  10. .
  11. .
  12. .
  13. ( ).
  14. .
  15. ( , ).
  16. .
  17. FTP.
  18. .
  19. (, ) .

Probleme der Sprachtestphase: Manuelle Screenshots machten den Löwenanteil der Zeit aus. Wenn die Funktion ungefähr 40 Bildschirme und 20 Sprachen hat, kann sie bis zu 70 Stunden manuelle Screenshots erreichen ...

Außerdem gab es einen menschlichen Faktor.

Es ist eine Sache, diese Schritte alle drei Monate durchzuführen. Eine andere Sache ist, dies alles alle zwei Wochen zu wiederholen. Bei jeder neuen Iteration tauchten die Lokalisierer in den Sumpf der Routine ein - Senden-Akzeptieren-Entfernen-Wiederholen.

Wir mussten nach einer Lösung suchen, und das ziemlich schnell. Was waren die Lösungsoptionen? Es könnte sein:

  • mehr Studenten einstellen;
  • Reduzieren Sie die Anzahl der Lokalisierungsarbeiten (und damit die Qualität der Verschwendung).
  • Routineaufgaben automatisieren.

Wir haben uns für Letzteres entschieden.

Was wolltest du


Wir hatten nicht hundert Jahre Zeit, uns zu setzen, eine Tasse Kaffee einzuschenken, die Ärmel hochzukrempeln und innerhalb eines Jahres mit der Analyse des gesamten Marktes für Cloud-Lösungen zu beginnen. Wir suchten nach einer vorgefertigten Lösung, um morgen mit der Arbeit zu beginnen. Unser Ziel war es, das Problem zu lösen.

Welche anderen Anforderungen hatten wir:

  • Weniger Genehmigungen : Um nicht zu warten, bis der Kauf vereinbart ist, schreiben sie die Schlüssel aus und das ist alles.
  • Bereit Grundfunktion l: sich hinsetzen und loslegen. Was nicht von Grund auf neu geschrieben werden muss. Stabil. Der Rest kann auf dem Weg verdreht werden.
  • Es sind keine großen Serverkapazitäten erforderlich , um nicht in langwierigen Genehmigungen hängen zu bleiben.
  • Preiswerter (vorzugsweise kostenloser) Einstieg in den Dienst.
  • Es war kein interner Entwickler erforderlich, dh eine angemessene serverseitige Unterstützung und die Möglichkeit, diese selbst bereitzustellen.
  • Übereinstimmung des Dienstes mit den Anforderungen der internen Sicherheit : Wir stellen eine Verbindung zum Dienst her und nicht zu uns.
  • Unterstützung für die gleichzeitige Arbeit mit mehreren Brunchs : Übersetzung mehrerer Funktionen parallel.
  • Paralleler Start zusätzlicher Transfers .

Von den verschiedenen Optionen haben wir uns Zing (einen Übersetzungsdienst von Evernote-Entwicklern) am genauesten angesehen .

Von den Profis :
  • Anpassbarkeit für sich selbst;
  • kostenloses Installationspaket - es wurden nur Serverkapazitäten benötigt;
  • keine monatliche Gebühr;
  • Verbinden Ihrer Übersetzer;
  • privater Zugang (kann intern gehostet werden).

Nachteile : Um Übersetzer zu verbinden und ihnen den Zugang zu öffnen, mussten mindestens zwei Einheiten verbunden werden. Dies hat die Kosten des Dienstes in Bezug auf Zeit und Ressourcen stark erhöht. 


Was hast du gewählt?


Da wir das CAT-System nicht direkt mit dem internen Versionskontrollsystem verbinden können, benötigten wir einen anderen Anschluss. Sie können selbst schreiben oder eine vorhandene übernehmen. Also haben wir eine Reihe von Git - Serge - Smartcat getestet.

Von den Profis :

  • Unterstützung für die Arbeit mit mehreren Brunchs.
  • Aktualisieren Sie die Ressourcen im laufenden Betrieb.
  • Unabhängigkeit von CAT-Parsern (Schreiben von Konfigurationsdateien auf unserer Seite). Smartcat hinterlässt PO-Dateien.
  • Die Korrespondenz mit Freiberuflern ist praktisch „in einem Fenster“.
  • Es gibt eine Suche und Auswahl von Freiberuflern (direkte Kommunikation, Auswahl für die Bedürfnisse des Projekts - in unserem Fall ist die Geschwindigkeit und Qualität der Übersetzung wichtig).
  • Sie können für die Arbeit in allen Sprachen und Projekten auf einem Konto bezahlen.
  • Auf unsere Bitte hin haben sie die Priorität bei der Entwicklung neuer Funktionen erhöht: Einführung neuer Funktionen (Suche nach Text in allen Projektdateien usw.), Behebung einiger Probleme.
  • Quick TechSupport - Hilfe beim Einrichten.
  • Eigentlich freier Zugang zum Service (Abonnement ist optional).
  • Schecks.

Nachteile :

  • Es gab keine Textsuche innerhalb des gesamten Projekts (und möglicherweise befinden sich mehr als 1000 Dateien im Projekt). Die Entwickler von Smartcat haben diese Funktion jedoch Ende letzten Jahres eingeführt.
  • Sie können nicht mehrere Dokumente in einer Browserregisterkarte öffnen.
  • Ressourcendateien (Dokumente in Smartcat) in einer Sprache können bis zu 200 sein. Der Benutzer muss Korrekturen an den Übersetzungen vornehmen, nachdem er den Text in den Screenshots überprüft hat. Der Benutzer weiß nicht, in welchem ​​Dokument sich das Segment befindet. Daher muss der Benutzer alle 200 Dokumente öffnen und nach dieser Zeile suchen.
  • Bei Benachrichtigungen für Freiberufler besteht weiterhin ein Problem: Sie deaktivieren sie und erhalten keine Benachrichtigung über eine Dokumentaktualisierung. In diesem Fall schreiben wir noch im Chat.

Was tat und wie es wurde


Kurz - hat den Prozess der Arbeit mit Schnittstellentexten geändert :) Was hat getan:

  • Habe ein paar Git - Serge - Smartcat getestet.
  • Wir haben mit den Entwicklern die Brunch-Namensregeln für Autoren und Lokalisierer vereinbart (dies ist erforderlich, um die Korrespondenz mit den Entwicklern zu entfernen und die Regeln für den Locobot zu konfigurieren).
  • ( 25  — , 20+ ).
  • Smartcat, Serge.
  • .
  • Serge: ID , , .
  • cron, () .
  • - ().
  • , : , , .
  • Monorepo: Serge .
  • Unsere Entwickler haben ein Feature-Screenshot implementiert, das auf dem Kaspresso-Framework basiert . Dies ermöglichte es uns, nicht nur das Problem mit Autoscreenshots * zu lösen , sondern auch Kontext für Übersetzer zu schaffen. Daher wird für jede neue Zeile in der Datei ein Link zu einem Screenshot hinzugefügt, um zu verstehen, wo und wie diese neue Zeile verwendet wird. Wenn die Datei mit den neuen Zeilen zu Smartcat "fliegt", fallen Links zum Screenshot in das Feld "Kommentare zum Segment".

Wie die Lokalisierung jetzt aussieht (9 Schritte für alles):

  1. Der Autor schreibt neue Zeilen in Git fest. Zeichenfolgen werden automatisch verarbeitet und fliegen in Smartcat weg.
  2. Der Localizer ernennt Übersetzer (dieser Schritt wird bald erledigt sein, stimmt das, Leute von Smartcat?))))
  3. Übersetzer übersetzen nicht nur so, sondern mit Screenshots - also im Kontext.
  4. Lokalisierer überprüfen die Übersetzung (erstellen Sie eine vollständige Datei). Der Roboter nimmt die Übersetzung nicht zeilenweise zurück, sondern wenn die Arbeit an der gesamten Datei beendet ist. Die Übersetzung fliegt automatisch zurück und wird an Git gesendet.
  5. Lokalisierer führen Auto-Screenshots aus.
  6. Lokalisierer laden Screenshots auf FTP hoch.
  7. Lokalisierer beantworten die Fragen von Linguisten.
  8. Lokalisierer nehmen bei Bedarf Änderungen an Smartcat vor. Änderungen werden automatisch an Git übergeben.
  9. Lokalisierer schließen Pull-Anfrage.

Natürlich gibt es noch ein Feld für Automatisierung und Verbesserungen. Aber man spürt schon den Unterschied zu dem, was zuerst war.

Was ist Serge?


Dies ist eine Open Source-Lösung, eine Verbindung zwischen einem Versionskontrollsystem (SVN, Git, Gerrit (Git-basiertes Codeüberprüfungssystem), Mercurial) und TMS, in unserem Fall Smartcat.

Warum wir „angemeldet“ sind: Alle Cloud-TMS verfügen über einen sofort einsatzbereiten Connector. Solche Boxed Connectors stellen jedoch eine direkte Verbindung zum Repository her. Was in unserem Fall unmöglich ist. Wie lauten die Optionen:

  • einen Teil des Versionskontrollsystems offenlegen;
  • Klonen Sie Ordner mit Ressourcendateien für den öffentlichen Zugriff.
  • Empfangen und verarbeiten Sie Ressourcendateien, bevor Sie sie an TMS senden, und exportieren Sie sie dann an TMS.

Das Aufdecken eines Teils des Systems ist riskant.

Es ist möglich, einen Klon zu erstellen. Nur dies erfordert temporäre und personelle Ressourcen.

Serge kann nur Ressourcendateien empfangen und verarbeiten, bevor sie an TMS gesendet werden. Infolgedessen ist die Architektur wie folgt: Git - Serge - TMS.

Serge nimmt Dateien von Git und verarbeitet sie nach bestimmten Regeln. Anschließend werden sie in das PO-Format konvertiert und an Smartcat gesendet. Serge erhält die übersetzten PO-Dateien von Smartcat, konvertiert sie und schreibt sie in Git fest.

Das große Plus von Serge für uns ist auch, dass es in unserem Unternehmen eingesetzt wird. Somit bleibt die gesamte "Küche" hinter einer Steinmauer. Es kommt nichts Geheimnisvolles heraus :)

Hauptmerkmale:

  • Ordnen Sie das Sors-Ziel der Datei- und Ressourcenzeichenfolgen-ID zu.
  • Die Möglichkeit, Dateien nach Maske im Pfad oder nach Inhalt auszuwählen.
  • Verarbeiten des Inhalts von Ressourcendateien vor / nach dem Parsen.
  • Parser konfigurieren.

Sie können andere Funktionen von Serge auf der Website kennenlernen oder das Video ansehen .

Zusammenfassung


Das Wichtigste ist, dass wir in relativ kurzer Zeit, etwa drei Monaten, das Problem gelöst haben und nicht mehr eng sind.

Ergebnisse und Zahlen


BühneWie viele Stunden waren (2018)Wie viele Stunden sind geworden (Ende 2019)
Sammle Linien von allen Brunchs. Manuell10
Holen Sie sich nur neue oder geänderte Zeilen zur Iteration und laden Sie sie für 20 Sprachen in das alte CAT-Tool40,25
Erstellen Sie Übersetzungspakete. Wiederholen Sie dies für 20 Sprachen.0,50
Legen Sie Aufgaben für Agenturen / Übersetzer fest. 1 Sprache = 1 Agentur.20
Laden Sie Pakete mit FTP-Übersetzungen für jede Sprache herunter. Wiederholen Sie dies für 20 Sprachen.0,50
Schreiben Sie ab und erhalten Sie von der Agentur / dem Übersetzer eine Bestätigung, dass die Aufgabe übernommen wurde. Wiederholen Sie dies für 20 Sprachen.2-30
Beantworten Sie die Fragen des Übersetzers. Wiederholen Sie dies für 20 Sprachen.2-40,5
Akzeptieren Sie die Übersetzung für jede Sprache10,25
Führen Sie build aus<8 (Bearbeiten von Fehlern aus dem alten CAT-Tool)0,25
Zusätzliche Übersetzung (wiederholen Sie alle oben genannten)80,25
Screenshots machen16-32 (manuell von Ihnen)8 (automatischer Screenshot)
Auf FTP hochladen81
Chatten Sie mit der Agentur / Freiberuflern81
Ressourcen bearbeiten82
Gießen Sie Änderungen in Git80,25
Reine Zeit8414

Boni:

  • Baugruppen fallen nicht: Variablen, nicht übersetzbare Wörter werden in Platzhalter eingefügt, Apostrophe werden in der Phase der Parseranwendung maskiert.
  • Wir wählen keine Geräte von Testern aus.
  • Wir verschwenden keine Zeit mit Entwicklern und Testern, um die Baugruppe zu reparieren oder herauszufinden, wie der eine oder andere Screenshot erstellt werden soll.
  • Übersetzung im Kontext: Englische Screenshots befinden sich bereits in der Übersetzungsphase und sind EINFACH zu öffnen und anzuzeigen.
  • Smartcat ermöglicht es, nicht übersetzte Segmente in einen kritischen Fehler umzuwandeln - sie haben einige wichtige Zeilen aus dem alten CAT gefunden.

Darüber hinaus ermöglichte eine Reihe von Git-Serge-Smartcat die Übersetzung der Arbeit von UX-Autoren in Smartcat. Wie wir das gemacht haben, werden wir im nächsten Artikel erzählen :).

* Mehr zu Autoscreenshots: Unsere Kollegen haben Autotests geschrieben und Kaspresso erstellt, ein Framework für Autotests . Darauf wird der Auto-Screenshot erstellt, den wir bei der Lokalisierung verwenden. Als Nebenprodukt von Autotests.

All Articles