Fluent 1.0: Flexibles Lokalisierungssystem



Fluent ist eine Familie von Spezifikationen, Implementierungen und Praktiken für die Lokalisierung, die von Mozilla entwickelt wurden. Jetzt wird es im Firefox-Browser verwendet. Mit Fluent können Übersetzer natürlichere Übersetzungen in ihrer Muttersprache schreiben. Heute führen wir die Dateiformatspezifikation Fluent Version 1.0 ein. Wir laden Entwickler von Übersetzungstools ein, es auszuprobieren und über Ihre Eindrücke zu berichten.


Welche Probleme löst Fluent?


Der Firefox-Browser unterstützt ungefähr hundert Sprachen und fordert Entwickler hinsichtlich der Lokalisierung heraus. Viele Probleme sind mit herkömmlichen Ansätzen schwer zu lösen. Die Softwarelokalisierung wird vom Prinzip dominiert, Eins-zu-Eins-Übersetzungen mit dem Quelltext zu kennzeichnen. Die Grammatik der Ausgangssprache (im Fall von Mozilla - Englisch) schränkt die Verfügbarkeit von Ausdrucksmitteln bei der Übersetzung ernsthaft ein.


Beachten Sie die folgende Meldung, die angezeigt wird, wenn ein Benutzer versucht, ein Firefox-Fenster mit mehreren Registerkarten zu schließen.


tabs-close-warning-multiple = You are about to close {$count} tabs. Are you sure you want to continue? 

Eine Meldung wird nur angezeigt, wenn zwei oder mehr Registerkarten vorhanden sind. Im Englischen befindet sich das Wort tab immer im Plural - tabs. Ein englischsprachiger Entwickler wird mit einer solchen Nachricht zufrieden sein. Es klingt für alle $ count-Werte korrekt.

fließend

Im Englischen ist für alle Werte von $ count eine einzige Nachrichtenvariante ausreichend.


Viele Übersetzer werden feststellen, dass die Wortregisterkarte je nach Wert von $ count unterschiedliche Formen annehmen kann.


Beim traditionellen Ansatz zur Lokalisierung liegt die Verantwortung für die korrekte Verarbeitung der Nachricht bei den Übersetzern. Sie müssen berücksichtigen, dass es in anderen Sprachen mehrere verschiedene Formen des Wortes geben kann, auch wenn es in Englisch nur eine ist. Je mehr Sprachen die Anwendung unterstützt, desto schwerwiegender wird das Problem.


  • In einigen Sprachen haben Substantive ein Geschlecht, was Änderungen in Adjektiven und Partizipien erfordert. Im Französischen werden die Wörter connecté, connectée, connectés und connectées als verbunden ins Englische übersetzt.
  • Der Styleguide erfordert möglicherweise die Verwendung bestimmter Begriffe, abhängig von der Plattform, auf der die Software ausgeführt wird. In der englischen Version von Firefox werden beispielsweise Einstellungen auf der Windows-Plattform und Einstellungen auf anderen Systemen verwendet, um den auf diesen Systemen festgelegten Standards zu entsprechen. Auf Japanisch kann der Unterschied noch interessanter sein: Die Wahl eines Schreibsystems für einige Computerbegriffe hängt vom Betriebssystem ab.
  • Der Kontext und die Zielgruppe der Anwendung erfordern möglicherweise zusätzliche Änderungen am Text. Eine englischsprachige Anwendung für die Arbeit mit der Buchhaltung kann die Formatierung von Zahlen verwenden, die sich von der auf normalen Websites im Internet verwendeten unterscheiden. In anderen Sprachen ist eine solche Trennung möglicherweise nicht erforderlich.

Es gibt viele grammatikalische und stilistische Variationen, die nicht direkt zwischen den beiden Sprachen korreliert werden können. Es kann schwierig sein, all diese Nuancen mit dem traditionellen Ansatz zu unterstützen. In einigen Sprachen muss man Kompromisse eingehen, in anderen gibt es überhaupt keine geeignete Lösung.


Asymmetrische Lokalisierung


Fließend ändert die Rollenverteilung bei der Lokalisierung. Anstatt von Entwicklern zu verlangen, alle möglichen Nuancen aller Sprachen zu berücksichtigen, versucht Fluent, die Texte in der Ausgangssprache in der einfachsten Form zu halten.


Wir ermöglichen es, die Grammatik und den Stil anderer Sprachen unabhängig vom Quelltext zu vermitteln. Alles geschieht isoliert. Die Tatsache, dass eine Sprache bei der Lokalisierung eine fortgeschrittenere Logik verwenden kann, wirkt sich nicht auf andere Übersetzungssprachen aus. Jede Lokalisierung im Programm selbst entscheidet, wie komplex der Übersetzungstext sein soll.


