Mehrsprachiges Badoo: „Übersetzungsschwierigkeiten“



    Eine gute Lokalisierung, dh die Anpassung der Anwendung für Benutzer aus verschiedenen Ländern, wird es ihm ermöglichen, die Herzen seines Publikums zu gewinnen. Das Böse wird im Gegenteil zu einem echten Schmerz. Einer der Navigatoren in Google Play schlägt beispielsweise vor, dass "Sie keine kommerzielle Karte gekauft haben, aber keine Aktualisierung durchgeführt haben" und dass "auf einigen Geräten Sie aufgefordert werden, den Installationsordner auszuwählen".

    Der Zweck der Lokalisierung besteht nicht darin, die Anwendung einfach in anderen Sprachen zugänglich zu machen, sondern jedem Benutzer das Gefühl zu geben, dass sie unter Berücksichtigung der Besonderheiten seiner Muttersprache entwickelt wurde.

    In diesem Artikel werden wir kurz auf die Aspekte der Lokalisierung eingehen, die zuerst beachtet werden müssen, und die Erfahrungen teilen, die wir bei der Übersetzung von Badoo in 46 Sprachen gesammelt haben. Dies ist ein sehr umfangreiches Thema, und wir werden weiterhin detailliert beschreiben, wie wir diese oder jene Tools implementiert haben. Am Ende des Artikels können Sie abstimmen und den Aspekt auswählen, über den Sie zuerst lernen möchten.

    Einleitung


    Die Unterstützung mehrerer Sprachstandards ist eine komplexe, mehrstufige Aufgabe, die mit der Anpassung Ihres Anwendungscodes beginnt. Fast jeder Text, der an den Benutzer übermittelt wird (sofern es sich nicht um eine technische Komponente handelt), muss möglicherweise für einige Sprachen geändert werden.

    Es gibt viele Lösungen, mit denen Sie den übersetzten Text vom nicht übersetzbaren trennen und ein Übersetzungssystem ohne schwerwiegende Mängel organisieren können. Wir verwenden keine vorgefertigten Lösungen, sondern haben uns dazu entschlossen, ein eigenes System zu bauen und zu entwickeln, unabhängig auf alle Rechen zu treten und Fahrräder zu erfinden. Unser System erwies sich jedoch als wirklich flexibel und für uns in allen Belangen geeignet. Beginnen wir mit der Terminologie und den allgemeinen Prinzipien der Arbeit.

    Ein Schlüsselelement des Übersetzungssystems sind bestimmte Textteile, die kompakt genug sind, um bequem zu arbeiten, aber groß genug, um die logische Integrität aufrechtzuerhalten. Wir nennen solche Fragmente Token . Betrachten Sie zum Beispiel den Badoo Messenger. Dies ist ein gutes Beispiel: Solche Schnittstellen sind sowohl in mobilen als auch in Webanwendungen ausreichend.


    Achten Sie auf einige wichtige Punkte, die in diesem Screenshot deutlich sichtbar sind. Es gibt verschiedene Token:
    • diejenigen, die wiederholt verwendet werden können ("Suche", "Ungelesen", "Anonymer Chat");
    • mit Variablen („Profil und 16 Fotos anzeigen“);
    • je nach Etage ("Mach den ersten Schritt, schreib ihm!");
    • abhängig von numerischen Parametern und mit Deklination ("2370 Mädchen sehen Sie hier").

    Häufig verwendete Token wie "Suche", "Ungelesen", "Mädchen" usw. Badoo ist vom Rest getrennt und kann in verschiedenen Subsystemen unserer großen und vielseitigen Architektur wiederverwendet werden, einschließlich Einzelübersetzungen für Mobil- und Webanwendungen. Hauptvorteile dieses Ansatzes:
    • Reduzierung des Arbeitsaufwands für Übersetzer;
    • einheitlicher Textstil;
    • die Möglichkeit der zusätzlichen Bearbeitung von Token (Änderung je nach Anzahl und Deklination).

    Mit Token, die Variablen enthalten ("Profil und {{number}} photos"), ist alles ganz einfach: Sie müssen nur daran denken, die Daten einzugeben.

    Mit der Abhängigkeit von der Anzahl und der Deklination ist alles viel komplizierter ("{{number}} girls will you here"), wir werden dieses Thema in einem separaten Abschnitt diskutieren.

    Das Vorbereiten und Anzeigen von Übersetzungen kann die Systemleistung erheblich beeinträchtigen, insbesondere wenn dies mehr als 20.000 Mal pro Sekunde durchgeführt werden muss (die Spitzenlast in Badoo kann höher sein).

    Schauen wir uns nun genauer an, worauf Sie achten sollten.

    Dialekte und mehrstufige "Faylover"


    Einige Sprachen haben Dialekte. Beispielsweise ist Englisch britisch und amerikanisch und Spanisch ist kolumbianisch, argentinisch und mexikanisch. Und selbst wenn die Übersetzungen zu 99% identisch sind, könnte sich herausstellen, dass derselbe Satz auf ihnen völlig anders klingen sollte. Wenn Sie diese kleine Nuance ignorieren, kann es zu einer großen Verlegenheit kommen. Zum Beispiel bedeutet Rapariga auf Portugiesisch "Mädchen", aber in Brasilien wird dieses Wort im Sinne von "Nachtfalter" verwendet. Für den brasilianischen Dialekt wird das Wort garota verwendet, was in Portugal nicht gilt, weil es "kleines Mädchen" bedeutet.

    Bei Badoo haben wir Sprachen in Form eines Baumes gebaut. Das Wurzelelement ist „Universal English“. Andere Sprachen (einschließlich britisches und amerikanisches Englisch) gehen davon aus, von denen einige wiederum Dialekte haben.

    Übersetzer arbeiten von oben nach unten: Zuerst wird universelles Englisch übersetzt, dann Sprachen der zweiten Ebene und erst dann deren Dialekte. Das heißt, die Übersetzung ins Spanische erfolgt aus dem universellen Englisch und ins Mexikanische aus dem Spanischen.

    Wenn dem Benutzer Übersetzungen angezeigt werden, erfolgt die Suche von unten nach oben. Beispielsweise wird für die mexikanische Sprache zuerst die mexikanische Übersetzung gesucht. Wenn es nicht gefunden wird - Spanisch. Wenn nicht, universelles Englisch.

    Schreibrichtung und Zeichensetzung


    Für die meisten Sprachen ist es ausreichend, den Text zu übersetzen. Das Erscheinungsbild der Anwendung und die den Text umgebenden Elemente können nicht geändert werden. Es gibt jedoch bestimmte Sprachen:
    • mit umgekehrter Schreibweise (von rechts nach links, zum Beispiel Arabisch und Hebräisch);
    • mit speziellen Interpunktionsregeln (Spanisch, Japanisch).

    Bei Sprachen mit umgekehrter Schreibweise muss nicht nur der Text übersetzt, sondern auch die Oberfläche gespiegelt werden: Nicht nur die Richtung des Texts ändert sich, sondern auch die Richtung der Wahrnehmung von Informationen.


    Mit der Zeichensetzung gibt es einfachere Fälle. Zum Beispiel verwenden asiatische Sprachen (Japanisch, Koreanisch) ihre eigenen UTF-8-Zeichen für Punkte, Ausrufezeichen und Fragezeichen (sie sehen fast so aus wie unsere, aber nicht unsere):
    。??
    .?!

    Und es gibt kompliziertere Fälle. Zum Beispiel werden auf Spanisch Fragezeichen und Ausrufezeichen am Anfang eines Satzes kopfüber kopiert.


    Und in keinem Fall kann Interpunktion von Token ausgeschlossen werden!

    Formate und Einheiten


    Es gibt subtile, aber sehr wichtige Unterschiede in der Formatierung von Daten und Zahlen, die ihnen in verschiedenen Ländern völlig unterschiedliche Bedeutungen verleihen können.
    Beispielsweise kann am 03.07.2013 der 3. Juli oder der 7. März angegeben werden - abhängig von den lokalen Standards. Dies ist ein häufiger Grund für Verwirrung zwischen den USA und Großbritannien, wo sie dieselbe Sprache sprechen, aber ein anderes Datumsformat verwenden. Es muss nicht davon ausgegangen werden, dass zwei Länder, die dieselbe Sprache sprechen, mit Sicherheit alles auf die gleiche Weise verstehen.

    Dasselbe passiert mit Zahlen. Die Zahl 1.000 kann als "Eins" oder als "Tausend" gelesen werden, je nachdem, welches Trennzeichen zum Trennen des Bruchteils verwendet wird. In Korea ist der Punkt beispielsweise das Dezimaltrennzeichen, während in Deutschland Tausende voneinander getrennt werden.

    Besonderes Augenmerk sollte auf das Messsystem gelegt werden. Die einfachste Lösung besteht darin, die Körpergröße des Benutzers gleichzeitig in Fuß und Zentimetern anzuzeigen, sie sieht jedoch unnatürlich aus. Sie können einen Schalter festlegen, mit dem der Benutzer bequeme Werte auswählen und den Standardwert basierend auf der ausgewählten Sprache festlegen kann. Dies gilt für Maße von Länge (Höhe), Gewicht, Temperaturskala usw.

    Stilistik


    Verschiedene Badoo-Komponenten können unterschiedliche Textstile verwenden: formeller und jugendlicher. Zum Beispiel ist es unter den Bedingungen der Nutzung des Dienstes und anderer amtlicher Dokumente besser, Sie als "Sie" zu übersetzen, während in Schnittstellen unterhaltsamer Art häufig "Sie" verwendet werden.

    Darüber hinaus ist es sehr wichtig, sich nicht in die Terminologie zu verwechseln und etablierte Wörter und Phrasen überall auf die gleiche Weise zu übersetzen. Der Zufalls-Dating-Service auf Badoo in englischer Sprache heißt beispielsweise Encounters. Dieses Wort kann auf verschiedene Arten übersetzt werden, aber wir halten uns an die Übersetzung "Dating". Dies ist äußerst wichtig, da der Benutzer sonst möglicherweise den Werbetext, der zu einer Aktion aufruft, oder eine Fehlermeldung nicht versteht. Um dieses Problem zu lösen, verwenden wir zwei Mechanismen. Die erste ist eine separate Gruppe von kurzen Token, die entweder sehr häufig verwendet werden oder von Geschlecht und Anzahl abhängen können. Wir werden im nächsten Abschnitt mehr über diese Gruppe sprechen.

    Der zweite Mechanismus, den wir TranslationMemory nennen. Es führt zwei Funktionen gleichzeitig aus:
    • reduziert den Arbeitsaufwand für Übersetzer (und beschleunigt dadurch die Bereitstellung);
    • hilft, Übersetzungen ähnlicher Token in einem Stil zu überstehen.

    Die Logik von TranslationMemory ist recht einfach, aber die Implementierung kann ein interessantes Thema sein, und wir werden Ihnen in Zukunft sicherlich mehr darüber erzählen. Kurz gesagt, beim Übersetzen eines Tokens analysieren wir den Originaltext und übersetzen ihn in kleinere „Zeichenfolgen“ (Teile von Phrasen und ganze Sätze), indem wir Satzzeichen, Tags, Zeilenumbrüche und einige andere Trennzeichen einfügen. Warum Fäden? Weil sie sich überschneiden, verflechten und eine beliebige Anzahl anderer Threads einschließen können. Die Auflistung aller Threads im Token wird als Struktur des Tokens bezeichnet.

    Wenn wir die Struktur der Threads vom Original und der Übersetzung klar miteinander vergleichen können, speichern wir Paare von Threads. Wenn in Zukunft neue Token im Übersetzungssystem angezeigt werden, versuchen wir, für jeden Thread eine Übersetzung zu finden. Wir kombinieren die gefundenen Optionen und wählen die vollständigste Übersetzung aus. Der Übersetzer kann als Grundlage für die neue Übersetzung eine von mehreren vollständigsten Übersetzungen auswählen, die aus verschiedenen Themen zusammengestellt wurden.
    Wenn Sie beispielsweise zwei verschiedene Hallo-Welten übersetzt haben und Mein Name ist John-Token, kann der Übersetzer fast nichts für das Hallo-Welt-Token tun! Ich heiße john TranslationMemory wird eine fertige Übersetzung anbieten. Der Übersetzer muss lediglich sicherstellen, dass die Satzzeichen der Sprache entsprechen.

    Sexsucht


    In verschiedenen Sprachen wird das Geschlecht unterschiedlich angegeben: Irgendwo werden die Artikel und Präpositionen verwendet, irgendwo die Enden und irgendwo alles auf einmal. Beispielsweise können in slawischen Sprachen fast alle Teile der Sprache vom Geschlecht abhängen. Darüber hinaus können komplexe Phrasen nicht nur vom Geschlecht des Objekts, sondern auch vom Geschlecht des Subjekts abhängen. Die Regeln in einigen Sprachen können so komplex sein, dass Sie manchmal den englischen Text für mehrere Kombinationen von Objekten und Subjekten unterschiedlichen Geschlechts duplizieren und die Anwendung entsprechend ändern müssen.

    Solche Situationen sind fast unmöglich vorherzusagen, ohne polyglot zu sein. Darüber hinaus glauben wir, dass Entwickler nicht darüber nachdenken sollten. Daher haben unsere Übersetzer ein spezielles Tool in der Übersetzungsoberfläche, mit dem Sie die Aufteilung des Tokens nach Geschlecht "ordnen" können: Es wird automatisch ein Entwicklungsticket mit einer Beschreibung des Problems erstellt.

    Abhängigkeit von Anzahl und Deklination


    In den meisten Sprachen gibt es nur zwei Formen der Zahlenabhängigkeit: Singular und Plural. Die russische Sprache ist ein hervorragendes Beispiel für komplexe Regeln der Abhängigkeit von der Anzahl: 1 Benutzer, 2 Benutzer, 5 Benutzer. Darüber hinaus 21 (31, 41, 101) Benutzer, aber 11 Benutzer. Die Regeln selbst sind nicht sehr kompliziert, aber wir graben tiefer.

    In der Regel berücksichtigen Anwendungen, was für sie wichtig ist. Soziale Netzwerke zählen Benutzer, Fotos, Beiträge und Likes. Im Finanzsektor werden Transaktionen, Währung und Kunden berücksichtigt. GPS-Navigatoren zählen Minuten und Kilometer (oder Meilen). Es werden die Größen berechnet, deren Namen und Maßeinheiten in der Anwendung überall zu finden sind. Dies sind die am häufigsten verwendeten Token, die in diesem Artikel wiederholt erwähnt wurden. Die Abhängigkeit von der Anzahl ist einer der Gründe, warum wir ein separates Tool zur Manipulation solcher Token entwickelt haben.

    Der zweite Grund ist "Ivan Bore the Girl, befohlen, die Windel zu ziehen", d.h. Deklinationen. Interessante Tatsache: In der ungarischen Sprache sind 17 Deklarationen der Rekordhalter unter den Sprachen, in die wir die Website und die Anwendungen übersetzen. Für seltene Wörter und Phrasen können Sie mit einer normalen Textübersetzung ohne Software-Bindungen auskommen. Für häufig vorkommende Wörter und Ausdrücke ist es nützlich, ein Tool zu haben, das die grammatikalisch korrekte Version erhält. Zum Beispiel wärmt der Satz „2 Mädchen mochten Sie“ die Seele nicht nur mit einer angenehmen Tatsache der bevorstehenden Bekanntschaft, sondern auch mit einer klaren und verständlichen russischen Sprache.

    Mit unseren Tools können Sie zwei wichtige Vorgänge ausführen. Für Entwickler - erhalten Sie das fertige Wort oder die fertige Phrase in grammatikalisch korrekter Form (genauer gesagt in einem universellen Container). Verwenden Sie für Übersetzer diese regulären Formulare bei der Übersetzung von normalen Token. Das obige Token im russischen Übersetzungssystem sieht beispielsweise so aus: "Hat Ihnen {{users_num}} {{users_word # Dative}} gefallen?". Dies gibt uns eine gewisse Freiheit: Der Übersetzer kann das Token nach eigenem Ermessen umformulieren und die Schreibweise ändern.

    Dies ist eine ziemlich gute Lösung, erfordert jedoch die Interaktion zwischen Übersetzern und Entwicklern. Jetzt arbeiten wir an einem System, mit dem Sie das gesamte Token oder einen Teil davon basierend auf den darin verfügbaren Variablen ändern können, ohne dass sich Entwickler beteiligen müssen. Dies ist nur für Übersetzer möglich.

    Tokenkontext und -länge


    Oft kann derselbe Ausdruck (von einzelnen Wörtern ganz zu schweigen) je nach Kontext auf unterschiedliche Weise übersetzt werden. Eine kurze Suche kann entweder das Substantiv "Suche" oder das Verb "Suche" sein. Bei der Wiederverwendung identischer Token und Übersetzungen ist es wichtig, den Kontext im Auge zu behalten. Damit Übersetzer den Kontext einer Phrase richtig verstehen, verwenden wir normalerweise einen Screenshot eines Beispiels für die Verwendung eines Tokens. Wir haben sogar ein System zum automatischen Sammeln von Screenshots in der Testphase der Aufgabe entwickelt, aber mehr dazu in einem separaten Artikel.

    Bei der Arbeit mit mobilen Projekten müssen Sie besonders auf die Länge der Zeilen achten. Der Platz auf dem Bildschirm ist knapp und Sie müssen sicherstellen, dass das Textfragment in den zugewiesenen Platz passt. Oft kann ein Begriff, der ein Wort auf Englisch ist, ein ganzer Satz in anderen Sprachen sein. Die Länge der Zeilen kann sowohl durch Zeichen als auch durch Pixel begrenzt werden (wenn die Schriftgröße und -art im Voraus bekannt sind und sich selten ändern).

    Die Begrenzung der Übersetzungsdauer ist in der Regel beratender Natur. Wenn das Limit überschritten wird, wird dem Übersetzer eine Warnung angezeigt, er kann die Übersetzung jedoch trotzdem speichern.

    Multiversion und Ausfallsicherheit


    Wenn Sie mehr als hundert Entwickler in Ihrem Team haben, ist beim Arbeiten mit Übersetzungen Vorsicht geboten: Dieselbe Vorlage mit übersetztem Text (sowie das Wörterbuch einer mobilen Anwendung) können in verschiedenen Aufgaben geändert werden. Das Übersetzungssystem muss in der Lage sein, zwischen verschiedenen Versionen von Dateien zu unterscheiden und zu verstehen, welche Übersetzung dem Benutzer übergeben werden muss.

    Für ein großes Team ist es auch wichtig, das Übersetzungssystem so komfortabel und fehlertolerant wie möglich zu gestalten. Dank der Benutzerfreundlichkeit können neue Teammitglieder so schnell wie möglich mit der Arbeit beginnen. Fehlertoleranz ist erforderlich, um den Einfluss des menschlichen Faktors zu verringern: Das System muss selbstständig mit menschlichen Fehlern umgehen und diese entweder korrigieren, oder laut schwören und schockiert sein.

    Lassen Sie Benutzer übersetzen


    Sie können lange und schmerzhaft nach Übersetzern für Mitarbeiter oder Freiberufler suchen, sich ein Qualitätskontrollsystem für Übersetzungen ausdenken und jedes Mal leiden, wenn Sie Unterstützung für eine neue Sprache hinzufügen möchten. Wenn Ihre Bewerbung jedoch in der Natur unterhaltsam ist und das Publikum groß genug ist, ist es durchaus akzeptabel, Benutzer für Übersetzungen zu gewinnen. So übersetzen Facebook und WhatsApp, und kürzlich wurde Badoo übersetzt.
    Wir legen großen Wert auf die Qualität der Übersetzungen und hatten Angst, ein solches Programm durchzuführen. Dieser Ansatz hat jedoch mehrere Stärken:
    • Sie müssen nicht in allen Sprachen des Staates nach Übersetzern suchen.
    • Muttersprachler kontrollieren selbst die Qualität der Übersetzungen;
    • es ist kostenlos

    Wir ermutigen die aktivsten Teilnehmer, aber zum größten Teil arbeiten Benutzer für die Idee, Badoo in ihrer Muttersprache verfügbar zu machen. Derzeit arbeiten Benutzer mit sieben Sprachen, von denen drei (Finnisch, Malaiisch und Vietnamesisch) bereits für die gesamte Badoo-Community verfügbar sind. Die Übersetzung in die verbleibenden vier Sprachen (Baskisch, Bengalisch, Isländisch und Suaheli) ist immer noch nicht gut genug, um alle Benutzer zu unterstützen, aber es ist eine Frage der Zeit.

    Fazit


    Der Zweck der Lokalisierung besteht darin, dass sich Benutzer unabhängig von Sprache und Wohnort in Ihrer Anwendung wohl fühlen. Oft erfordert dies nicht offensichtliche und komplexe Lösungen. Aufgrund unserer siebenjährigen Erfahrung können wir jedoch mit Sicherheit sagen, dass es sich lohnt.
    Das Übersetzungssystem bei Badoo wurde in all den Jahren gebaut und wird ständig weiterentwickelt. In Zukunft werden wir versuchen, unsere technischen und organisatorischen Lösungen genauer zu beschreiben. Was der nächste Artikel sein wird, entscheiden Sie!

    Gleb Deikalo, PHP-Entwickler

    Nur registrierte Benutzer können an der Umfrage teilnehmen. Bitte komm rein .

    Was interessiert Sie am meisten an den folgenden Artikeln?

    • 39,6% Entwicklungs- und Übersetzungsfluss. Wie der Prozess aus Sicht des Produktmanagers aussieht: GIT, JIRA, Hooks und Automation. 119
    • 59,6% Der Kern des Systems: Analysieren von Dateien, Bereitstellen von Multiversionnost und Generieren übersetzter Inhalte. 179
    • 37,3% Abhängigkeit von Anzahl und Deklination: die Fähigkeit zur Umformulierung. 112
    • 35,6% Ein Stil und weniger Arbeit: TranslationMemory. 107
    • 30,3% Benutzerübersetzungen: Reduzieren Sie den Personalbestand der Übersetzer und führen Sie kostenlos neue Sprachen ein. 91

    Jetzt auch beliebt: