introduced more general grammatical cases
This commit is contained in:
parent
8f6de6637f
commit
b26444435c
5 changed files with 1893 additions and 1810 deletions
|
@ -49,34 +49,100 @@ QString CardZone::getTranslatedName(bool hisOwn, GrammaticalCase gc) const
|
|||
QString ownerName = player->getName();
|
||||
bool female = player->getUserInfo()->gender() == ServerInfo_User::Female;
|
||||
if (name == "hand")
|
||||
switch (gc) {
|
||||
case CaseNominative: return female ? (hisOwn ? tr("her hand", "nominative, female owner") : tr("%1's hand", "nominative, female owner").arg(ownerName)) : (hisOwn ? tr("his hand", "nominative, male owner") : tr("%1's hand", "nominative, male owner").arg(ownerName));
|
||||
case CaseGenitive: return female ? (hisOwn ? tr("of her hand", "genitive, female owner") : tr("of %1's hand", "genitive, female owner").arg(ownerName)) : (hisOwn ? tr("of his hand", "genitive, male owner") : tr("of %1's hand", "genitive, male owner").arg(ownerName));
|
||||
case CaseAccusative: return female ? (hisOwn ? tr("her hand", "accusative, female owner") : tr("%1's hand", "accusative, female owner").arg(ownerName)) : (hisOwn ? tr("his hand", "accusative, male owner") : tr("%1's hand", "accusative, male owner").arg(ownerName));
|
||||
}
|
||||
return female
|
||||
? (hisOwn
|
||||
? tr("her hand", "nominative, female owner")
|
||||
: tr("%1's hand", "nominative, female owner").arg(ownerName)
|
||||
) : (hisOwn
|
||||
? tr("his hand", "nominative, male owner")
|
||||
: tr("%1's hand", "nominative, male owner").arg(ownerName)
|
||||
);
|
||||
else if (name == "deck")
|
||||
switch (gc) {
|
||||
case CaseNominative: return female ? (hisOwn ? tr("her library", "nominative, female owner") : tr("%1's library", "nominative, female owner").arg(ownerName)) : (hisOwn ? tr("his library", "nominative, male owner") : tr("%1's library", "nominative, male owner").arg(ownerName));
|
||||
case CaseGenitive: return female ? (hisOwn ? tr("of her library", "genitive, female owner") : tr("of %1's library", "genitive, female owner").arg(ownerName)) : (hisOwn ? tr("of his library", "genitive, male owner") : tr("of %1's library", "genitive, male owner").arg(ownerName));
|
||||
case CaseAccusative: return female ? (hisOwn ? tr("her library", "accusative, female owner") : tr("%1's library", "accusative, female owner").arg(ownerName)) : (hisOwn ? tr("his library", "accusative, male owner") : tr("%1's library", "accusative, male owner").arg(ownerName));
|
||||
case CaseLookAtZone:
|
||||
return female
|
||||
? (hisOwn
|
||||
? tr("her library", "look at zone, female owner")
|
||||
: tr("%1's library", "look at zone, female owner").arg(ownerName)
|
||||
) : (hisOwn
|
||||
? tr("his library", "look at zone, male owner")
|
||||
: tr("%1's library", "look at zone, male owner").arg(ownerName)
|
||||
);
|
||||
case CaseTopCardsOfZone:
|
||||
return female
|
||||
? (hisOwn
|
||||
? tr("of her library", "top cards of zone, female owner")
|
||||
: tr("of %1's library", "top cards of zone, female owner").arg(ownerName)
|
||||
) : (hisOwn
|
||||
? tr("of his library", "top cards of zone, male owner")
|
||||
: tr("of %1's library", "top cards of zone, male owner").arg(ownerName)
|
||||
);
|
||||
case CaseRevealZone:
|
||||
return female
|
||||
? (hisOwn
|
||||
? tr("her library", "reveal zone, female owner")
|
||||
: tr("%1's library", "reveal zone, female owner").arg(ownerName)
|
||||
) : (hisOwn
|
||||
? tr("his library", "reveal zone, male owner")
|
||||
: tr("%1's library", "reveal zone, male owner").arg(ownerName)
|
||||
);
|
||||
case CaseShuffleZone:
|
||||
return female
|
||||
? (hisOwn
|
||||
? tr("her library", "shuffle, female owner")
|
||||
: tr("%1's library", "shuffle, female owner").arg(ownerName)
|
||||
) : (hisOwn
|
||||
? tr("his library", "shuffle, male owner")
|
||||
: tr("%1's library", "shuffle, male owner").arg(ownerName)
|
||||
);
|
||||
default:
|
||||
return female
|
||||
? (hisOwn
|
||||
? tr("her library", "nominative, female owner")
|
||||
: tr("%1's library", "nominative, female owner").arg(ownerName)
|
||||
) : (hisOwn
|
||||
? tr("his library", "nominative, male owner")
|
||||
: tr("%1's library", "nominative, male owner").arg(ownerName)
|
||||
);
|
||||
}
|
||||
else if (name == "grave")
|
||||
switch (gc) {
|
||||
case CaseNominative: return female ? (hisOwn ? tr("her graveyard", "nominative, female owner") : tr("%1's graveyard", "nominative, female owner").arg(ownerName)) : (hisOwn ? tr("his graveyard", "nominative, male owner") : tr("%1's graveyard", "nominative, male owner").arg(ownerName));
|
||||
case CaseGenitive: return female ? (hisOwn ? tr("of her graveyard", "genitive, female owner") : tr("of %1's graveyard", "genitive, female owner").arg(ownerName)) : (hisOwn ? tr("of his graveyard", "genitive, male owner") : tr("of %1's graveyard", "genitive, male owner").arg(ownerName));
|
||||
case CaseAccusative: return female ? (hisOwn ? tr("her graveyard", "accusative, female owner") : tr("%1's graveyard", "accusative, female owner").arg(ownerName)) : (hisOwn ? tr("his graveyard", "accusative, male owner") : tr("%1's graveyard", "accusative, male owner").arg(ownerName));
|
||||
}
|
||||
return female
|
||||
? (hisOwn
|
||||
? tr("her graveyard", "nominative, female owner")
|
||||
: tr("%1's graveyard", "nominative, female owner").arg(ownerName)
|
||||
) : (hisOwn
|
||||
? tr("his graveyard", "nominative, male owner")
|
||||
: tr("%1's graveyard", "nominative, male owner").arg(ownerName)
|
||||
);
|
||||
else if (name == "rfg")
|
||||
switch (gc) {
|
||||
case CaseNominative: return female ? (hisOwn ? tr("her exile", "nominative, female owner") : tr("%1's exile", "nominative, female owner").arg(ownerName)) : (hisOwn ? tr("his exile", "nominative, male owner") : tr("%1's exile", "nominative, male owner").arg(ownerName));
|
||||
case CaseGenitive: return female ? (hisOwn ? tr("of her exile", "genitive, female owner") : tr("of %1's exile", "genitive, female owner").arg(ownerName)) : (hisOwn ? tr("of his exile", "genitive, male owner") : tr("of %1's exile", "genitive, male owner").arg(ownerName));
|
||||
case CaseAccusative: return female ? (hisOwn ? tr("her exile", "accusative, female owner") : tr("%1's exile", "accusative, female owner").arg(ownerName)) : (hisOwn ? tr("his exile", "accusative, male owner") : tr("%1's exile", "accusative, male owner").arg(ownerName));
|
||||
}
|
||||
return female
|
||||
? (hisOwn
|
||||
? tr("her exile", "nominative, female owner")
|
||||
: tr("%1's exile", "nominative, female owner").arg(ownerName)
|
||||
) : (hisOwn
|
||||
? tr("his exile", "nominative, male owner")
|
||||
: tr("%1's exile", "nominative, male owner").arg(ownerName)
|
||||
);
|
||||
else if (name == "sb")
|
||||
switch (gc) {
|
||||
case CaseNominative: return female ? (hisOwn ? tr("her sideboard", "nominative, female owner") : tr("%1's sideboard", "nominative, female owner").arg(ownerName)) : (hisOwn ? tr("his sideboard", "nominative, male owner") : tr("%1's sideboard", "nominative, male owner").arg(ownerName));
|
||||
case CaseGenitive: return female ? (hisOwn ? tr("of her sideboard", "genitive, female owner") : tr("of %1's sideboard", "genitive, female owner").arg(ownerName)) : (hisOwn ? tr("of his sideboard", "genitive, male owner") : tr("of %1's sideboard", "genitive, male owner").arg(ownerName));
|
||||
case CaseAccusative: return female ? (hisOwn ? tr("her sideboard", "accusative, female owner") : tr("%1's sideboard", "accusative, female owner").arg(ownerName)) : (hisOwn ? tr("his sideboard", "accusative, male owner") : tr("%1's sideboard", "accusative, male owner").arg(ownerName));
|
||||
case CaseLookAtZone:
|
||||
return female
|
||||
? (hisOwn
|
||||
? tr("her sideboard", "look at zone, female owner")
|
||||
: tr("%1's sideboard", "look at zone, female owner").arg(ownerName)
|
||||
) : (hisOwn
|
||||
? tr("his sideboard", "look at zone, male owner")
|
||||
: tr("%1's sideboard", "look at zone, male owner").arg(ownerName)
|
||||
);
|
||||
case CaseNominative:
|
||||
return female
|
||||
? (hisOwn
|
||||
? tr("her sideboard", "nominative, female owner")
|
||||
: tr("%1's sideboard", "nominative, female owner").arg(ownerName)
|
||||
) : (hisOwn
|
||||
? tr("his sideboard", "nominative, male owner")
|
||||
: tr("%1's sideboard", "nominative, male owner").arg(ownerName)
|
||||
);
|
||||
}
|
||||
return QString();
|
||||
}
|
||||
|
|
|
@ -161,10 +161,11 @@ void MessageLogWidget::logShuffle(Player *player, CardZone *zone)
|
|||
{
|
||||
soundEngine->shuffle();
|
||||
if (currentContext != MessageContext_Mulligan) {
|
||||
if (isFemale(player))
|
||||
appendHtml(tr("%1 shuffles %2.", "female").arg(sanitizeHtml(player->getName())).arg(zone->getTranslatedName(true, CaseAccusative)));
|
||||
else
|
||||
appendHtml(tr("%1 shuffles %2.", "male").arg(sanitizeHtml(player->getName())).arg(zone->getTranslatedName(true, CaseAccusative)));
|
||||
appendHtml((isFemale(player)
|
||||
? tr("%1 shuffles %2.", "female")
|
||||
: tr("%1 shuffles %2.", "male")
|
||||
).arg(sanitizeHtml(player->getName()))
|
||||
.arg(zone->getTranslatedName(true, CaseShuffleZone)));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -648,26 +649,27 @@ void MessageLogWidget::logSetAnnotation(Player *player, CardItem *card, QString
|
|||
|
||||
void MessageLogWidget::logDumpZone(Player *player, CardZone *zone, int numberCards)
|
||||
{
|
||||
if (numberCards != -1) {
|
||||
if (isFemale(player))
|
||||
appendHtml(tr("%1 is looking at the top %2 cards %3.", "female").arg(sanitizeHtml(player->getName())).arg(numberCards).arg(zone->getTranslatedName(zone->getPlayer() == player, CaseGenitive)));
|
||||
else
|
||||
appendHtml(tr("%1 is looking at the top %2 cards %3.", "male").arg(sanitizeHtml(player->getName())).arg(numberCards).arg(zone->getTranslatedName(zone->getPlayer() == player, CaseGenitive)));
|
||||
} else {
|
||||
if (isFemale(player))
|
||||
appendHtml(tr("%1 is looking at %2.", "female").arg(sanitizeHtml(player->getName())).arg(zone->getTranslatedName(zone->getPlayer() == player, CaseAccusative)));
|
||||
else
|
||||
appendHtml(tr("%1 is looking at %2.", "male").arg(sanitizeHtml(player->getName())).arg(zone->getTranslatedName(zone->getPlayer() == player, CaseAccusative)));
|
||||
}
|
||||
if (numberCards == -1)
|
||||
appendHtml((isFemale(player)
|
||||
? tr("%1 is looking at %2.", "female")
|
||||
: tr("%1 is looking at %2.", "male")
|
||||
).arg(sanitizeHtml(player->getName()))
|
||||
.arg(zone->getTranslatedName(zone->getPlayer() == player, CaseLookAtZone)));
|
||||
else
|
||||
appendHtml((isFemale(player)
|
||||
? tr("%1 is looking at the top %n card(s) %2.", "female", numberCards)
|
||||
: tr("%1 is looking at the top %n card(s) %2.", "male", numberCards)
|
||||
).arg(sanitizeHtml(player->getName()))
|
||||
.arg(zone->getTranslatedName(zone->getPlayer() == player, CaseTopCardsOfZone)));
|
||||
}
|
||||
|
||||
void MessageLogWidget::logStopDumpZone(Player *player, CardZone *zone)
|
||||
{
|
||||
QString zoneName = zone->getTranslatedName(zone->getPlayer() == player, CaseAccusative);
|
||||
if (isFemale(player))
|
||||
appendHtml(tr("%1 stops looking at %2.", "female").arg(sanitizeHtml(player->getName())).arg(zoneName));
|
||||
else
|
||||
appendHtml(tr("%1 stops looking at %2.", "male").arg(sanitizeHtml(player->getName())).arg(zoneName));
|
||||
appendHtml((isFemale(player)
|
||||
? tr("%1 stops looking at %2.", "female")
|
||||
: tr("%1 stops looking at %2.", "male")
|
||||
).arg(sanitizeHtml(player->getName()))
|
||||
.arg(zone->getTranslatedName(zone->getPlayer() == player, CaseLookAtZone)));
|
||||
}
|
||||
|
||||
void MessageLogWidget::logRevealCards(Player *player, CardZone *zone, int cardId, QString cardName, Player *otherPlayer, bool faceDown)
|
||||
|
@ -702,12 +704,13 @@ void MessageLogWidget::logRevealCards(Player *player, CardZone *zone, int cardId
|
|||
else
|
||||
str = tr("%1 reveals %2 to %3.", "p1 male, p2 male");
|
||||
}
|
||||
appendHtml(str.arg(sanitizeHtml(player->getName())).arg(zone->getTranslatedName(true, CaseAccusative)).arg(sanitizeHtml(otherPlayer->getName())));
|
||||
appendHtml(str.arg(sanitizeHtml(player->getName())).arg(zone->getTranslatedName(true, CaseRevealZone)).arg(sanitizeHtml(otherPlayer->getName())));
|
||||
} else {
|
||||
if (isFemale(player))
|
||||
appendHtml(tr("%1 reveals %2.", "female").arg(sanitizeHtml(player->getName())).arg(zone->getTranslatedName(true, CaseAccusative)));
|
||||
else
|
||||
appendHtml(tr("%1 reveals %2.", "male").arg(sanitizeHtml(player->getName())).arg(zone->getTranslatedName(true, CaseAccusative)));
|
||||
appendHtml((isFemale(player)
|
||||
? tr("%1 reveals %2.", "female")
|
||||
: tr("%1 reveals %2.", "male")
|
||||
).arg(sanitizeHtml(player->getName()))
|
||||
.arg(zone->getTranslatedName(true, CaseRevealZone)));
|
||||
}
|
||||
} else if (cardId == -2) {
|
||||
if (otherPlayer) {
|
||||
|
@ -725,7 +728,7 @@ void MessageLogWidget::logRevealCards(Player *player, CardZone *zone, int cardId
|
|||
appendHtml(str.arg(sanitizeHtml(player->getName())).arg(cardStr).arg(fromStr).arg(sanitizeHtml(otherPlayer->getName())));
|
||||
} else {
|
||||
if (isFemale(player))
|
||||
appendHtml(tr("%1 randomly reveals %2%3.", "female").arg(sanitizeHtml(player->getName())).arg(zone->getTranslatedName(true, CaseAccusative)));
|
||||
appendHtml(tr("%1 randomly reveals %2%3.", "female").arg(sanitizeHtml(player->getName())).arg(cardStr).arg(fromStr));
|
||||
else
|
||||
appendHtml(tr("%1 randomly reveals %2%3.", "male").arg(sanitizeHtml(player->getName())).arg(cardStr).arg(fromStr));
|
||||
}
|
||||
|
@ -759,7 +762,7 @@ void MessageLogWidget::logRevealCards(Player *player, CardZone *zone, int cardId
|
|||
appendHtml(str.arg(sanitizeHtml(player->getName())).arg(cardStr).arg(fromStr).arg(sanitizeHtml(otherPlayer->getName())));
|
||||
} else {
|
||||
if (isFemale(player))
|
||||
appendHtml(tr("%1 reveals %2%3.", "female").arg(sanitizeHtml(player->getName())).arg(zone->getTranslatedName(true, CaseAccusative)));
|
||||
appendHtml(tr("%1 reveals %2%3.", "female").arg(sanitizeHtml(player->getName())).arg(cardStr).arg(fromStr));
|
||||
else
|
||||
appendHtml(tr("%1 reveals %2%3.", "male").arg(sanitizeHtml(player->getName())).arg(cardStr).arg(fromStr));
|
||||
}
|
||||
|
@ -768,13 +771,12 @@ void MessageLogWidget::logRevealCards(Player *player, CardZone *zone, int cardId
|
|||
|
||||
void MessageLogWidget::logAlwaysRevealTopCard(Player *player, CardZone *zone, bool reveal)
|
||||
{
|
||||
QString str;
|
||||
if (reveal)
|
||||
str = tr("%1 is now keeping the top card %2 revealed.");
|
||||
else
|
||||
str = tr("%1 is not revealing the top card %2 any longer.");
|
||||
|
||||
appendHtml(str.arg(sanitizeHtml(player->getName())).arg(zone->getTranslatedName(true, CaseGenitive)));
|
||||
appendHtml((reveal
|
||||
? tr("%1 is now keeping the top card %2 revealed.")
|
||||
: tr("%1 is not revealing the top card %2 any longer.")
|
||||
).arg(sanitizeHtml(player->getName()))
|
||||
.arg(zone->getTranslatedName(true, CaseTopCardsOfZone))
|
||||
);
|
||||
}
|
||||
|
||||
void MessageLogWidget::logSetActivePlayer(Player *player)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#ifndef TRANSLATION_H
|
||||
#define TRANSLATION_H
|
||||
|
||||
enum GrammaticalCase { CaseNominative, CaseGenitive, CaseAccusative };
|
||||
enum GrammaticalCase { CaseNominative, CaseLookAtZone, CaseTopCardsOfZone, CaseRevealZone, CaseShuffleZone };
|
||||
|
||||
#endif
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue