1

我們目前正在實施一個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 

任何人有一個解決方案或想法?我唯一的猜測就是通過在發生這些問題時不使用翻譯來避免這種情況。 其他平臺如何處理此問題?

當然,翻譯系統沒有Idea這種類型的Word,它放置在哪種類型的句子中。它只是做一些字符串替換...

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" 
+0

你爲什麼說_pretty複雜的翻譯系統_?我不明白,對不起。英語和德語的例子是非常基本的(沒有赤字),你的系統沒有管理這些嗎? – 2010-11-24 16:05:17

回答

1

它實際上是非常困難的問題,因爲語法規則是即使是來自同一個家庭的語言不同。我不認爲你可以輕鬆做任何事情讓我們說斯拉夫語...

然而,如果你想解決這個問題(因爲這是額外的挑戰),你正在尋找創造性(交叉啓發)的方式來這樣做,你可能想看看ChoiceFormat(例如ICU Project之一),或者你可以查看GNU Gettext's solution for plural forms problem

+0

謝謝你的回答。我們目前擁有的翻譯解決方案可以處理複數形式。但它不僅僅是關於複數......它似乎更復雜...... – 2010-11-24 22:50:09

1

ICU(上面提到)有一個SelectFormat http://site.icu-project.org/design/formatting/select可能有幫助 - 它就像一個選擇格式,但具有任意關鍵字。此外,它確實有一個PluralFormat,它已經有許多語言的複數規則的規則。