![](/img/trans.png)
[英]How to change the language with a radioButton in Qt? Qtranslator Dynamic Language
[英]How to translate gendered pronouns in Qt's QTranslator
我正在看一個開源的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>
也許拆分:
tr("his hand")
成:
tr("his").append("hand")
然后單獨翻譯“他的”,“她的”,“它的”...... 但是像意大利語這樣的語言會有一些問題,那里有個人后綴......
替代方案:
tr("his hand");
tr("her hand");
//...
並將它們全部翻譯。
編輯:顯示的第二個替代方案也用於許多其他游戲(如oolite,...),因為這是確保在其他語言中不會出現問題(如后綴而不是前綴...)的唯一方法。
順便說一句Konami或任天堂會說什么,當他們意識到你正在創造一個開源的Yu-Gi-Oh!/ Pokemon游戲場? 沒有人會買他們的卡:-P
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.