Обработка грамматических / орфографических ошибок в строках перевода - PullRequest
1 голос
/ 24 ноября 2010

В настоящее время мы реализуем проект Zend Framework, который должен быть переведен на 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 она размещает в каком-либо типе предложения.Это только делает некоторые строковые замены ...

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 ]

1 голос
/ 27 ноября 2010

ICU (упомянутый выше) имеет SelectFormat http://site.icu -project.org / design / formatting / select , который может помочь - это как формат выбора, но с произвольными ключевыми словами. Кроме того, у него есть PluralFormat, в котором уже есть правила для правил множественного числа многих языков.

1 голос
/ 24 ноября 2010

Это на самом деле очень сложная проблема, так как грамматические правила отличаются даже для языков одной семьи. Я не думаю, что вы могли бы легко сделать что-нибудь, скажем, славянские языки ...

Однако, если вы хотите решить эту проблему (потому что это очень сложно), и вы ищете творческие (вдохновляющие) способы сделать это, вы можете рассмотреть что-то под названием ChoiceFormat (например, один из 1003 * Проект ICU ) или вы можете посмотреть GNU Решение Gettext для решения проблемы множественных форм .

...