Begin adding gender neutral translation strings

The repeated text is necessary because the translation keys are
extracted from the source code text - runtime variable values can't be
used to distinguish them.
This commit is contained in:
Gavin Bises 2015-01-30 16:58:11 -05:00
parent d0ca0ab6a3
commit 6624e47820

View file

@ -36,51 +36,77 @@ ServerInfo_User::Gender MessageLogWidget::currentUserGender() const
return ServerInfo_User::GenderUnknown;
}
const char* MessageLogWidget::trGenderHint(const ServerInfo_User::Gender gender) const
{
switch (gender) {
case ServerInfo_User::GenderUnknown:
return "unspecified gender";
case ServerInfo_User::Male:
return "male";
case ServerInfo_User::Female:
return "female";
case ServerInfo_User::Neutral:
return "gender neutral";
}
}
void MessageLogWidget::logGameJoined(int gameId)
{
if (userIsFemale())
appendHtml(tr("You have joined game #%1.", "female").arg(gameId));
else
appendHtml(tr("You have joined game #%1.", "male").arg(gameId));
switch (currentUserGender()) {
case ServerInfo_User::GenderUnknown:
appendHtml(tr("You have joined game #%1", "unspecified gender").arg(gameId));
break;
case ServerInfo_User::Male:
appendHtml(tr("You have joined game #%1", "male").arg(gameId));
break;
case ServerInfo_User::Female:
appendHtml(tr("You have joined game #%1", "female").arg(gameId));
break;
case ServerInfo_User::Neutral:
appendHtml(tr("You have joined game #%1", "gender neutral").arg(gameId));
break;
}
}
void MessageLogWidget::logReplayStarted(int gameId)
{
if (userIsFemale())
appendHtml(tr("You are watching a replay of game #%1.", "female").arg(gameId));
else
switch (currentUserGender()) {
case ServerInfo_User::GenderUnknown:
appendHtml(tr("You are watching a replay of game #%1.", "unspecified gender").arg(gameId));
break;
case ServerInfo_User::Male:
appendHtml(tr("You are watching a replay of game #%1.", "male").arg(gameId));
break;
case ServerInfo_User::Female:
appendHtml(tr("You are watching a replay of game #%1.", "female").arg(gameId));
break;
case ServerInfo_User::Neutral:
appendHtml(tr("You are watching a replay of game #%1.", "gender neutral").arg(gameId));
break;
}
}
void MessageLogWidget::logJoin(Player *player)
{
soundEngine->cuckoo();
if (isFemale(player))
appendHtml(tr("%1 has joined the game.", "female").arg(sanitizeHtml(player->getName())));
else
switch (genderOf(player)) {
case ServerInfo_User::GenderUnknown:
appendHtml(tr("%1 has joined the game.", "unspecified gender").arg(sanitizeHtml(player->getName())));
break;
case ServerInfo_User::Male:
appendHtml(tr("%1 has joined the game.", "male").arg(sanitizeHtml(player->getName())));
break;
case ServerInfo_User::Female:
appendHtml(tr("%1 has joined the game.", "female").arg(sanitizeHtml(player->getName())));
break;
case ServerInfo_User::Neutral:
appendHtml(tr("%1 has joined the game.", "gender neutral").arg(sanitizeHtml(player->getName())));
break;
}
}
void MessageLogWidget::logLeave(Player *player)
{
if (isFemale(player))
appendHtml(tr("%1 has left the game.", "female").arg(sanitizeHtml(player->getName())));
else
switch (genderOf(player)) {
case ServerInfo_User::GenderUnknown:
appendHtml(tr("%1 has left the game.", "unspecified gender").arg(sanitizeHtml(player->getName())));
break;
case ServerInfo_User::Male:
appendHtml(tr("%1 has left the game.", "male").arg(sanitizeHtml(player->getName())));
break;
case ServerInfo_User::Female:
appendHtml(tr("%1 has left the game.", "female").arg(sanitizeHtml(player->getName())));
break;
case ServerInfo_User::Neutral:
appendHtml(tr("%1 has left the game.", "gender neutral").arg(sanitizeHtml(player->getName())));
break;
}
}
void MessageLogWidget::logGameClosed()
@ -90,7 +116,20 @@ void MessageLogWidget::logGameClosed()
void MessageLogWidget::logKicked()
{
appendHtml(tr("You have been kicked out of the game."));
switch (currentUserGender()) {
case ServerInfo_User::GenderUnknown:
appendHtml(tr("You have been kicked out of the game.", "unspecified gender"));
break;
case ServerInfo_User::Male:
appendHtml(tr("You have been kicked out of the game.", "male"));
break;
case ServerInfo_User::Female:
appendHtml(tr("You have been kicked out of the game.", "female"));
break;
case ServerInfo_User::Neutral:
appendHtml(tr("You have been kicked out of the game.", "gender neutral"));
break;
}
}
void MessageLogWidget::logJoinSpectator(QString name)
@ -105,53 +144,139 @@ void MessageLogWidget::logLeaveSpectator(QString name)
void MessageLogWidget::logDeckSelect(Player *player, QString deckHash, int sideboardSize)
{
const char* gender = isFemale(player) ? "female" : "male";
const char* gender = genderOf(player);
if (sideboardSize < 0)
appendHtml(tr("%1 has loaded a deck (%2).", gender).arg(sanitizeHtml(player->getName())).arg(deckHash));
switch(gender) {
case ServerInfo_User::GenderUnknown:
appendHtml(tr("%1 has loaded a deck (%2).", "unspecified gender").arg(sanitizeHtml(player->getName())));
break;
case ServerInfo_User::Neutral:
appendHtml(tr("%1 has loaded a deck (%2).", "gender neutral").arg(sanitizeHtml(player->getName())));
break;
case ServerInfo_User::Female:
appendHtml(tr("%1 has loaded a deck (%2).", "female").arg(sanitizeHtml(player->getName())));
break;
case ServerInfo_User::Male:
appendHtml(tr("%1 has loaded a deck (%2).", "male").arg(sanitizeHtml(player->getName())));
break;
}
else
appendHtml(tr("%1 has loaded a deck with %2 sideboard cards (%3).", gender).
switch(gender) {
case ServerInfo_User::GenderUnknown:
appendHtml(tr("%1 has loaded a deck with %2 sideboard cards (%3).", "unspecified gender").
arg(sanitizeHtml(player->getName())).
arg(sideboardSize).
arg(deckHash));
break;
case ServerInfo_User::Neutral:
appendHtml(tr("%1 has loaded a deck with %2 sideboard cards (%3).", "gender neutral").
arg(sanitizeHtml(player->getName())).
arg(sideboardSize).
arg(deckHash));
break;
case ServerInfo_User::Female:
appendHtml(tr("%1 has loaded a deck with %2 sideboard cards (%3).", "female").
arg(sanitizeHtml(player->getName())).
arg(sideboardSize).
arg(deckHash));
break;
case ServerInfo_User::Male:
appendHtml(tr("%1 has loaded a deck with %2 sideboard cards (%3).", "male").
arg(sanitizeHtml(player->getName())).
arg(sideboardSize).
arg(deckHash));
break;
}
}
void MessageLogWidget::logReadyStart(Player *player)
{
if (isFemale(player))
switch(genderOf(player)) {
case ServerInfo_User::GenderUnknown:
appendHtml(tr("%1 is ready to start the game.", "unspecified gender").arg(sanitizeHtml(player->getName())));
break;
case ServerInfo_User::Neutral:
appendHtml(tr("%1 is ready to start the game.", "gender neutral").arg(sanitizeHtml(player->getName())));
break;
case ServerInfo_User::Female:
appendHtml(tr("%1 is ready to start the game.", "female").arg(sanitizeHtml(player->getName())));
else
break;
case ServerInfo_User::Male:
appendHtml(tr("%1 is ready to start the game.", "male").arg(sanitizeHtml(player->getName())));
break;
}
}
void MessageLogWidget::logNotReadyStart(Player *player)
{
if (isFemale(player))
switch(genderOf(player)) {
case ServerInfo_User::GenderUnknown:
appendHtml(tr("%1 is not ready to start the game any more.", "unspecified gender").arg(sanitizeHtml(player->getName())));
break;
case ServerInfo_User::Neutral:
appendHtml(tr("%1 is not ready to start the game any more.", "gender neutral").arg(sanitizeHtml(player->getName())));
break;
case ServerInfo_User::Female:
appendHtml(tr("%1 is not ready to start the game any more.", "female").arg(sanitizeHtml(player->getName())));
else
break;
case ServerInfo_User::Male:
appendHtml(tr("%1 is not ready to start the game any more.", "male").arg(sanitizeHtml(player->getName())));
break;
}
}
void MessageLogWidget::logSetSideboardLock(Player *player, bool locked)
{
ServerInfo_User::Gender gender = genderOf(player);
if (locked) {
if (isFemale(player))
switch(gender) {
case ServerInfo_User::GenderUnknown:
appendHtml(tr("%1 has locked their sideboard.", "unspecified gender").arg(sanitizeHtml(player->getName())));
break;
case ServerInfo_User::Neutral:
appendHtml(tr("%1 has locked their sideboard.", "gender neutral").arg(sanitizeHtml(player->getName())));
break;
case ServerInfo_User::Female:
appendHtml(tr("%1 has locked her sideboard.", "female").arg(sanitizeHtml(player->getName())));
else
break;
case ServerInfo_User::Male:
appendHtml(tr("%1 has locked his sideboard.", "male").arg(sanitizeHtml(player->getName())));
break;
}
} else {
if (isFemale(player))
switch(gender) {
case ServerInfo_User::GenderUnknown:
appendHtml(tr("%1 has unlocked their sideboard.", "unspecified gender").arg(sanitizeHtml(player->getName())));
break;
case ServerInfo_User::Neutral:
appendHtml(tr("%1 has unlocked their sideboard.", "gender neutral").arg(sanitizeHtml(player->getName())));
break;
case ServerInfo_User::Female:
appendHtml(tr("%1 has unlocked her sideboard.", "female").arg(sanitizeHtml(player->getName())));
else
break;
case ServerInfo_User::Male:
appendHtml(tr("%1 has unlocked his sideboard.", "male").arg(sanitizeHtml(player->getName())));
break;
}
}
}
void MessageLogWidget::logConcede(Player *player)
{
if (isFemale(player))
switch(genderOf(player)) {
case ServerInfo_User::GenderUnknown:
appendHtml(tr("%1 has conceded the game.", "unspecified gender").arg(sanitizeHtml(player->getName())));
break;
case ServerInfo_User::Neutral:
appendHtml(tr("%1 has conceded the game.", "gender neutral").arg(sanitizeHtml(player->getName())));
break;
case ServerInfo_User::Female:
appendHtml(tr("%1 has conceded the game.", "female").arg(sanitizeHtml(player->getName())));
else
break;
case ServerInfo_User::Male:
appendHtml(tr("%1 has conceded the game.", "male").arg(sanitizeHtml(player->getName())));
break;
}
}
void MessageLogWidget::logGameStart()
@ -162,15 +287,35 @@ void MessageLogWidget::logGameStart()
void MessageLogWidget::logConnectionStateChanged(Player *player, bool connectionState)
{
if (connectionState) {
if (isFemale(player))
switch(genderOf(player)) {
case ServerInfo_User::GenderUnknown:
appendHtml(tr("%1 has restored connection to the game.", "unspecified gender").arg(sanitizeHtml(player->getName())));
break;
case ServerInfo_User::Neutral:
appendHtml(tr("%1 has restored connection to the game.", "gender neutral").arg(sanitizeHtml(player->getName())));
break;
case ServerInfo_User::Female:
appendHtml(tr("%1 has restored connection to the game.", "female").arg(sanitizeHtml(player->getName())));
else
break;
case ServerInfo_User::Male:
appendHtml(tr("%1 has restored connection to the game.", "male").arg(sanitizeHtml(player->getName())));
break;
}
} else {
if (isFemale(player))
switch(genderOf(player)) {
case ServerInfo_User::GenderUnknown:
appendHtml(tr("%1 has lost connection to the game.", "unspecified gender").arg(sanitizeHtml(player->getName())));
break;
case ServerInfo_User::Neutral:
appendHtml(tr("%1 has lost connection to the game.", "gender neutral").arg(sanitizeHtml(player->getName())));
break;
case ServerInfo_User::Female:
appendHtml(tr("%1 has lost connection to the game.", "female").arg(sanitizeHtml(player->getName())));
else
break;
case ServerInfo_User::Male:
appendHtml(tr("%1 has lost connection to the game.", "male").arg(sanitizeHtml(player->getName())));
break;
}
}
}
@ -188,11 +333,28 @@ void MessageLogWidget::logShuffle(Player *player, CardZone *zone)
{
soundEngine->shuffle();
if (currentContext != MessageContext_Mulligan) {
appendHtml((isFemale(player)
? tr("%1 shuffles %2.", "female")
: tr("%1 shuffles %2.", "male")
).arg(sanitizeHtml(player->getName()))
.arg(zone->getTranslatedName(true, CaseShuffleZone)));
switch(genderOf(player)) {
case ServerInfo_User::GenderUnknown:
appendHtml(tr("%1 shuffles %2.", "unspecified gender").
arg(sanitizeHtml(player->getName())).
arg(zone->getTranslatedName(true, CaseShuffleZone)));
break;
case ServerInfo_User::Neutral:
appendHtml(tr("%1 shuffles %2.", "gender neutral").
arg(sanitizeHtml(player->getName())).
arg(zone->getTranslatedName(true, CaseShuffleZone)));
break;
case ServerInfo_User::Female:
appendHtml(tr("%1 shuffles %2.", "female").
arg(sanitizeHtml(player->getName())).
arg(zone->getTranslatedName(true, CaseShuffleZone)));
break;
case ServerInfo_User::Male:
appendHtml(tr("%1 shuffles %2.", "male").
arg(sanitizeHtml(player->getName())).
arg(zone->getTranslatedName(true, CaseShuffleZone)));
break;
}
}
}