Как перевести родимые местоимения в Qtranslator Qt - PullRequest
7 голосов
/ 16 марта 2011

Я смотрю на QT4-игру с открытым исходным кодом (http://cockatrice.de),), и она использует QTranslator для интернационализации. Однако каждая фраза, которая относится к игроку, использует местоимение мужского рода («его рука», «его колода»)., "он делает то-то и то-то" и т. д.)

Моей первой мыслью для исправления этого было бы просто заменить каждый экземпляр "его" или "он" переменной, для которой установлено правильное значение.местоимение гендера, но я не знаю, как это повлияет на переводы. Но для перевода / интернационализации это может сломаться, особенно если пол местоимения влияет на остальную часть фразы.

Кто-нибудь еще работал с этимВ некотором роде проблема? Можно ли выделить местоимение и фразу хотя бы на простых языках (например, в данном случае на английском)? Будет ли в файле перевода копия каждой фразы для каждого родового местоимения?хотя бы размер файла перевода)?

пример кода из того, как он настроен в данный момент:

вызовИсточник:

case CaseNominative: return hisOwn ? tr("his hand", "nominative") : tr("%1's hand", "nominative").arg(ownerName);
case CaseGenitive: return hisOwn ? tr("of his hand", "genitive") : tr("of %1's hand", "genitive").arg(ownerName);
case CaseAccusative: return hisOwn ? tr("his hand", "accusative") : tr("%1's hand", "accusative").arg(ownerName);

Английский перевод:

  <message>
    <location filename="../src/cardzone.cpp" line="51"/>
    <source>his hand</source>
    <comment>nominative</comment>
    <translation type="unfinished"></translation>
</message>

1 Ответ

1 голос
/ 20 марта 2011

возможно разделить:

tr("his hand")

на:

tr("his").append("hand")

и затем перевести «его», «ее», «ее», ... отдельно.но будут проблемы с такими языками, как итальянский, где есть личные суффиксы ...

альтернатива:

tr("his hand");
tr("her hand");
//...

и перевод их всех.

РЕДАКТИРОВАТЬ:Вторая показанная альтернатива также используется во многих других играх (например, oolite, ...), потому что это единственный способ убедиться, что не будет проблем (например, суффиксы вместо префиксов ...) в других языках.

Кстати, что скажут Konami или Nintendo, когда поймут, что вы создаете игровое поле с открытым исходным кодом Yu-Gi-Oh! / Pokemon?никто не купит их карты: -P

...