mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-14 09:48:02 +00:00
Update Lang.java so it can support other languages.
Also translated phase/step names
This commit is contained in:
@@ -6,6 +6,8 @@ import java.util.regex.Pattern;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import forge.util.lang.*;
|
||||
|
||||
import com.google.common.base.Function;
|
||||
import com.google.common.collect.Iterables;
|
||||
import com.google.common.collect.Lists;
|
||||
@@ -13,12 +15,39 @@ import com.google.common.collect.Lists;
|
||||
/**
|
||||
* Static library containing language-related utility methods.
|
||||
*/
|
||||
public final class Lang {
|
||||
public abstract class Lang {
|
||||
|
||||
/**
|
||||
* Private constructor to prevent instantiation.
|
||||
*/
|
||||
private Lang() {
|
||||
private static Lang instance;
|
||||
|
||||
protected String languageCode;
|
||||
protected String countryCode;
|
||||
|
||||
public static void createInstance(String localeID) {
|
||||
String[] splitLocale = localeID.split("-");
|
||||
String language = splitLocale[0];
|
||||
String country = splitLocale[1];
|
||||
if (language.equals("de")) {
|
||||
instance = new LangGerman();
|
||||
} else if (language.equals("es")) {
|
||||
instance = new LangSpanish();
|
||||
} else if (language.equals("it")) {
|
||||
instance = new LangItalian();
|
||||
} else if (language.equals("zh")) {
|
||||
instance = new LangChinese();
|
||||
} else if (language.equals("ja")) {
|
||||
instance = new LangJapanese();
|
||||
} else { // default is English
|
||||
instance = new LangEnglish();
|
||||
}
|
||||
instance.languageCode = language;
|
||||
instance.countryCode = country;
|
||||
}
|
||||
|
||||
public static Lang getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
protected Lang() {
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -29,17 +58,7 @@ public final class Lang {
|
||||
* the number to get the ordinal suffix for.
|
||||
* @return a string containing two characters.
|
||||
*/
|
||||
public static String getOrdinal(final int position) {
|
||||
final String[] sufixes = new String[] { "th", "st", "nd", "rd", "th", "th", "th", "th", "th", "th" };
|
||||
switch (position % 100) {
|
||||
case 11:
|
||||
case 12:
|
||||
case 13:
|
||||
return position + "th";
|
||||
default:
|
||||
return position + sufixes[position % 10];
|
||||
}
|
||||
}
|
||||
public abstract String getOrdinal(final int position);
|
||||
|
||||
public static String joinHomogenous(final String s1, final String s2) {
|
||||
final boolean has1 = StringUtils.isNotBlank(s1);
|
||||
@@ -121,16 +140,8 @@ public final class Lang {
|
||||
}
|
||||
}
|
||||
|
||||
public static String getPossesive(final String name) {
|
||||
if ("You".equalsIgnoreCase(name)) {
|
||||
return name + "r"; // to get "your"
|
||||
}
|
||||
return name.endsWith("s") ? name + "'" : name + "'s";
|
||||
}
|
||||
|
||||
public static String getPossessedObject(final String owner, final String object) {
|
||||
return getPossesive(owner) + " " + object;
|
||||
}
|
||||
public abstract String getPossesive(final String name);
|
||||
public abstract String getPossessedObject(final String owner, final String object);
|
||||
|
||||
public static boolean startsWithVowel(final String word) {
|
||||
return isVowel(word.trim().charAt(0));
|
||||
|
||||
22
forge-core/src/main/java/forge/util/lang/LangChinese.java
Normal file
22
forge-core/src/main/java/forge/util/lang/LangChinese.java
Normal file
@@ -0,0 +1,22 @@
|
||||
package forge.util.lang;
|
||||
|
||||
import forge.util.Lang;
|
||||
|
||||
public class LangChinese extends Lang {
|
||||
|
||||
@Override
|
||||
public String getOrdinal(final int position) {
|
||||
return "第" + position;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPossesive(final String name) {
|
||||
return name + "的";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPossessedObject(final String owner, final String object) {
|
||||
return getPossesive(owner) + object;
|
||||
}
|
||||
|
||||
}
|
||||
33
forge-core/src/main/java/forge/util/lang/LangEnglish.java
Normal file
33
forge-core/src/main/java/forge/util/lang/LangEnglish.java
Normal file
@@ -0,0 +1,33 @@
|
||||
package forge.util.lang;
|
||||
|
||||
import forge.util.Lang;
|
||||
|
||||
public class LangEnglish extends Lang {
|
||||
|
||||
@Override
|
||||
public String getOrdinal(final int position) {
|
||||
final String[] sufixes = new String[] { "th", "st", "nd", "rd", "th", "th", "th", "th", "th", "th" };
|
||||
switch (position % 100) {
|
||||
case 11:
|
||||
case 12:
|
||||
case 13:
|
||||
return position + "th";
|
||||
default:
|
||||
return position + sufixes[position % 10];
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPossesive(final String name) {
|
||||
if ("You".equalsIgnoreCase(name)) {
|
||||
return name + "r"; // to get "your"
|
||||
}
|
||||
return name.endsWith("s") ? name + "'" : name + "'s";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPossessedObject(final String owner, final String object) {
|
||||
return getPossesive(owner) + " " + object;
|
||||
}
|
||||
|
||||
}
|
||||
29
forge-core/src/main/java/forge/util/lang/LangGerman.java
Normal file
29
forge-core/src/main/java/forge/util/lang/LangGerman.java
Normal file
@@ -0,0 +1,29 @@
|
||||
package forge.util.lang;
|
||||
|
||||
import forge.util.Lang;
|
||||
|
||||
public class LangGerman extends Lang {
|
||||
|
||||
@Override
|
||||
public String getOrdinal(final int position) {
|
||||
if (position < 20) {
|
||||
return position + "te";
|
||||
}
|
||||
return position + "ste";
|
||||
}
|
||||
|
||||
// TODO: Please update this when you modified lblYou in de-DE.properties
|
||||
@Override
|
||||
public String getPossesive(final String name) {
|
||||
if ("You".equalsIgnoreCase(name)) {
|
||||
return name + "r"; // to get "your"
|
||||
}
|
||||
return name.endsWith("s") ? name + "'" : name + "'s";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPossessedObject(final String owner, final String object) {
|
||||
return getPossesive(owner) + " " + object;
|
||||
}
|
||||
|
||||
}
|
||||
26
forge-core/src/main/java/forge/util/lang/LangItalian.java
Normal file
26
forge-core/src/main/java/forge/util/lang/LangItalian.java
Normal file
@@ -0,0 +1,26 @@
|
||||
package forge.util.lang;
|
||||
|
||||
import forge.util.Lang;
|
||||
|
||||
public class LangItalian extends Lang {
|
||||
|
||||
@Override
|
||||
public String getOrdinal(final int position) {
|
||||
return position + "º";
|
||||
}
|
||||
|
||||
// TODO: Please update this when you modified lblYou in it-IT.properties
|
||||
@Override
|
||||
public String getPossesive(final String name) {
|
||||
if ("You".equalsIgnoreCase(name)) {
|
||||
return name + "r"; // to get "your"
|
||||
}
|
||||
return name.endsWith("s") ? name + "'" : name + "'s";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPossessedObject(final String owner, final String object) {
|
||||
return getPossesive(owner) + " " + object;
|
||||
}
|
||||
|
||||
}
|
||||
22
forge-core/src/main/java/forge/util/lang/LangJapanese.java
Normal file
22
forge-core/src/main/java/forge/util/lang/LangJapanese.java
Normal file
@@ -0,0 +1,22 @@
|
||||
package forge.util.lang;
|
||||
|
||||
import forge.util.Lang;
|
||||
|
||||
public class LangJapanese extends Lang {
|
||||
|
||||
@Override
|
||||
public String getOrdinal(final int position) {
|
||||
return position + "番";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPossesive(final String name) {
|
||||
return name + "の";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPossessedObject(final String owner, final String object) {
|
||||
return getPossesive(owner) + object;
|
||||
}
|
||||
|
||||
}
|
||||
26
forge-core/src/main/java/forge/util/lang/LangSpanish.java
Normal file
26
forge-core/src/main/java/forge/util/lang/LangSpanish.java
Normal file
@@ -0,0 +1,26 @@
|
||||
package forge.util.lang;
|
||||
|
||||
import forge.util.Lang;
|
||||
|
||||
public class LangSpanish extends Lang {
|
||||
|
||||
@Override
|
||||
public String getOrdinal(final int position) {
|
||||
return position + "º";
|
||||
}
|
||||
|
||||
// TODO: Please update this when you modified lblYou in es-ES.properties
|
||||
@Override
|
||||
public String getPossesive(final String name) {
|
||||
if ("You".equalsIgnoreCase(name)) {
|
||||
return name + "r"; // to get "your"
|
||||
}
|
||||
return name.endsWith("s") ? name + "'" : name + "'s";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPossessedObject(final String owner, final String object) {
|
||||
return getPossesive(owner) + " " + object;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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.");
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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()," "));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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()) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,7 +81,7 @@ public class CCombat implements ICDoc {
|
||||
|
||||
if (defender instanceof CardView) {
|
||||
final PlayerView controller = ((CardView) defender).getController();
|
||||
display.append(Lang.getPossesive(controller.getName())).append(" ");
|
||||
display.append(Lang.getInstance().getPossesive(controller.getName())).append(" ");
|
||||
}
|
||||
|
||||
display.append(defender).append(" is attacked by:\n");
|
||||
|
||||
@@ -1944,6 +1944,20 @@ lblRepeatAddCard=Wiederhole letztes Karten-hinzufügen
|
||||
lblRemoveFromGame=Entferne Karte aus dem Spiel
|
||||
lblRiggedRoll=Gezinkter Weltenwürfelwurf
|
||||
lblWalkTo=Weltenwandere zu
|
||||
#PhaseType.java
|
||||
lblUntapStep=Untap step
|
||||
lblUpkeepStep=Upkeep step
|
||||
lblDrawStep=Draw step
|
||||
lblMainPhase1=Main phase, precombat
|
||||
lblCombatBeginStep=Beginning of Combat Step
|
||||
lblCombatDeclareAttackersStep=Declare Attackers Step
|
||||
lblCombatDeclareBlockersStep=Declare Blockers Step
|
||||
lblCombatFirstStrikeDamageStep=First Strike Damage Step
|
||||
lblCombatDamageStep=Combat Damage Step
|
||||
lblCombatEndStep=End of Combat Step
|
||||
lblMainPhase2=Main phase, postcombat
|
||||
lblEndStep=End step
|
||||
lblCleanupStep=Cleanup step
|
||||
#ZoneType.java
|
||||
lblHandZone=Hand
|
||||
lblLibraryZone=Bibliothek
|
||||
@@ -2052,6 +2066,8 @@ lblPlayerChooseValue={0} wähle {1}
|
||||
lblPlayerVoteValue={0} stimme für {1}
|
||||
lblCardEffectValueIs=Der Wert von {0}s Effekt ist {1}
|
||||
lblCardEffectToTargetValueIs=Der Wert von {0}s Effekt für {1} ist {2}
|
||||
# TODO: If below is changed, also need to modify LangGerman.getPossesive() function
|
||||
lblYou=you
|
||||
#CardListChooser.java
|
||||
lblAreYouSureWantPickCard=Willst du wirklich "{0}" nehmen?
|
||||
lblSelectThisCardConfirm=Wähle diese Karte?
|
||||
|
||||
@@ -1944,6 +1944,20 @@ lblRepeatAddCard=Repeat Last Add Card
|
||||
lblRemoveFromGame=Remove Card from Game
|
||||
lblRiggedRoll=Rigged Planar Roll
|
||||
lblWalkTo=Planeswalk to
|
||||
#PhaseType.java
|
||||
lblUntapStep=Untap step
|
||||
lblUpkeepStep=Upkeep step
|
||||
lblDrawStep=Draw step
|
||||
lblMainPhase1=Main phase, precombat
|
||||
lblCombatBeginStep=Beginning of Combat Step
|
||||
lblCombatDeclareAttackersStep=Declare Attackers Step
|
||||
lblCombatDeclareBlockersStep=Declare Blockers Step
|
||||
lblCombatFirstStrikeDamageStep=First Strike Damage Step
|
||||
lblCombatDamageStep=Combat Damage Step
|
||||
lblCombatEndStep=End of Combat Step
|
||||
lblMainPhase2=Main phase, postcombat
|
||||
lblEndStep=End step
|
||||
lblCleanupStep=Cleanup step
|
||||
#ZoneType.java
|
||||
lblHandZone=hand
|
||||
lblLibraryZone=library
|
||||
@@ -2052,6 +2066,7 @@ lblPlayerChooseValue={0} choose {1}
|
||||
lblPlayerVoteValue={0} vote {1}
|
||||
lblCardEffectValueIs={0} effect''s value is {1}
|
||||
lblCardEffectToTargetValueIs={0} effect''s value for {1} is {2}
|
||||
lblYou=you
|
||||
#CardListChooser.java
|
||||
lblAreYouSureWantPickCard=Are you sure you want to pick ''{0}'' ?
|
||||
lblSelectThisCardConfirm=Select this card?
|
||||
|
||||
@@ -1942,6 +1942,20 @@ lblRepeatAddCard=Repetir añadir última carta
|
||||
lblRemoveFromGame=Quitar carta del juego
|
||||
lblRiggedRoll=Rollo Plano montado
|
||||
lblWalkTo=Planeswalk a
|
||||
#PhaseType.java
|
||||
lblUntapStep=Untap step
|
||||
lblUpkeepStep=Upkeep step
|
||||
lblDrawStep=Draw step
|
||||
lblMainPhase1=Main phase, precombat
|
||||
lblCombatBeginStep=Beginning of Combat Step
|
||||
lblCombatDeclareAttackersStep=Declare Attackers Step
|
||||
lblCombatDeclareBlockersStep=Declare Blockers Step
|
||||
lblCombatFirstStrikeDamageStep=First Strike Damage Step
|
||||
lblCombatDamageStep=Combat Damage Step
|
||||
lblCombatEndStep=End of Combat Step
|
||||
lblMainPhase2=Main phase, postcombat
|
||||
lblEndStep=End step
|
||||
lblCleanupStep=Cleanup step
|
||||
#ZoneType.java
|
||||
lblHandZone=mano
|
||||
lblLibraryZone=biblioteca
|
||||
@@ -2050,6 +2064,8 @@ lblPlayerChooseValue={0} elige {1}
|
||||
lblPlayerVoteValue={0} vota {1}
|
||||
lblCardEffectValueIs=El valor del efecto de {0} es {1}
|
||||
lblCardEffectToTargetValueIs=El valor del efecto de {0} para {1} es {2}
|
||||
# TODO: If below is changed, also need to modify LangSpanish.getPossesive() function
|
||||
lblYou=you
|
||||
#CardListChooser.java
|
||||
lblAreYouSureWantPickCard=¿Estás seguro de que quieres elegir ''{0}''?
|
||||
lblSelectThisCardConfirm=¿Selecciona esta carta?
|
||||
|
||||
@@ -1944,6 +1944,20 @@ lblRepeatAddCard=Repeat Last Add Card
|
||||
lblRemoveFromGame=Remove Card from Game
|
||||
lblRiggedRoll=Rigged Planar Roll
|
||||
lblWalkTo=Planeswalk to
|
||||
#PhaseType.java
|
||||
lblUntapStep=Untap step
|
||||
lblUpkeepStep=Upkeep step
|
||||
lblDrawStep=Draw step
|
||||
lblMainPhase1=Main phase, precombat
|
||||
lblCombatBeginStep=Beginning of Combat Step
|
||||
lblCombatDeclareAttackersStep=Declare Attackers Step
|
||||
lblCombatDeclareBlockersStep=Declare Blockers Step
|
||||
lblCombatFirstStrikeDamageStep=First Strike Damage Step
|
||||
lblCombatDamageStep=Combat Damage Step
|
||||
lblCombatEndStep=End of Combat Step
|
||||
lblMainPhase2=Main phase, postcombat
|
||||
lblEndStep=End step
|
||||
lblCleanupStep=Cleanup step
|
||||
#ZoneType.java
|
||||
lblHandZone=hand
|
||||
lblLibraryZone=library
|
||||
@@ -2052,6 +2066,8 @@ lblPlayerChooseValue={0} choose {1}
|
||||
lblPlayerVoteValue={0} vote {1}
|
||||
lblCardEffectValueIs={0} effect''s value is {1}
|
||||
lblCardEffectToTargetValueIs={0} effect''s value for {1} is {2}
|
||||
# TODO: If below is changed, also need to modify LangItalian.getPossesive() function
|
||||
lblYou=you
|
||||
#CardListChooser.java
|
||||
lblAreYouSureWantPickCard=Are you sure you want to pick ''{0}'' ?
|
||||
lblSelectThisCardConfirm=Select this card?
|
||||
|
||||
@@ -337,10 +337,10 @@ lblTeam=チーム
|
||||
lblKeep=キープ
|
||||
lblYouAreGoingFirst=あなたが先攻です
|
||||
lblIsGoingFirst=が先攻です
|
||||
lblYouAreGoing=あなたは後攻です
|
||||
lblYouAreGoing=あなたの順番は
|
||||
lblMulligan=マリガン
|
||||
lblDoYouWantToKeepYourHand=手札をキープしますか?
|
||||
lblReturnForLondon=ライブラリの一番下に %d枚カードを返してください
|
||||
lblReturnForLondon=ライブラリの一番下に %d枚カードを戻してください
|
||||
lblOk=Ok
|
||||
lblReset=リセット
|
||||
lblAuto=自動
|
||||
@@ -1158,7 +1158,7 @@ lblPriority=優先権
|
||||
lblTurn=ターン
|
||||
lblPhase=フェイズ
|
||||
lblEmpty=なし
|
||||
lbltoResolve=に対して解決する。
|
||||
lbltoResolve=つ解決中。
|
||||
lblStormCount=ストームカウント
|
||||
#InputAttack.java
|
||||
lblCallBack=呼び戻す
|
||||
@@ -1304,9 +1304,9 @@ lblErrorEntityWithId=Error: Entity with ID
|
||||
lblNotFound=not found
|
||||
lblChooseAnnounceForCard={1}の{0}を選ぶ
|
||||
lblSacrifice=生け贄
|
||||
lblLookCardInPlayerZone={0}の{1}のカードを見る
|
||||
lblLookCardInPlayerZone={0} {1}のカードを見る
|
||||
lblPlayerZone={0} {1}
|
||||
lblActionFromPlayerDeck={1}のデッキから{0}
|
||||
lblActionFromPlayerDeck={1}デッキから{0}
|
||||
#AbstractGuiGame.java
|
||||
lblConcedeCurrentGame=これは現在のゲームを投了し、負けます。とにかく投了しますか?
|
||||
lblConcedeTitle=ゲームを投了する?
|
||||
@@ -1384,24 +1384,24 @@ lblLogSurveiledToLibraryGraveyard={0}は諜報で {1}枚のカードをカード
|
||||
lblLogSurveiledToLibrary={0}は諜報で {1}枚のカードをカードをライブラリーのトップに置きました
|
||||
lblLogSurveiledToGraveyard={0}は諜報で {1}枚のカードを墓地に置きました
|
||||
lblLogCardAbilityFizzles={0}の能力が立ち消えしました
|
||||
lblCast=唱える
|
||||
lblTriggered=誘発された
|
||||
lblActivated=起動された
|
||||
lblLogPlayerActionObjectWitchTarget={3}を対象に{0} {1} {2}
|
||||
lblLogPlayerActionObject={0} {1} {2}
|
||||
lblCast=を唱えた
|
||||
lblTriggered=が誘発された
|
||||
lblActivated=を起動した
|
||||
lblLogPlayerActionObjectWitchTarget={0}: {3}を対象に {2} {1}
|
||||
lblLogPlayerActionObject={0}: {2} {1}
|
||||
lblLogPlayerChosenModeForCard={0}は {2}の {1}を選択しました。
|
||||
lblLogPlayerHasRestoredControlThemself={0}は自身の制御が戻りました
|
||||
lblLogPlayerControlledTargetPlayer={0}は {1}によって制御されます
|
||||
lblDeathtouch=接死
|
||||
lblAsM1M1Counters=同等の -1/-1カウンター
|
||||
lblRemovingNLoyaltyCounter={0}個忠誠カウンターを除去
|
||||
lblSourceDealsNDamageToDest={0}は {3}に対して {1}のダメージ({2})。
|
||||
lblSourceDealsNDamageToDest={0}は {3}に対して {1}点のダメージ({2})。
|
||||
lblLogPlayerPlayedLand={0}が {1}を置きました
|
||||
lblLogTurnNOwnerByPlayer=ターン{0}({1})
|
||||
lblLogAsPoisonCounters=(同等の毒カウンター)
|
||||
lblCombat=戦闘
|
||||
lblNonCombat=非戦闘
|
||||
lblLogSourceDealsNDamageOfTypeToDest={0}は {3}{4}に対して{1} {2}のダメージを与えました。
|
||||
lblLogSourceDealsNDamageOfTypeToDest={0}は {3}{4}に対して{1} {2}点のダメージを与えました。
|
||||
lblLogPlayerReceivesNPosionCounterFrom={0}は {2}から {1}個毒カウンターを貰いました。
|
||||
lblLogPlayerAssignedAttackerToAttackTarget={0}は {1}を {2}の攻撃に指定しました。
|
||||
lblLogPlayerDidntBlockAttacker={0}が {1}をブロックしていません。
|
||||
@@ -1736,14 +1736,14 @@ lblChooseColorReplace=置き換える色を表す単語を選ぶ
|
||||
lblChooseNewColor=別の色の単語を選ぶ
|
||||
#ChangeZoneEffect.java
|
||||
lblDoYouWantMoveTargetFromOriToDest={0}を {1}から {2}へ移動しますか?
|
||||
lblPutThatCardFromPlayerOriginToDestination=カードを {0}の {1}から {2}へ移動します
|
||||
lblSearchPlayerZoneConfirm={0}の {1}を探しますか?
|
||||
lblPutThatCardFromPlayerOriginToDestination=カードを {0} {1}から {2}へ移動します
|
||||
lblSearchPlayerZoneConfirm={0} {1}を探しますか?
|
||||
lblCardMatchSearchingTypeInAlternateZones=枚もう一つの領域のカードが探すタイプと一致します。
|
||||
lblLookingCardIn=カードを見る
|
||||
lblDoYouWantPlayCard={0}をプレイしますか?
|
||||
lblSelectCardFromPlayerZone={0}の {1}から 1枚のカードを選ぶ
|
||||
lblSelectUpToNumCardFromPlayerZone={1}の {2}から最大 {0}枚のカードを選ぶ
|
||||
lblSelectCardsFromPlayerZone={0}の {1}からカードを選ぶ
|
||||
lblSelectCardFromPlayerZone={0} {1}から 1枚のカードを選ぶ
|
||||
lblSelectUpToNumCardFromPlayerZone={1} {2}から最大 {0}枚のカードを選ぶ
|
||||
lblSelectCardsFromPlayerZone={0} {1}からカードを選ぶ
|
||||
lblCancelSearchUpToSelectNumCards=探しを中止しますか? あと {0}枚までカードを選びます。
|
||||
#ChangeZoneAllEffect.java
|
||||
lblMoveTargetFromOriginToDestination={0}を {1}から {2}へ移動しますか?
|
||||
@@ -1754,7 +1754,7 @@ lblTotalPowerNum=パワーの合計:{0}
|
||||
lblCancelChooseConfirm=選びを中止しますか?
|
||||
#ChooseCardNameEffect.java
|
||||
lblChooseACardName=カード名 1つを選ぶ
|
||||
lblChooseASpecificCard={0}のカード名 1つを選ぶ
|
||||
lblChooseASpecificCard={0}カード名 1つを選ぶ
|
||||
lblPlayerPickedChosen={0}が {1}を選択した
|
||||
#ChooseColorEffect.java
|
||||
lblChooseAColor=色 1色を選ぶ
|
||||
@@ -1944,6 +1944,20 @@ lblRepeatAddCard=Repeat Last Add Card
|
||||
lblRemoveFromGame=Remove Card from Game
|
||||
lblRiggedRoll=Rigged Planar Roll
|
||||
lblWalkTo=Planeswalk to
|
||||
#PhaseType.java
|
||||
lblUntapStep=アンタップ・ステップ
|
||||
lblUpkeepStep=アップキープ・ステップ
|
||||
lblDrawStep=ドロー・ステップ
|
||||
lblMainPhase1=戦闘前メイン・フェイズ
|
||||
lblCombatBeginStep=戦闘開始ステップ
|
||||
lblCombatDeclareAttackersStep=攻撃クリーチャー指定ステップ
|
||||
lblCombatDeclareBlockersStep=ブロック・クリーチャー指定ステップ
|
||||
lblCombatFirstStrikeDamageStep=先制戦闘ダメージ・ステップ
|
||||
lblCombatDamageStep=通常戦闘ダメージ・ステップ
|
||||
lblCombatEndStep=戦闘終了ステップ
|
||||
lblMainPhase2=戦闘後メイン・フェイズ
|
||||
lblEndStep=終了ステップ
|
||||
lblCleanupStep=クリンナップ・ステップ
|
||||
#ZoneType.java
|
||||
lblHandZone=手札
|
||||
lblLibraryZone=ライブラリー
|
||||
@@ -2052,6 +2066,7 @@ lblPlayerChooseValue={0}は{1}を選択します
|
||||
lblPlayerVoteValue={0}は{1}票を投票した
|
||||
lblCardEffectValueIs={0}の効果の値は{1}です
|
||||
lblCardEffectToTargetValueIs={1}の{0}効果の値は{2}です
|
||||
lblYou=あなた
|
||||
#CardListChooser.java
|
||||
lblAreYouSureWantPickCard=「{0}」選択してもいいですか?
|
||||
lblSelectThisCardConfirm=このカードを選択しますか?
|
||||
|
||||
@@ -336,7 +336,7 @@ lblTeam=团队
|
||||
lblKeep=保留
|
||||
lblYouAreGoingFirst=你先手
|
||||
lblIsGoingFirst=是先手
|
||||
lblYouAreGoing=你将
|
||||
lblYouAreGoing=你是
|
||||
lblMulligan=调度
|
||||
lblDoYouWantToKeepYourHand=你想保留这个手牌吗?
|
||||
lblReturnForLondon=放回%d张牌到牌库底
|
||||
@@ -1942,6 +1942,20 @@ lblRepeatAddCard=重复上一张添加的牌
|
||||
lblRemoveFromGame=从游戏中删除牌
|
||||
lblRiggedRoll=触发时空骰
|
||||
lblWalkTo=时空换入
|
||||
#PhaseType.java
|
||||
lblUntapStep=Untap step
|
||||
lblUpkeepStep=Upkeep step
|
||||
lblDrawStep=Draw step
|
||||
lblMainPhase1=Main phase, precombat
|
||||
lblCombatBeginStep=Beginning of Combat Step
|
||||
lblCombatDeclareAttackersStep=Declare Attackers Step
|
||||
lblCombatDeclareBlockersStep=Declare Blockers Step
|
||||
lblCombatFirstStrikeDamageStep=First Strike Damage Step
|
||||
lblCombatDamageStep=Combat Damage Step
|
||||
lblCombatEndStep=End of Combat Step
|
||||
lblMainPhase2=Main phase, postcombat
|
||||
lblEndStep=End step
|
||||
lblCleanupStep=Cleanup step
|
||||
#ZoneType.java
|
||||
lblHandZone=手牌
|
||||
lblLibraryZone=牌库
|
||||
@@ -2050,6 +2064,7 @@ lblPlayerChooseValue={0}选择{1}
|
||||
lblPlayerVoteValue={0}投票给{1}
|
||||
lblCardEffectValueIs={0}效应的值为{1}
|
||||
lblCardEffectToTargetValueIs={0}对{1}的影响的值为{2}
|
||||
lblYou=你
|
||||
#CardListChooser.java
|
||||
lblAreYouSureWantPickCard=确定要选择''{0}''吗?
|
||||
lblSelectThisCardConfirm=选择这张牌?
|
||||
|
||||
@@ -198,7 +198,7 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base<Void> {
|
||||
final List<CardView> options = Lists.newArrayList();
|
||||
for (final Entry<Player, Card> kv : ev.cards.entries()) {
|
||||
//use fake card so real cards appear with proper formatting
|
||||
final CardView fakeCard = new CardView(-1, null, " -- From " + Lang.getPossesive(kv.getKey().getName()) + " deck --");
|
||||
final CardView fakeCard = new CardView(-1, null, " -- From " + Lang.getInstance().getPossesive(kv.getKey().getName()) + " deck --");
|
||||
options.add(fakeCard);
|
||||
options.add(kv.getValue().getView());
|
||||
}
|
||||
|
||||
@@ -67,7 +67,7 @@ public class InputConfirmMulligan extends InputSyncronizedBase {
|
||||
}
|
||||
else {
|
||||
sb.append(startingPlayer.getName()).append(" ").append(localizer.getMessage("lblIsGoingFirst")).append(".\n");
|
||||
sb.append(player).append(", ").append(localizer.getMessage("lblYouAreGoing")).append(" ").append(Lang.getOrdinal(game.getPosition(player, startingPlayer))).append(".\n\n");
|
||||
sb.append(player).append(", ").append(localizer.getMessage("lblYouAreGoing")).append(" ").append(Lang.getInstance().getOrdinal(game.getPosition(player, startingPlayer))).append(".\n\n");
|
||||
}
|
||||
|
||||
getController().getGui().updateButtons(getOwner(), localizer.getMessage("lblKeep"), localizer.getMessage("lblMulligan"), true, true, true);
|
||||
|
||||
@@ -52,6 +52,7 @@ import forge.quest.data.QuestPreferences;
|
||||
import forge.tournament.TournamentData;
|
||||
import forge.util.CardTranslation;
|
||||
import forge.util.FileUtil;
|
||||
import forge.util.Lang;
|
||||
import forge.util.Localizer;
|
||||
import forge.util.storage.IStorage;
|
||||
import forge.util.storage.StorageBase;
|
||||
@@ -126,6 +127,7 @@ public final class FModel {
|
||||
throw new RuntimeException(exn);
|
||||
}
|
||||
|
||||
Lang.createInstance(FModel.getPreferences().getPref(FPref.UI_LANGUAGE));
|
||||
Localizer.getInstance().initialize(FModel.getPreferences().getPref(FPref.UI_LANGUAGE), ForgeConstants.LANG_DIR);
|
||||
|
||||
final ProgressObserver progressBarBridge = (progressBar == null) ?
|
||||
|
||||
@@ -1874,7 +1874,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
|
||||
@Override
|
||||
public void revealAnte(final String message, final Multimap<Player, PaperCard> removedAnteCards) {
|
||||
for (final Player p : removedAnteCards.keySet()) {
|
||||
getGui().reveal(localizer.getMessage("lblActionFromPlayerDeck", message, Lang.getPossessedObject(MessageUtil.mayBeYou(player, p), "")),
|
||||
getGui().reveal(localizer.getMessage("lblActionFromPlayerDeck", message, Lang.getInstance().getPossessedObject(MessageUtil.mayBeYou(player, p), "")),
|
||||
ImmutableList.copyOf(removedAnteCards.get(p)));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user