- Asymmetrische Lokalisierung: Verwendet bei Bedarf nur Genus/Groß- und Kleinschreibung, um natürliche Übersetzungen zu ermöglichen. Die Ausdruckskraft ist nicht durch die Grammatik der Ausgangssprache begrenzt
- Schrittweise Verbesserung: Jede Übersetzung wird unabhängig verwaltet und beeinflusst keine anderen Locales. Übersetzungen können iterativ verbessert werden, ohne andere Sprachen zu beeinträchtigen
- Vielfältige Funktionen: Datums-, Zeit- und Zahlenformatierung. Pluralkategorien. Unterstützung für bidirektionale Texte. Benutzerdefinierte Formatierung. Gut lesbare Syntax. Übersetzung und Neuübersetzung zur Laufzeit. Robuste Fehlerbehandlung
- Open Source unter Apache-Lizenz. Server-Implementierungen sind für JS, Python und Rust verfügbar, außerdem gibt es React-Bindings
Warum Fluent entwickelt wurde
- Die Software-Lokalisierung wurde lange von einem veralteten Paradigma dominiert: Übersetzungen als Eins-zu-eins-Abbildung englischer Texte
- Die Grammatik der Ausgangssprache beschränkt die Ausdruckskraft der Übersetzung
- Um dieses Paradigma zu verändern, wurde Fluent entwickelt
- Übersetzer sollten die volle Ausdruckskraft ihrer Sprache nutzen können, ohne Entwickler um Erlaubnis bitten zu müssen
- In Fluent sind Übersetzungen asymmetrisch. Eine einfache englische Zeichenkette kann auf eine komplexe, mehrvariantige Übersetzung in einer anderen Sprache abgebildet werden
- Mit Fluent lassen sich Grammatik und Stil verschiedener Sprachen unabhängig von der Ausgangssprache erfüllen
- Unabhängig
- Wenn eine Sprache die Vorteile fortgeschrittener Logik nutzt, sind keine anderen Lokalisierungen erforderlich, um dies ebenfalls anzuwenden
- Jede Lokalisierung steuert selbst, wie komplex ihre Übersetzungen werden
4 Kommentare
Oh, es ist wirklich faszinierend, dass man sich vom alten 1:1-Matching-Paradigma löst.
Eine auf JavaScript beschränkte, abgespeckte Version von gettext.
https://github.com/projectfluent/fluent/wiki/Fluent-vs-gettext
Wenn man das so sagt, nimmt man dieses Projekt viel zu sehr auf die leichte Schulter.
Die Antwort war wohl etwas zu lieblos (?), deshalb kann es sein, dass es so rüberkam. Ich versuche, es etwas sorgfältiger zu formulieren.
Die Vergleichstabelle hat ohnehin keine große Bedeutung, weil sie letztlich davon abhängt, wer mit wem verglichen wird.
Der Grund, warum es sich für mich wie eine abgespeckte Version anfühlte, ist ... dass ich den Eindruck hatte, dass das über lange Jahre von vielen Menschen in gettext angesammelte Know-how nicht respektiert wird.
Es hieß, gettext sei nur für C geeignet, aber welche wichtige Sprache unterstützt gettext denn nicht?
Es wurde gesagt, man habe wegen der Problematik der Wortstellung key-basierte Parameter verwendet, aber nicht alle Sprachen haben Dictionaries standardmäßig eingebaut, sodass solche Sprachen zusätzliche Mittel brauchen (z. B. in Java etwas wie
Map). gettext ist positionsbasiert, berücksichtigt aber Änderungen der Wortstellung.Ich habe jetzt etwas drauflos geschrieben, aber
um ehrlich zu sein ... von Anfang an hat es mir nicht gefallen, weil es nicht
${...}, sondern{$...}war^^Persönlich mag ich es sehr, „das Rad neu zu erfinden“, aber so aufzutreten, als hätte man ein Rad erfunden, das es vorher auf der Welt noch nie gegeben hat, wirkt auf mich nicht besonders gut.