Anwendungslokalisierung: Wie wir Freunde für die Übersetzung und Entwicklung gewonnen haben


Hallo habr Ich bin ein führender Lokalisierungsentwickler bei Badoo. Wir arbeiten mit mehreren großen Projekten: Badoo, Bumble, Lumen und Chappy. Jetzt haben wir im Lokalisierungssystem 150.000 Phrasen und Texte, die in 52 Sprachen übersetzt wurden. Darüber hinaus hat jede unserer Anwendungen ihre eigene Zielgruppe, ihre eigenen Märkte, ihren eigenen Kommunikationsstil mit Benutzern, Versionen für das Web und für mobile Plattformen.


In diesem Artikel werde ich Ihnen erzählen, wie wir den Lokalisierungsprozess aufgebaut haben, wie wir die Qualitätskontrolle angehen, wie wir Übersetzungen je nach Plattform veröffentlichen und vor allem, wie wir dafür gesorgt haben, dass Entwickler gut über unser Übersetzungssystem sprechen. Dies ist ein sehr wichtiger Punkt: Mehr als 300 Entwickler arbeiten an Projekten, deren Arbeit bequem sein sollte. Entwickler sind keine Übersetzer und sollten nicht über Übersetzungen nachdenken.


Der Artikel basiert auf meinem Bericht auf der Highload ++ Konferenz im November.


Inhalt:


Das Mandat für den ganzen Kopf!
Merkmale des Übersetzungsprozesses
Wir bitten die Benutzer um Hilfe
Entwicklungsorganisation
Qualitätskontrolle der Lokalisierung
Veröffentlichungen, Versionen
Hauptsache. Zusammenfassung
Zusätzliche Materialien


Lassen Sie uns zunächst sehen, wie der Lokalisierungsprozess in unserem Unternehmen im Allgemeinen aussieht.



In diesem Diagramm habe ich nicht alle Nuancen berücksichtigt - sie werden für ein allgemeines Verständnis nicht benötigt. Das Fazit ist, dass wir mit dem Terms of Reference (TOR) beginnen. Als nächstes folgen die Client- und Serverentwicklung und parallel dazu der Übersetzungsprozess.


TK und die abschließende Release-Phase werden nicht umsonst einfarbig hervorgehoben. Dies ist ein Hinweis darauf, dass die Veröffentlichung dem Pflichtenheft entsprechen sollte. Kein anderer Weg. Wenn die TK nicht vollständig genug ist, ist den Entwicklern nicht klar, wer für was verantwortlich ist. Welcher von ihnen sollte den Text integrieren: Das „Mobiltelefon“ sollte ihn in die mobile Anwendung „nähen“, oder die Serverentwickler sollten ihn vom Server als Antwort auf die Anforderung senden.


Beschäftigen wir uns mit all dem. Aber zuerst möchte ich einen Begriff vorstellen und erklären.


Ein Token ist ein unteilbarer Text, der übersetzt werden muss. Dies kann eine Schaltflächenüberschrift, eine Überschrift oder ein ganzer Absatz sein.

Jetzt können wir mit dem Hauptmaterial weitermachen!


Technische Aufgabe


Die erste Stufe unseres Prozesses ist die Erstellung der richtigen technischen Spezifikationen. Das Hauptelement in Bezug auf die Lokalisierung ist die Tokentabelle. In der Tat ist dies eine Liste von Texten, die in der Anwendung oder auf der Website verwendet werden sollten.



Die Tokentabelle gibt an, ob der Text vom Server bereitgestellt oder in die Anwendung integriert wird. Der Schlüssel muss angegeben werden: Wenn der Text zuvor verwendet wurde, ist der Schlüssel in dieser Tabelle vorhanden. Wenn der Text an keiner Stelle verwendet wurde, wird die Seriennummer des Texts angezeigt, und der Entwickler kann einen passenden Schlüssel festlegen.


Das Wiederverwenden von Text ist ein sehr heimtückischer Moment. Zum einen wird der Lokalisierungsprozess beschleunigt, zum anderen kommt man in eine lustige Situation.


