Update Lang.java so it can support other languages.

Also translated phase/step names
This commit is contained in:
Lyu Zong-Hong
2021-02-22 19:55:05 +09:00
parent 43b12c3289
commit e1f68bd06c
29 changed files with 345 additions and 82 deletions

View File

@@ -172,7 +172,7 @@ public class GameLogFormatter extends IGameEventVisitor.Base<GameLogEntry> {
@Override
public GameLogEntry visit(GameEventTurnPhase ev) {
Player p = ev.playerTurn;
return new GameLogEntry(GameLogEntryType.PHASE, ev.phaseDesc + Lang.getPossesive(p.getName()) + " " + ev.phase.nameForUi);
return new GameLogEntry(GameLogEntryType.PHASE, ev.phaseDesc + Lang.getInstance().getPossesive(p.getName()) + " " + ev.phase.nameForUi);
}
@Override

View File

@@ -46,7 +46,7 @@ public class DigEffect extends SpellAbilityEffect {
}
else {
for (final Player p : tgtPlayers) {
sb.append(Lang.getPossesive(p.getName())).append(" ");
sb.append(Lang.getInstance().getPossesive(p.getName())).append(" ");
}
}
sb.append("library.");

View File

@@ -37,7 +37,7 @@ public class RearrangeTopOfLibraryEffect extends SpellAbilityEffect {
ret.append(numCards);
ret.append(" cards of ");
for (final Player p : tgtPlayers) {
ret.append(Lang.getPossesive(p.getName()));
ret.append(Lang.getInstance().getPossesive(p.getName()));
ret.append(" & ");
}
ret.delete(ret.length() - 3, ret.length());

View File

@@ -30,6 +30,6 @@ public class GameEventManaPool extends GameEvent {
*/
@Override
public String toString() {
return TextUtil.concatWithSpace(Lang.getPossesive(player.getName()),"mana pool", mode.toString(), "-", TextUtil.addSuffix(mana.toString()," "));
return TextUtil.concatWithSpace(Lang.getInstance().getPossesive(player.getName()),"mana pool", mode.toString(), "-", TextUtil.addSuffix(mana.toString()," "));
}
}

View File

@@ -22,6 +22,6 @@ public class GameEventPlayerLivesChanged extends GameEvent {
@Override
public String toString() {
return TextUtil.concatWithSpace(Lang.getPossesive(player.getName()),"lives changed:", String.valueOf(oldLives),"->", String.valueOf(newLives));
return TextUtil.concatWithSpace(Lang.getInstance().getPossesive(player.getName()),"lives changed:", String.valueOf(oldLives),"->", String.valueOf(newLives));
}
}

View File

@@ -27,7 +27,7 @@ public class GameEventTurnPhase extends GameEvent {
@Override
public String toString() {
String playerName = Lang.getPossesive(playerTurn.getName());
String playerName = Lang.getInstance().getPossesive(playerTurn.getName());
return TextUtil.concatWithSpace(playerName,"turn,", phaseDesc+phase.nameForUi, "phase");
}
}

View File

@@ -35,7 +35,7 @@ public class GameEventZone extends GameEvent {
*/
@Override
public String toString() {
String owners = player == null ? "Game" : Lang.getPossesive(player.getName());
String owners = player == null ? "Game" : Lang.getInstance().getPossesive(player.getName());
return card == null
? TextUtil.concatWithSpace(owners, zoneType.toString(), ":", mode.toString())
: TextUtil.concatWithSpace(owners, zoneType.toString(), ":", mode.toString(), card.toString()

View File

@@ -3,23 +3,25 @@ package forge.game.phase;
import com.google.common.collect.Lists;
import org.apache.commons.lang3.StringUtils;
import forge.util.Localizer;
import java.util.*;
public enum PhaseType {
UNTAP("Untap"),
UPKEEP("Upkeep"),
DRAW("Draw"),
MAIN1("Main, precombat", "Main1"),
COMBAT_BEGIN("Begin Combat", "BeginCombat"),
COMBAT_DECLARE_ATTACKERS("Declare Attackers"),
COMBAT_DECLARE_BLOCKERS("Declare Blockers"),
COMBAT_FIRST_STRIKE_DAMAGE("First Strike Damage"),
COMBAT_DAMAGE("Combat Damage"),
COMBAT_END("End Combat", "EndCombat"),
MAIN2("Main, postcombat", "Main2"),
END_OF_TURN("End of Turn"),
CLEANUP("Cleanup");
UNTAP("lblUntapStep", "Untap"),
UPKEEP("lblUpkeepStep", "Upkeep"),
DRAW("lblDrawStep", "Draw"),
MAIN1("lblMainPhase1", "Main1"),
COMBAT_BEGIN("lblCombatBeginStep", "BeginCombat"),
COMBAT_DECLARE_ATTACKERS("lblCombatDeclareAttackersStep", "Declare Attackers"),
COMBAT_DECLARE_BLOCKERS("lblCombatDeclareBlockersStep", "Declare Blockers"),
COMBAT_FIRST_STRIKE_DAMAGE("lblCombatFirstStrikeDamageStep", "First Strike Damage"),
COMBAT_DAMAGE("lblCombatDamageStep", "Combat Damage"),
COMBAT_END("lblCombatEndStep", "EndCombat"),
MAIN2("lblMainPhase2", "Main2"),
END_OF_TURN("lblEndStep", "End of Turn"),
CLEANUP("lblCleanupStep", "Cleanup");
public static final List<List<PhaseType>> PHASE_GROUPS = Arrays.asList(
Arrays.asList(UNTAP, UPKEEP, DRAW),
@@ -50,11 +52,8 @@ public enum PhaseType {
public final String nameForUi;
public final String nameForScripts;
PhaseType(String name) {
this(name, name);
}
PhaseType(String name, String name_for_scripts) {
nameForUi = name;
nameForUi = Localizer.getInstance().getMessage(name);
nameForScripts = name_for_scripts;
}

View File

@@ -215,7 +215,7 @@ public class Player extends GameEntity implements Comparable<Player> {
if (!haveDuplicates) {
return nameCandidate;
}
nameCandidate = Lang.getOrdinal(i) + " " + originalName;
nameCandidate = Lang.getInstance().getOrdinal(i) + " " + originalName;
}
return nameCandidate;
}
@@ -3131,7 +3131,7 @@ public class Player extends GameEntity implements Comparable<Player> {
}
public static DetachedCardEffect createCompanionEffect(Game game, Card companion) {
final String name = Lang.getPossesive(companion.getName()) + " Companion Effect";
final String name = Lang.getInstance().getPossesive(companion.getName()) + " Companion Effect";
DetachedCardEffect eff = new DetachedCardEffect(companion, name);
String addToHandAbility = "Mode$ Continuous | EffectZone$ Command | Affected$ Card.YouOwn+EffectSource | AffectedZone$ Command | AddAbility$ MoveToHand";
@@ -3144,7 +3144,7 @@ public class Player extends GameEntity implements Comparable<Player> {
}
public static DetachedCardEffect createCommanderEffect(Game game, Card commander) {
final String name = Lang.getPossesive(commander.getName()) + " Commander Effect";
final String name = Lang.getInstance().getPossesive(commander.getName()) + " Commander Effect";
DetachedCardEffect eff = new DetachedCardEffect(commander, name);
if (game.getRules().hasAppliedVariant(GameType.Oathbreaker) && commander.getRules().canBeSignatureSpell()) {

View File

@@ -102,7 +102,7 @@ public class PlayerZone extends Zone {
@Override
public final String toString() {
return TextUtil.concatWithSpace(Lang.getPossesive(player.toString()), zoneType.toString());
return TextUtil.concatWithSpace(Lang.getInstance().getPossesive(player.toString()), zoneType.toString());
}
public CardCollectionView getCardsPlayerCanActivate(Player who) {

View File

@@ -14,7 +14,7 @@ public class MessageUtil {
public static String formatMessage(String message, Player player, Object related) {
if (related instanceof Player && message.indexOf("{player") >= 0) {
String noun = mayBeYou(player, related);
message = TextUtil.fastReplace(TextUtil.fastReplace(message, "{player}", noun),"{player's}", Lang.getPossesive(noun));
message = TextUtil.fastReplace(TextUtil.fastReplace(message, "{player}", noun),"{player's}", Lang.getInstance().getPossesive(noun));
}
return message;
}
@@ -22,7 +22,7 @@ public class MessageUtil {
public static String formatMessage(String message, PlayerView player, Object related) {
if (related instanceof PlayerView && message.indexOf("{player") >= 0) {
String noun = mayBeYou(player, related);
message = TextUtil.fastReplace(TextUtil.fastReplace(message, "{player}", noun),"{player's}", Lang.getPossesive(noun));
message = TextUtil.fastReplace(TextUtil.fastReplace(message, "{player}", noun),"{player's}", Lang.getInstance().getPossesive(noun));
}
return message;
}
@@ -48,7 +48,7 @@ public class MessageUtil {
case FlipACoin:
String flipper = StringUtils.capitalize(mayBeYou(player, target));
return sa.hasParam("NoCall")
? Localizer.getInstance().getMessage("lblPlayerFlipComesUpValue", Lang.getPossesive(flipper), value)
? Localizer.getInstance().getMessage("lblPlayerFlipComesUpValue", Lang.getInstance().getPossesive(flipper), value)
: Localizer.getInstance().getMessage("lblPlayerActionFlip", flipper, Lang.joinVerb(flipper, value));
case Protection:
return Localizer.getInstance().getMessage("lblPlayerChooseValue", choser, value);
@@ -66,9 +66,9 @@ public class MessageUtil {
}
public static String mayBeYou(Player player, Object what) {
return what == null ? "(null)" : what == player ? "you" : what.toString();
return what == null ? "(null)" : what == player ? Localizer.getInstance().getMessage("lblYou") : what.toString();
}
public static String mayBeYou(PlayerView player, Object what) {
return what == null ? "(null)" : what == player ? "you" : what.toString();
return what == null ? "(null)" : what == player ? Localizer.getInstance().getMessage("lblYou") : what.toString();
}
}