Schauen wir uns zum Beispiel an, wie Sie eine Nachricht zum Schließen von Registerkarten ins Tschechische übersetzen. Das Wortfeld (Registerkarte) sollte eine von zwei Formen annehmen: Panely für die Anzahl der Registerkarten 2, 3 und 4 und Panelů für alle anderen Werte.


 tabs-close-warning-multiple = {$count -> [few] Chystáte se zavřít {$count} panely. Opravdu chcete pokračovat? *[other] Chystáte se zavřít {$count} panelů. Opravdu chcete pokračovat? } 

Fließend gibt Übersetzern die Möglichkeit, grammatikalisch korrekte Sätze zu schreiben und die Ausdrucksmittel ihrer Sprache frei zu verwenden. Dank Fluent verwendet die tschechische Übersetzung die korrekten Pluralformen für mögliche $ count-Werte.

fluent_cz In der tschechischen Sprache erfordert das Substantiv mit $ count-Werten von 2, 3 und 4 eine spezielle Pluralform.

Gleichzeitig sind keine Änderungen am Quellcode oder Code erforderlich. Die Logik in der tschechischen Lokalisierung wirkt sich nicht auf alle anderen Lokalisierungen des Programms aus. Auf Französisch ist dieser Satz so einfach wie Englisch:



 tabs-close-warning-multiple = Vous êtes sur le point de fermer {$count} onglets. Voulez-vous vraiment continuer ? 

Das Konzept der asymmetrischen Lokalisierung ist eine wichtige Innovation von Fluent, die durch Mozillas Erfahrung in der Entwicklung mehrsprachiger Software seit über 20 Jahren ermöglicht wird. Viele wichtige Ideen für Fluent wurden von MessageFormat von der Intensivstation (International Component for Unicode) und vom XLIFF- Format übernommen.


Auf den ersten Blick ist Fluent wie andere Lokalisierungslösungen, mit denen Sie Wortvarianten für mehrere Substantive und Wörter mit einem grammatikalischen Geschlecht verwenden können. Im Gegensatz dazu verfolgt Fluent einen ganzheitlichen Ansatz zur Lokalisierung. Fluent entwickelt diese Ideen, indem es die Syntax für die gesamte Textdatei definiert, in der Übersetzungen gespeichert sind, und Links von einer Nachricht zur anderen zulässt.


Begriffe und Links


Eine Fluent-Datei kann viele Nachrichten enthalten, von denen jede in die Sprache des Übersetzers übersetzt wird. Nachrichten können sich auf andere Nachrichten in derselben Datei oder auf Nachrichten aus anderen Dateien beziehen. Zur Laufzeit führt Fluent Dateien zu Bundles zusammen und Verknüpfungen werden innerhalb dieses Satzes aufgelöst.


Der Link zu Posts ist ein leistungsstarkes Tool zur Aufrechterhaltung konsistenter Übersetzungen. Sobald eine bestimmte Übersetzung in anderen Übersetzungen wiederverwendet werden kann. Fluent unterstützt eine spezielle Art von Nachricht, den Begriff, der sich gut zur Wiederverwendung eignet. Der Begriff Bezeichner beginnt immer mit einem Bindestrich.



 -sync-brand-name =  Firefox 

Einmal definiert, kann der Begriff -sync-Markenname aus anderen Nachrichten als Variable verwendet werden, wobei immer der richtige Text zurückgegeben wird. Begriffe helfen dabei, Einheitlichkeit gemäß den Stilrichtlinien einzuführen. Beispielsweise können sie geändert werden, um inoffizielle Builds oder Betaversionen speziell zu kennzeichnen.


 sync-dialog-title = {-sync-brand-name} sync-headline-title = {-sync-brand-name}: The best way to bring your data always with you sync-signedout-account-title =    {-sync-brand-name} 

Die Verwendung des Begriffs direkt in der Mitte eines Satzes kann Probleme in Flexionssprachen oder in Sprachen mit anderen Regeln für die Großschreibung von Text verursachen. Die Bedeutung des Begriffs kann je nach Kontext in mehreren Aspekten definiert werden. Betrachten Sie die folgende Definition des Begriffs -sync-markenname auf Italienisch.


 -sync-brand-name = {$capitalization -> *[uppercase] Account Firefox [lowercase] account Firefox } 

Aufgrund der Asymmetrie von Fluent kann ein italienischer Übersetzer zwei Formen für das Schreiben einer Marke definieren. Die Großbuchstabenvariante (Standard) eignet sich zur selbständigen Verwendung oder zur Verwendung am Satzanfang. Eine Option in Kleinbuchstaben kann angefordert werden, indem ein Großschreibungsparameter übergeben wird, wenn der Begriff in einem großen Satz verwendet wird.


 sync-dialog-title = {-sync-brand-name} sync-headline-title = {-sync-brand-name}: il modo migliore per avere i tuoi dati sempre con te #      . sync-signedout-account-title = Connetti il tuo {-sync-brand-name(capitalization: "lowercase")} 