Ich werde mit einem Beispiel erklären. Einmal hatten wir eine Frage "Rauchen Sie?" Mit den Antwortoptionen "Ja" und "Nein". Hier sehen wir drei Token: zwei für Antworten und einen für die Frage. Die Frage wurde ins Russische übersetzt als "Rauchen Sie?", Die Antworten sind "Ich rauche" und "Ich rauche nicht". Dann beschlossen wir, eine weitere Umfrage durchzuführen und die Antwortoptionen erneut zu verwenden. Auf Englisch sah alles richtig aus: „Lust auf eine Party?“ - „Ja“ / „Nein“. Auf Russisch stellte sich aufgrund der Wiederverwendung von Token der folgende „Dialog“ heraus: „Gehst du zur Party?“ - „Ich rauche“ / „Ich rauche nicht“.


Wenn wir nun die Aufgabenbeschreibung kompilieren und über die Wiederverwendung des Texts entscheiden, berücksichtigen wir, in welchen Kontexten sie zuvor verwendet wurde. Wir geben auch an, ob das Token vom Server ausgegeben oder in den Client integriert und über den App Store oder Google Play an Kunden geliefert wird.


Diese Techniken helfen, Zeit zu sparen, da sie eine spätere Diskussion ausschließen.


Übersetzungen


Der nächste Schritt ist die Übersetzung. Und das Wichtigste dabei ist, den ursprünglichen Gedanken nicht zu verlieren. Und das passiert oft, weil alle Sprachen unterschiedlich sind, mit ihren eigenen Schattierungen und Wendungen. Manchmal passt die genaueste Übersetzung einfach nicht auf den Bildschirm und die Übersetzer müssen einen Kompromiss finden.


Ich erkläre Ihnen, wie wir mit dem Übersetzen beginnen, wie wir den Kontext zu den Übersetzern bringen, einen gemeinsamen Stil beibehalten und das Ergebnis überprüfen.


Übersetzungsauftrag


Es gibt Ordnung, wo es Regeln gibt (und alle folgen ihnen). Daher haben wir eine Verordnung über die Reihenfolge der Übersetzung.


Zunächst wählen wir eine Sprache, die von den meisten Übersetzern verstanden wird. Darauf aufbauend bereiten wir die Ausgangstexte vor, damit sie später problemlos in andere Sprachen übersetzt werden können. Alle Sprachen, in die wir übersetzen (und wir haben 52 davon), sind in Haupt- (Eltern-) und Dialekte unterteilt. Die Sprache, in der die Texte erstellt werden, ist Englisch (wir nennen es Master). Außerdem übersetzen wir aus dem Englischen in andere Sprachen: Spanisch, Französisch, Russisch und andere. Manchmal muss die Übersetzung für einen der Dialekte geklärt werden - dann übersetzen wir in mexikanisches Spanisch oder australisches Englisch. Wenn wir dies jedoch nicht benötigen, verwenden wir die Übersetzung in die übergeordnete Sprache: Grundkenntnisse in Spanisch oder Grundkenntnisse in Englisch.


Ein Beispiel. Nehmen wir an, wir müssen die Begrüßung formeller gestalten. Anfangs gab es "Hey" auf Englisch, "Hola" auf Spanisch, "Salut" auf Französisch, "Hello" auf Russisch, "G'day mate" auf Australisch und "Que onda" auf Mexikanisch ("Like a wave") ? ”; Mexikaner sind cool!). Wenn wir den Text ändern wollen, um ihn offizieller zu machen, müssen wir den Originaltext auf Englisch ändern. Zu diesem Zeitpunkt werden Übersetzungen in andere Sprachen falsch: Sie müssen überprüft und geklärt werden. Wir machen die Übersetzer darauf aufmerksam.


Auswirkung auf den Kontext


Ein wichtiger Punkt ist der Kontext, in dem die Übersetzung existiert.


Ich werde mit Beispielen erklären.


