1

Nous mettons actuellement en œuvre un projet Zend Framework, qui doit être traduit en 6 langues différentes. Nous avons déjà un système de traduction assez sophistiqué, basé sur Zend_Translate, qui gère également les variables dans les clés de traduction.Gestion des problèmes de grammaire et d'orthographe dans les chaînes de traduction

Maintenant, notre projet a obtenu un nouveau traducteur turc, et nous sommes confrontés à un nouveau problème: la grammaire, en particulier turque. J'ai remarqué que ce problème peut être évident dans tous les systèmes de traduction et dans la plupart des langues, j'ai donc posté une question ici.

Question: Toutes les idées comment gérer les traductions comme:

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 

Tout le monde a une solution ou une idée pour cela? Mon seul choix serait d'éviter cela en n'utilisant pas les traductions où ces problèmes se produisent. Comment les autres plates-formes gèrent-elles cela?

Bien entendu, le système de traduction n'a aucune idée du type de mot qu'il place dans quel type de phrase. Il ne fait que quelques remplacements de cordes ...

PS: turc est encore plus compliqué:

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

Pourquoi dites-vous _pretty sophistiqué Translation System_? Je ne comprends pas, désolé. Les exemples de l'anglais et de l'allemand sont très basiques (pas de déclinaison) et vos systèmes ne les gèrent pas? –

Répondre

1

Il est en fait problème très difficile, car les règles de grammaire sont différentes, même parmi les langues de la même famille. Je ne pense pas que vous pourriez facilement faire quelque chose pour les langues slaves, par exemple ...

Cependant, si vous voulez résoudre ce problème (parce que c'est un défi supplémentaire) et vous êtes à la recherche de moyens créatifs (inspirants) faites cela, vous pourriez vouloir regarder dans quelque chose appelé ChoiceFormat (exemple serait un de ICU Project) ou vous pouvez rechercher GNU Gettext's solution for plural forms problem.

+0

Merci pour votre réponse. La solution de traduction que nous avons actuellement pourrait gérer les pluriels. Mais il ne s'agit pas seulement de pluriels ... cela semble plus compliqué ... –

+0

Je sais que ce n'est pas seulement à propos des pluriels, et ce que vous vouliez réellement, c'était quelque chose qui s'appelle Inflection. Je vous ai donné quelques exemples d'autres problèmes linguistiques et la façon de les résoudre. Si je devais implémenter la solution pour Inflection, j'irais probablement pour la combinaison des expressions régulières, du formateur de choix et des métadonnées fournies par le traducteur. C'est un problème très difficile, vraiment. –

+0

Pensez-y aussi ... –

1

ICU (mentionné ci-dessus) a un SelectFormat http://site.icu-project.org/design/formatting/select qui peut être utile - c'est comme un format de choix mais avec des mots-clés arbitraires. En outre, il a un PluralFormat qui a déjà des règles pour les règles plurielles de plusieurs langues.