Die Definition mehrerer Varianten des Begriffs ist eine praktische Technik, mit der Sie die grammatikalischen Regeln vieler Sprachen einhalten können. Im folgenden Beispiel kann der polnische Übersetzer Deklinationen verwenden, um den richtigen Satz in der Nachricht "Sync-Signed-Out-Account-Titel" zu erstellen.


 -sync-brand-name = {$case -> *[nominative] Konto Firefox [genitive] Konta Firefox [accusative] Kontem Firefox } sync-signedout-account-title = Zaloguj do {-sync-brand-name(case: "genitive")} 

Mit Fluent können Sie komplexe Sprachkonstruktionslogiken dort einbetten, wo Sie sie benötigen. Gleichzeitig bleibt das einfache Übersetzen einfach. Fluent fügt einfachen Designs keine komplexen Implementierungen hinzu.


 sync-signedout-caption = Take Your Web With You sync-signedout-caption = Il tuo Web, sempre con te sync-signedout-caption = Zabierz swoją sieć ze sobą sync-signedout-caption = So haben Sie das Web überall dabei. 

Fließende Syntax


Heute kündigen wir die erste stabile Version von Fluent Syntax an. Dies ist eine Spezifikation des Dateiformats zum Speichern von Übersetzungen sowie eine Beta-Version von Parsern für JavaScript, Python und Rust.


In den obigen Beispielen haben Sie gesehen, worum es bei der Fluent-Syntax geht. Es wurde erstellt, um für Personen mit geringen technischen Kenntnissen verständlich zu sein, und ermöglicht es Ihnen, Text mit einer minimalen Anzahl von Fehlern zu überprüfen und zu bearbeiten. Die Fehlerbehebung ist ein wichtiger Punkt: Eine falsche Übersetzung beschädigt nicht die gesamte Datei oder die angrenzenden Übersetzungen. Kommentare sind nützlich, um den Kontext einer bestimmten Nachricht oder einer gesamten Gruppe zu vermitteln. Übersetzungen können mehrere Zeilen umfassen, was die Arbeit und das Markieren großer Textfragmente erleichtert.


Fließende Dateien können in jedem Texteditor geöffnet werden, wodurch die Eingabeschwelle für Entwickler und Lokalisierer gesenkt wird. Das Format wird bereits von Mozillas Open-Source-Übersetzungsplattform Pontoon unterstützt.

fluent_playground Fluent Playground ist eine Sandbox zum Testen von Fluent direkt im Browser.

Einzelheiten zur Syntax finden Sie im Fluent Syntax Guide . Eine formale Definition finden Sie in der Fluent Syntax-Spezifikation . Und wenn Sie nur Fluent ausprobieren möchten, verwenden Sie den Fluent Playground , einen Online-Editor mit Snippets zum Teilen.


Rückkopplung


Firefox ist ein wichtiger Faktor bei der Entwicklung von Fluent. Firefox verwendet bereits über 3.000 Fluent-Posts . Die Migration zu Fluent begann im letzten Jahr und ist jetzt in vollem Gange. Das Fluent-Format hat sich als stabile und flexible Lösung für komplexe Schnittstellen wie die Firefox-Einstellungsseite erwiesen. Es wird auch auf vielen Mozilla-Webseiten wie Firefox Send und Common Voice verwendet .


Wir glauben, dass Fluent eine ausgezeichnete Wahl für Anwendungen ist, bei denen Einfachheit und Geschwindigkeit wichtig sind, gleichzeitig aber die Anzeige von Schnittstellenelementen in Abhängigkeit von vielen Variablen erforderlich ist. Fluent hilft insbesondere dabei, natürliche Sätze in verschiedenen Sprachen auf engstem Raum mobiler Schnittstellen zu erstellen. in informationsreichen Social-Media-Plattformen; und in Spielen, um Spielstatistiken zu übertragen und dem Spieler die Mechanik zu erklären.


Wir würden gerne von Fluent-Entwicklern oder -Anbietern hören. Fluent wird als Standard der Zukunft entwickelt, daher laden wir alle ein, es auszuprobieren und uns mitzuteilen, mit welchen anderen Problemen Sie bei Ihrer Arbeit konfrontiert sind. Mit Ihrer Hilfe können wir Fluent so verbessern, dass es auf vielen Plattformen und in vielen Situationen funktioniert.


Wir sind offen für konstruktive Kritik. Weitere Informationen zu Fluent finden Sie auf der Projektwebsite . Wenn Sie eine Geschichte zu erzählen haben, kontaktieren Sie uns unter Fluent Discourse .



Von einem Übersetzer: Syntaxdokumentation in Russisch .

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


All Articles