Ich stelle sofort fest, dass es sich bei einigen Beispielen um Screenshots bekannter Ressourcen handelt, deren Namen für uns jedoch keine Rolle spielen. Wir betrachten lediglich die häufigsten Arten von Fehlern bei der Lokalisierung.

Dies ist ein Schild mit einer Tankstelle: "Bevor Sie mit der Bewegung beginnen, vergewissern Sie sich, dass sich keine Waffe im Tank befindet." Das Wort "gun" wurde wörtlich übersetzt ins Englische: "gun". Aber eine Waffe für einen Amerikaner ist eine Waffe. In diesem Zusammenhang klingt die Aufforderung, die Waffe aus dem Panzer zu holen, ziemlich seltsam.


Im folgenden Beispiel haben die Ersteller der Anwendung beschlossen, eine universelle Version des Texts für Männer und Frauen zu erstellen. Dies hat offenbar einen gewissen Nutzen für sie. Das Gefühl ist, dass Texte und Bilder einfach auf einem Bildschirm gesammelt werden: Was auf dem Spiel steht, ist unklar.



Das nächste Beispiel handelt davon, wie der ursprüngliche Gedanke an den Text infolge der Übersetzung verloren gegangen ist. Schauen Sie sich die russische Version rechts an: Es wird uns angeboten, mit uns selbst zu kommunizieren. Es wurde zwar verstanden, dass sie uns die Möglichkeit geben, unseren Instagram-Account zu verlinken.



Solche Fehler treten auf, wenn die Übersetzung außerhalb des Kontexts erfolgt. Daher wird für jedes Token in unserem Lokalisierungssystem Folgendes angezeigt:


  • Textbeschreibung;
  • ein Bild, das zeigt, welche Elemente sich neben dem Text auf dem Bildschirm befinden;
  • eine Notiz darüber, ob der Text Männern oder Frauen gezeigt wird, damit die Übersetzer feststellen können, ob zwei verschiedene Übersetzungen benötigt werden oder nur eine;
  • Arten von Variablen (dies ist ein sehr wichtiger Punkt, und ich werde Ihnen mehr darüber erzählen, wenn wir den Entwicklungsprozess analysieren);
  • Maximale Textlänge: Dies ist sehr wichtig für Push-Benachrichtigungen, da die Bildschirmbreite eines Mobilgeräts nicht unbegrenzt ist.
    Außerdem werden wir den großen Text definitiv in Teile zerlegen. Dies ist praktisch, wenn Sie dann suchen oder Änderungen vornehmen müssen.

Lassen Sie uns diesen Moment genauer analysieren. Als wir den Text gebrochen haben, haben wir die Verbindung zwischen einzelnen Sätzen und Phrasen verloren. Deshalb müssen wir den Übersetzern zeigen, was vor und nach diesem Text passiert ist. Dies ist beispielsweise bei juristischen Dokumenten relevant - damit diese korrekt übersetzt werden.


Wir markieren auch lokale Begriffe, umgangssprachliche Wörter in Tokens. Im Fall des Satzes "Entsperren Sie Ihre Likes-Liste, um alle Interessierten auf einmal zu sehen" muss der Übersetzer beispielsweise wissen, dass Likes in diesem Fall ein spezielles Anwendungsverzeichnis ist, das Kontakte von Benutzern enthält, denen das Profil gefällt. Ein weiteres ähnliches Beispiel ist der Begriff „Geschichten“. Vor zehn Jahren hat sich noch niemand beim Wort „Geschichte“ Instagram vorgestellt. Jetzt ist es in erster Linie mit ihm verbunden.


Daher haben wir sichergestellt, dass die Übersetzungsoption stark vom Kontext abhängt, und zwar von den folgenden Faktoren:


  • Benutzer Geschlecht
  • die numerische Variable, die im Text erscheint: "Sie haben nur einen Freund" und "Sie haben bereits zehn Freunde";
  • Plattformen: Web, Android, iOS;
  • das Projekt, für das die Übersetzung durchgeführt wird.

Wenden wir uns dem letzten Punkt zu - der Abhängigkeit der Übersetzung vom Projekt. Dies ist wichtig, da jedes Projekt seinen eigenen Stil hat.

