处理翻译中的语法/拼写问题

时间:2010-11-24 15:49:59

标签: variables internationalization translation grammar spelling

我们目前正在实施Zend框架项目,需要翻译成6种不同的语言。我们已经有一个非常复杂的翻译系统,基于Zend_Translate,它还处理翻译键中的变量。

现在我们的项目有了一个新的土耳其翻译,我们正面临一个新问题:语法,特别是土耳其语。我注意到这个问题可能在每个翻译系统和大多数语言中都很明显,所以我在这里发了一个问题。

问题:任何想法如何处理翻译,如:

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

任何人都有解决方案或想法吗?我唯一的猜测就是通过不使用翻译来避免这种情况发生。 其他平台如何处理这个?

当然,翻译系统没有任何类型的Word,它放在哪种类型的句子中。它只做一些String替换......

PS:土耳其语更加复杂:

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"

2 个答案:

答案 0 :(得分:1)

这实际上是非常难的问题,因为语法规则甚至在同一家族的语言中也是不同的。我认为你不能轻易做任何事情让我们说斯拉夫语言......

但是,如果你想解决这个问题(因为这是一个额外的挑战)并且你正在寻找创造性(交叉鼓舞人心)的方法来做到这一点,你可能想要研究一个名为ChoiceFormat的东西(例如来自{ {3}})或者您可以查找ICU Project

答案 1 :(得分:1)

ICU(如上所述)有一个可能有帮助的SelectFormat http://site.icu-project.org/design/formatting/select - 它就像一个选择格式,但有任意关键字。此外,它确实有一个PluralFormat,它已经有许多语言复数规则的规则。