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