Dies sind die Kopfzeilen von Briefen, die an den Benutzer gesendet werden, wenn sein Konto gesperrt wurde.


Für Badoo: "Ihr Konto ist gesperrt."
Für Lumen: "Ihr Konto ist gesperrt."
Für Hummel: "Sie wurden blockiert."
Und für Chappy - "Aw!"


Um einen einheitlichen Stil in jedem Projekt beizubehalten, müssen Sie den Übersetzern Zugriff auf den Übersetzungsverlauf gewähren. Wir haben ein Tool namens Translation Memory (TM). Der Übersetzer hat immer Zugriff auf Informationen über Übereinstimmungen und den Ähnlichkeitsgrad: Er kann entweder die alte Übersetzung verwenden oder eine neue eingeben. Wir zeigen Übersetzern nicht nur 100% Übereinstimmungen, sondern auch weniger ähnliche Optionen, und wir werden die Unterschiede auf jeden Fall hervorheben.

Neben der Tatsache, dass das „Translation Memory“ es Ihnen ermöglicht, den Stil im Rahmen des Projekts beizubehalten, hilft es auch, den Prozess zu beschleunigen, da der Übersetzer nicht zweimal dasselbe eingeben muss.


Fälle und Zahlen


Wir haben ein Tool namens Case Matrix. Dies ist wie eine Multiplikationstabelle, nur für Fälle und Zahlen.


Übersetzer füllen diese Matrix nach Bedarf für verschiedene Wörter in jeder Sprache aus. Das Ausfüllen in einem Schritt ist unrealistisch, daher geschieht dies schrittweise: Es wurde ein Wort daraus gemacht.


Infolgedessen hilft die Matrix, diese Fehler zu vermeiden:



Der Vorteil des Werkzeugs besteht darin, dass die gewünschte Form unmittelbar vor dem Rendern ausgewählt wird, bevor sie dem Benutzer angezeigt wird. Das geht so:



Zum Beispiel haben wir eine Übersetzung ins Russische. "Credits" in der Mitte ist eine Kennung, eine Verknüpfung zu einer Fallmatrix. Der "Credits-Betrag" auf der linken Seite ist die Nummer, die vom Entwickler kommt. Und @ 3 ist der vom Übersetzer angegebene Fall (in diesem Fall der Akkusativ).


"Sie benötigen 10 Credits": Die Phrase "10 Credits" wird automatisch ersetzt.


Übersetzungs-Check


Wenn wir 150.000 Phrasen und Texte in 52 Sprachen multiplizieren, erhalten wir eine Zahl in der Größenordnung von 7,5 Millionen. Natürlich ist es unrealistisch, all dies manuell zu überprüfen. Aus diesem Grund haben wir die Übersetzungen beim Speichern automatisch überprüft.


Wir suchen automatisch nach Funktionen wie fehlendem Emoji oder fehlenden Variablen. Wenn der Übersetzer versehentlich eine Variable gelöscht hat, verliert die Phrase ihre Struktur und Bedeutung. Vergleiche: "Du brauchst 10 Credits" und "Du brauchst Credits" - die zweite Phrase ist verdorben, der Gedanke ist verloren.


Wir prüfen auch das fehlende HTML, sonst geht das Layout.


Und wir warnen den Übersetzer immer davor, dass seine Übersetzung länger ist als das Original. Zu diesem Zeitpunkt muss er prüfen, ob er geeignet ist, ob der Text auf den Bildschirm passt.


Wir heben die wichtigsten Punkte hervor:


  • übersetzer brauchen ein verständnis des kontexts;
  • Das Übersetzungssystem sollte so flexibel sein, dass für jede Sprache eine passende Übersetzung angefertigt werden kann, damit der Übersetzer keine universellen Formulierungen wählt. Unterstützung für Deklinationen und Fälle ist notwendig;
  • Stellen Sie sicher, dass die Übersetzungen automatisch überprüft werden.

Benutzerhilfe


