簡體   English   中英

如何在Qt的QTranslator中翻譯性別代詞

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM