1

Wir implementieren derzeit ein Zend Framework Projekt, das in 6 verschiedenen Sprachen übersetzt werden muss. Wir haben bereits ein ziemlich ausgeklügeltes Übersetzungssystem, basierend auf Zend_Translate, das auch Variablen in Übersetzungsschlüsseln behandelt.Umgang mit Grammatik/Rechtschreibung in Übersetzungsstrings

Jetzt hat unser Projekt einen neuen türkischen Übersetzer, und wir stehen vor einer neuen Ausgabe: Grammatik, besonders türkisch. Ich habe festgestellt, dass dieses Problem in jedem Übersetzungssystem und in den meisten Sprachen offensichtlich ist. Daher habe ich hier eine Frage gestellt.

Frage: Irgendwelche Ideen, wie zu handhaben Übersetzungen wie:

Key: I have a[n] {fruit} 
Variables: apple, banana 
Result: I have an apple. I have a banana. 
Key: Stimme für {user}[s] Einsendung 
Variables: Paul, Markus 
Result: Stimme für Pauls Einsendung, 
Result: Stimme für Markus Einsendung 

Jeder hat eine Lösung oder Idee dafür? Mein einziger Rat wäre, dies zu vermeiden, indem ich keine Übersetzungen verwende, in denen diese Probleme auftreten. Wie gehen andere Plattformen damit um?

Natürlich hat das Übersetzungssystem keine Idee, welche Art von Wort es wo in welcher Art von Satz platziert. Es funktioniert nur einigen String Ersatz ...

PS: Türkisch ist noch komplizierter:

For example, on a profile page, we have "Annie's Network". This should translate as "Annie'nin Aği". 
If the first name ends in a vowel, the suffix will start with an n and look like "Annie'nin" 
If the first name ends in a consonant, it will not have the first n, and look like "Kris'in" 
If the last vowel is an a or ı, it will look like "Dan'ın"; or Seyma'nın" 
If the last vowel is an o or u, it will look like "Davud'un"; or "Burcu'nun" 
If the last vowel is an e or i, it will look like "Erin'in"; or "Efe'nin" 
If the last vowel is an ö or ü, it will look like "Göz'ün'; or "Iminönü'nün" 
If the last letter is a k (like the name "Basak"), it will look like "Basağın"; or "Eriğin" 
+0

Warum sagen Sie _pretty anspruchsvolle Translation System_? Ich verstehe nicht, sorry. Die Beispiele aus dem Englischen und Deutschen sind sehr einfach (keine Deklination) und Ihre Systeme verwalten diese nicht? –

Antwort

1

Es ist eigentlich sehr schwieriges Problem, wie Grammatikregeln unterschiedlich sind auch unter den Sprachen aus derselben Familie. Ich glaube nicht, dass Sie leicht etwas für slawische Sprachen tun könnten ...

Allerdings, wenn Sie dieses Problem lösen möchten (weil das besonders anspruchsvoll ist) und Sie auf der Suche nach kreativen (übergreifenden) Möglichkeiten sind tun Sie das, möchten Sie vielleicht in etwas namens ChoiceFormat (Beispiel wäre eine aus ICU Project) oder Sie können nachschlagen GNU Gettext's solution for plural forms problem.

+0

Vielen Dank für Ihre Antwort. Die Übersetzungslösung, die wir derzeit haben, könnte mit Pluralformen umgehen. Aber es geht nicht nur um Plurale ... es scheint komplizierter ... –

+0

Ich weiß, es geht nicht nur um Plurale, und was Sie eigentlich wollten, war etwas, das Inflection genannt wird. Ich habe Ihnen einige Beispiele für andere linguistische Probleme und deren Lösung gegeben. Wenn ich eine Lösung für Flexion implementieren würde, würde ich wahrscheinlich eine Kombination aus regulären Ausdrücken, Auswahlformatierer und vom Übersetzer bereitgestellten Metadaten wählen. Es ist ein sehr schweres Problem, wirklich. –

+0

Denke auch so ... –

1

ICU (oben erwähnt) hat ein SelectFormat http://site.icu-project.org/design/formatting/select, das hilfreich sein kann - es ist wie ein Auswahlformat, aber mit beliebigen Stichwörtern. Außerdem gibt es ein PluralFormat, das bereits Regeln für die Pluralregeln vieler Sprachen enthält.