Neben der Arbeit von professionellen Übersetzern bedienen wir uns der Hilfe der Benutzer. Hier gibt es zwei Methoden: A / B-Tests und gemeinsame Übersetzungen.


A / B-Test


Sie benötigen also eine Übersetzung, zum Beispiel ins Russische. Der Übersetzer hat eine Phrase auf zwei verschiedene Arten übersetzt, und Sie wissen nicht, welche Option Sie wählen sollen. In diesem Fall können Sie einen A / B-Test durchführen: Zeigen Sie den Benutzern verschiedene Optionen an und wählen Sie je nach Reaktion eine aus.


Wir hatten die Wahl zwischen zwei Möglichkeiten: „Bereit für neue Bekanntschaften? Mach mit! "Und" Noch ein paar Schritte ... und du wirst Teil von Badoo. " Als Ergebnis von Tests haben wir festgestellt, dass mehr Benutzer die Registrierung abgeschlossen haben, als sie die zweite Option der Push-Benachrichtigung sahen. Wir haben ihn verlassen.


Im Folgenden finden Sie eine vollständige Übersicht der Faktoren, von denen die Übersetzungsoption abhängt. Das fünfte Element ist nur ein A / B-Test: Fällt der Benutzer in eine Gruppe, wird ihm die entsprechende Textversion angezeigt.



Gemeinsame Übersetzung


Sobald wir Benutzern aus Mexiko eine Benachrichtigung gesendet haben, in der sie gebeten werden, einige Texte gegen eine geringe Gebühr in Form von Darlehen - der internen Währung der Anwendung - in ihre Sprache zu übersetzen. Und sie waren sich einig: In nur zwei Tagen wurden 5.000 Token für uns übersetzt. Das ist eine große Hilfe, und die Mexikaner sind großartige Jungs!


Was ist interessant und warum ist dieser Ansatz wichtig? Wenn Sie keinen lokalen Dialektübersetzer haben, erlauben Sie den Benutzern, diese Arbeit zu erledigen. Wie sich herausstellte, sind sie wirklich bereit, an der Entwicklung eines Projekts mitzuwirken, das ihnen gefällt.


Wir haben eine kollaborative Übersetzungsplattform . Sie können sich mit Ihrem Badoo-Konto anmelden. Und für die beste Übersetzung stimmen.



Dies ist ein Screenshot des deutschen Übersetzungsfensters. Der Benutzer kann seine eigene Version hinzufügen. Wenn eine der Optionen eine Mindeststimmzahl erreicht, wird sie unserem Vollzeitübersetzer angezeigt und kann als Hauptoption verwendet werden (vorausgesetzt, sie entspricht dem Stil, den Regeln des Projekts, beleidigt niemanden usw.).


Haben Sie keine Angst, Benutzer um Hilfe zu bitten. Sie werden auffordern und helfen.


Entwicklung


Wir gehen zu den interessantesten über - zum Entwicklungsprozess. Ich habe speziell zuerst über den Übersetzungsprozess gesprochen, häufige Probleme beschrieben und dann gezeigt, wie die Entwickler diese Probleme lösen.


Es gibt zwei Hauptschwierigkeiten: das Organisieren der parallelen Entwicklung und das Verfolgen von Fehlern bei der Verwendung von Token, damit die richtigen Übersetzungen zum richtigen Zeitpunkt angezeigt werden.


Parallele Entwicklung


Ich werde mit der Geschichte beginnen. Bisher sah unser Entwicklungsschema anders aus. Der Quellcode wurde in einer Datei im Repository gespeichert. Zwei Entwickler konnten etwas parallel ändern, und dann mussten diese Änderungen kombiniert werden. Das Problem ist klein, aber unpraktisch.

Das alte Schema, in dem Änderungen kombiniert werden mussten


Jetzt ändern und fügen wir Token zentral im Lokalisierungssystem hinzu. Entwickler müssen nur eine Reihe von Token herunterladen, bevor sie mit der Arbeit an der Aufgabe beginnen und diese verwenden. Der Schlüssel wird angezeigt, Sie haben den Code geschrieben, Sie verwenden ihn - alles, woran Sie nichts anderes denken.


