Was ist der beste Weg, um die Übersetzung und Lokalisierung von dynamischen Listen zu verwalten?l10n/i18n: Wie behandelt man Sätze mit einer dynamischen Liste von Elementen?
Angenommen, ich habe die Datenbank abgefragt und eine Liste ["Foos", "Bars", "Bazes"]
bekommen. Nehmen wir an, die Liste enthält immer mindestens zwei Elemente. Ich werde sicher sein, eine andere Übersetzung für den Einzelfall zu verwenden.
Was soll ich tun, wenn ich einen Satz wie brauchen „Wir haben eine große Auswahl an Foos, Bars und Bazes in unserem Code“? (Unter der Annahme, dass die Listenelemente sind dynamisch, damit ich nicht nur vorge übersetzen alle möglichen Permutationen und müssen die Dinge zur Laufzeit tun.)
ich zumindest die folgenden Probleme sehen:
Ich muss alle Elemente in das richtige Formular einfärben (gibt es Sprachen, in denen abhängig von der Position in der Liste verschiedene Formulare erforderlich sind?)
Verschiedene Gebietsschemas können drastisch unterschiedliche Regeln haben, wie Elemente verknüpft werden.
- z. CJK-Locales brauchen "," anstelle von ",".
- Und AFAIK auf Chinesisch gibt es "及" oder "和" - abhängig von der vollständigen Phrase - vor dem letzten Punkt, also denke ich, gibt es einige Mehrdeutigkeit mit dem Übersetzen von "und".
- Und wie ich gelesen habe, können einige Sprachen Interpunktion vermeiden, wie es in Englisch verwendet wird, aber stattdessen andere Konzepte haben, z. Der arabische Übersetzer könnte die Verwendung "vor jedes Element bevorzugen (obwohl sie auch Kommas haben"). Ich bin mir nicht sicher, ob es wahr ist oder nicht - ich kann kein Arabisch, ich habe es nur erwähnt.
Mein Problem ist, ich weiß nicht einmal, welche Werkzeuge mir hier helfen können. Ich habe keine besonderen Anforderungen an die Programmiersprache, obwohl Python oder JavaScript die besten wären. Aber ich denke, dass ich fast alles ausführen kann, da ich wahrscheinlich einen l10n Microservice bauen und von meinem Projekt abfragen kann.
Ich habe GNU Gettext verwendet, bevor ich das gefunden habe, aber ich habe nichts gefunden, das mir in seinen APIs und Datenformaten helfen würde. Das Beste, was ich mir vorstellen kann, ist _("We have a wide choice of %s in our code", list_text)
und generieren list_text
mit DIY-Hacks. Ich bin nicht sicher, XLIFF-Format hat auch so etwas. Ich habe i18n-list-generator
auf Npm gefunden, aber es ist way too simplicistic.
Hat sich jemand mit so etwas beschäftigt? Was haben Sie gemacht? Gibt es irgendwelche Bibliothek da draußen, die dies behandelt - so kann ich einen Blick auf seine API werfen und lernen, wie es Dinge tut?
Die beste Vorgehensweise besteht darin, diese Art der Zusammenführung, wann immer möglich, zu vermeiden und den dynamischen Teil unabhängiger zu machen (und daher leichter zu übersetzen), indem z. Doppelpunkte und Klammern. Vergleichen Sie mit "Gefunden% d Dateien" vs "Gefundene Dateien:% d". – GSerg
@GSerg, ja, mit den Übersetzungen überhaupt nicht fertig zu werden, wäre der einfachste Weg, mit ihnen umzugehen;) Ich schätze, ich kann nur Regeln für ausgewählte "erstklassige" Sprachen erstellen und eine langweilige maschinengenerierte Liste hinterlassen für andere (sicherlich, wäre viel besser als verlassen es überhaupt nicht übersetzt). Aber wenn jemand weiß, wie man damit gut umgehen kann - ich bin daran interessiert, etwas über das Modell zu lernen. – drdaeman