Fehler beim Verwenden von Tokens


Es gibt viele Variablen in Übersetzungen.

Wenn Sie es eilig haben, können Sie „credit_amount“ und „credit“ leicht verwechseln. Um dies zu vermeiden, haben wir control eingeführt - einen Textcontainer, eine Art Abstraktion über die Übersetzung, der weiß, welche Art von Variablen in dieser Übersetzung verwendet werden. Es führt die Substitution durch und überprüft, ob die übergebenen Werttypen für die Substitution den Erwartungen entsprechen. Wenn alle Ersetzungen vorgenommen wurden, wird eine Zeile zurückgegeben, die dem Benutzer bereits angezeigt werden kann. Andernfalls wird derselbe Container zurückgegeben. Wenn wir versuchen, dem Benutzer eine Übersetzung anzuzeigen, bevor wir alle Ersetzungen abgeschlossen haben, wird in den Protokollen eine Warnung angezeigt, und wir wissen, wohin wir gehen müssen und wie wir die Situation korrigieren können.


Highlights in der Entwicklung:


  • Entwickler sollten sich nur mit ihrer Arbeit befassen - sie sollten nicht an Lokalisierung, Änderung von Texten usw. denken;
  • Sie müssen überprüfen, was die Entwickler getan haben, und diese Überprüfung ist auch besser zu automatisieren - dies schont die Nervenzellen aller Teilnehmer an dem Prozess.

Qualitätskontrolle


Wir haben also bereits ein entwickeltes Produkt, das wir übersetzt haben. Es bleibt zu prüfen, wie gut wir es geschafft haben.


Beginnen wir mit den Beispielen. Wie viele Pfosten in diesem Screenshot?



Ich habe zwei hervorgehoben. Oben - der Übersetzer wusste anscheinend nicht, dass vor seiner Phrase eine Distanz angezeigt wird. Unten - Die Breite des Bildschirms, auf dem die Übersetzung angezeigt wird, wird nicht berücksichtigt.


Das zweite Beispiel betrifft auch zu lange Übersetzungen, die nicht der Breite des Bildschirms entsprechen - hier wird einfach alles beschnitten, die Beschriftung passt nicht auf den Button.



Im folgenden Beispiel wird uns nicht nur Text in verschiedenen Sprachen angezeigt, sondern auch angeboten, den Schmerz zu kennen.



Um solche Fehler am Produkt zu vermeiden, ist lediglich eine Qualitätskontrolle erforderlich.


Steuerungsoptionen


Mal sehen, welche Steuerungsoptionen es gibt.


Das erste, was mir einfällt, ist, die Übersetzung einer Testversion der Site oder Anwendung zu überprüfen. Beginnen Sie einfach und prüfen Sie, ob das, was passiert ist, mit dem Design, der Idee, den technischen Spezifikationen usw. übereinstimmt. Mit dieser Methode haben wir diesen Fehler in der Push-Benachrichtigung abgefangen:



Anwendungs-Screenshots


Die nächste Methode der Qualitätskontrolle richtet sich nach den Screenshots der Anwendung.


Wir haben ein spezielles Tool entwickelt, das in einer Testumgebung Screenshots aller Bildschirme mobiler Anwendungen in allen Sprachen erstellt. Sie können sehen, wie sie im Browser aussehen. Es gibt auch einen speziellen Modus, in den gewechselt wird und in dem die Bezeichner des angezeigten Texts angezeigt werden. Dies ist beim Debuggen sehr hilfreich: Sie können schnell herausfinden, um welches Token es sich handelt und warum es dort angekommen ist (möglicherweise haben wir den Code geerbt, durch den dieses Token ersetzt wurde).


Wenn Sie eine Webversion haben und nur Bilder von irgendwoher benötigen, können Sie Token-Markierungen in den Quelltext integrieren, ein Plug-in für Google Chrome schreiben - und von Testmaschinen aus über deren Browser Screenshots von Seiten an Ihr Lokalisierungssystem senden auf denen er Token entdeckte.


<ul> <li>...</li> <li> <!--lexeme_12345-->  <!--lexeme_12345_end--> </li> <li>...</li> </ul> 

Wir haben diese Methode schon länger angewendet. In nur zwei Wochen durfte er eine Vielzahl von Bildern sammeln. Aber wir haben es abgelehnt, weil man damit nur Bilder der bereits veröffentlichten Version bekommen kann, und wir haben gelernt, wie man Bilder und Design in der Phase der Gründung von TK bekommt.


Kontrolle während der Übersetzung


Wie ich bereits sagte, schien es uns nicht genug zu sein, Bilder zu machen, wenn es bereits eine fertige Bewerbung gibt. Wir haben uns entschlossen, Screenshots zu machen, wenn die Anwendung noch nicht fertig ist, wenn noch nichts vorhanden ist und es notwendig ist, die Qualität irgendwie zu kontrollieren, um zu verstehen, ob alles so läuft, wie es sollte.


So haben wir während der Übersetzung ein Kontrollwerkzeug bekommen.

Ich werde das Prinzip seiner Arbeit erklären. Unsere Designer verwenden Sketch, eine Anwendung, in der sie Schnittstellen erstellen, einschließlich mobiler Anwendungsschnittstellen. Wir haben gelernt, wie man Texte in Sketch-Dateien ersetzt und Screenshots des Bildschirms erstellt, den wir mithilfe der Sketch-Software-Oberfläche benötigen. Jetzt, während der Arbeit des Übersetzers, können wir ihm sofort Screenshots von Bildschirmen in seiner Sprache zeigen. Und das schon, bevor die Entwickler damit begannen, die erste Version der neuen Funktionalität zu erstellen.


Später haben wir diese Lösung als Open Source ( Artikel , Code ) konzipiert.


Übersetzungsaudit


Wenn es nicht möglich ist, die Übersetzung in einer bestimmten Sprache zu überprüfen, z. B. auf Japanisch, können Sie eine selektive Prüfung anordnen. Das heißt, ein Drittunternehmen kann die Übersetzung jedes hundertsten Tokens mit einem Bild anzeigen und fragen, ob alles korrekt ist.


Highlights in der Qualitätskontrolle:


Eine visuelle Beurteilung der Übersetzungsqualität ist erforderlich.
Während des Testprozesses ist es wichtig zu verstehen, welche Geräte Ihre Zielgruppe verwendet, und die Anwendung auf all diesen Geräten zu testen.


Erscheinungsdatum


Also haben wir die Funktionalität von coolen Texten getestet. Es bleibt den Nutzern zu liefern.


Versionierungstoken


In unserer Badoo-Anwendung gab es einen Super Power-Dienst. Irgendwann mussten wir seinen Namen in "Badoo Premium" ändern, und in allen Versionen war er sofort atomar, sodass der Benutzer auf einem Bildschirm nicht "Super Strength" und auf dem anderen "Badoo Premium" sehen konnte.


Zu diesem Zweck haben wir jedem Task-Zweig in Jira eine Token-Version angehängt. Wenn wir Änderungen aus einem Zweig in eine neue Version eines Projekts aufnehmen, wird die neue Version von Token sofort abgerufen. Wenn Sie einen Rollback durchführen müssen, entfernen wir den Task-Zweig aus der neuen Version und zusammen mit ihm die Version der Token mit Übersetzungen in alle Sprachen.


Wenn ein Token getestet wurde oder wenn Benutzer es bereits sehen, müssen Sie sehr vorsichtig sein: Es ist besser, nichts daran zu ändern, sondern eine neue Version zu erstellen, diese an das Ticket anzuhängen und mit der neuen Version die neue Version des Tokens mit neuen Übersetzungen bereitzustellen.


Versionierung der Übersetzung


Sie können jedoch Fehler bei der Übersetzung machen. Im folgenden Beispiel gibt es zwei davon.


Falsch: "Es ist ein Remath."
Richtig: "Es ist ein Rückkampf."


Auf Englisch können Sie den direkten Apostroph nicht verwenden. Der Buchstabe "c" fehlt ebenfalls.


Versionierungstoken und Versionierungsübersetzungen sind zwei verschiedene Dinge. Die Übersetzung kann jederzeit korrigiert werden: während der Entwicklung der Aufgabe, während der Testphase oder auch wenn dem Benutzer die Funktionalität bereits zur Verfügung gestellt wurde (nichts Schlimmes passiert, wenn Benutzer die korrigierte Übersetzung in der neuen Version der Anwendung sehen).


Server! = Smartphone


Die Bereitstellung von Updates für verschiedene Plattformen erfolgt auf unterschiedliche Weise. Wenn Sie eine mobile Anwendung entwickeln, verfügen Sie auf jeden Fall über die Server- und Client-Komponenten.


Was Sie dem Benutzer zeigen, stammt entweder teilweise vom Server oder befindet sich auf seinem Smartphone (z. B. integrierte Übersetzung).

Der Pfad, über den die Übertragung vom Server zum Benutzer erfolgt, führt über unseren Produktionsserver, auf dem Sie auf einfache Weise aktualisierte Versionen von Dateien mit Übersetzungen bereitstellen können.


Der Weg der integrierten Übersetzung ist jedoch lang: Er führt über den App Store oder Google Play. Der Benutzer lädt das Update herunter und sieht erst danach den Fix. Dieser Prozess schien uns zu langsam zu sein, und wir haben einen eigenen Update-Mechanismus für „Hot-Updates“ entwickelt. Damit können Sie auf Knopfdruck eine neue Version von Übersetzungen erstellen und allen Kunden auf der Welt klar machen, dass es etwas Neues gibt, das heruntergeladen und verwendet werden muss.

Wenn die Anwendung auf einem mobilen Gerät gestartet wird, sendet sie eine Startbenachrichtigung an den Server und meldet die aktuelle Version der Übersetzungen. Wenn das Lokalisierungssystem ein fertiges Update hat, wird eine Benachrichtigung als Antwort ausgegeben. Der Client lädt das Update herunter und wendet es an.


Der Benutzer sieht neue Übersetzungen, wenn er zum nächsten Bildschirm wechselt. Zwei unserer Artikel befassen sich mit der Implementierung dieser Lösung: einer und zwei .


Release: Höhepunkte


Bei der Freigabe müssen Sie berücksichtigen, welchen Pfad die Anwendung von Ihnen zu Ihren Kunden führt. Möglicherweise werden verschiedene Teile Ihrer Anwendung unterschiedlich aktualisiert.


Abschließende Schlussfolgerungen


Kehren wir zu dem Schema zurück, das ich am Anfang des Artikels zitiert habe.

Was Sie beachten sollten, wenn Sie ein Übersetzungssystem entwickeln:


  • detaillierte Leistungsbeschreibung schreiben;
  • den Kontext berücksichtigen und den Übersetzern den Zugang dazu ermöglichen;
  • Führen Sie eine Übersetzungshistorie, um einen einheitlichen Stil innerhalb des Projekts beizubehalten.
  • Automatisieren Sie die Steuerung (ansonsten kann jeder zufällige Übersetzer, der sich in mehreren Zeitzonen von Ihnen befindet, alles auf seine eigene Weise erledigen).
  • Befreien Sie Entwickler von der Lösung von nicht zum Kern gehörenden Aufgaben. Sie erstellen neue Versionen Ihres Produkts, es bereitet Ihren Benutzern Freude und stellt das von Ihnen erstellte Projekt zufrieden.

Materialien, die ich mit Ihnen teilen möchte


Schnelles Aktualisieren von Zeichenfolgen in Mobilanwendungen: Teil 1


Aktualisieren Sie Zeichenfolgen in mobilen Anwendungen: Teil 2


So bringen Sie einer Webanwendung das Sprechen von 100 Sprachen bei: Lokalisierungsfunktionen


Wir übersetzen Schnittstellen in fünfzig Sprachen. Skizze


Github Sketch-Modifier

Source: https://habr.com/ru/post/de485138/


All Articles