From e9f2d1cb604d3b35df38f263eff267682ffb8d91 Mon Sep 17 00:00:00 2001 From: Scoppio Date: Tue, 17 Dec 2024 09:59:27 -0300 Subject: [PATCH] chore: following naming convention inside the I18n class --- MekHQ/src/mekhq/MekHQ.java | 26 ++++----- .../autoresolve/AutoResolveMethod.java | 6 +- .../acar/action/AttackToHitData.java | 52 +++++++++--------- .../action/EngagementControlToHitData.java | 42 +++++++------- .../acar/action/ManeuverToHitData.java | 34 ++++++------ .../RecoveringNerveActionToHitData.java | 24 ++++---- .../acar/action/WithdrawToHitData.java | 16 +++--- .../acar/handler/WithdrawActionHandler.java | 4 +- .../{I18n.java => Internationalization.java} | 55 ++++++------------- 9 files changed, 119 insertions(+), 140 deletions(-) rename MekHQ/src/mekhq/utilities/{I18n.java => Internationalization.java} (58%) diff --git a/MekHQ/src/mekhq/MekHQ.java b/MekHQ/src/mekhq/MekHQ.java index 4f522e30a3..4d03224e58 100644 --- a/MekHQ/src/mekhq/MekHQ.java +++ b/MekHQ/src/mekhq/MekHQ.java @@ -63,7 +63,7 @@ import mekhq.gui.utilities.ObservableString; import mekhq.service.AutosaveService; import mekhq.service.IAutosaveService; -import mekhq.utilities.I18n; +import mekhq.utilities.Internationalization; import org.apache.commons.lang3.time.StopWatch; import javax.swing.*; @@ -538,8 +538,8 @@ public void gameVictory(PostGameResolution gve) { try { boolean control = yourSideControlsTheBattlefieldDialogAsk( - I18n.t("ResolveDialog.control.message"), - I18n.t("ResolveDialog.control.title")); + Internationalization.getText("ResolveDialog.control.message"), + Internationalization.getText("ResolveDialog.control.title")); ResolveScenarioTracker tracker = new ResolveScenarioTracker(currentScenario, getCampaign(), control); tracker.setClient(gameThread.getClient()); tracker.setEvent(gve); @@ -570,8 +570,8 @@ public void resolveScenario(Scenario selectedScenario) { return; } boolean control = yourSideControlsTheBattlefieldDialogAsk( - I18n.t("ResolveDialog.control.message"), - I18n.t("ResolveDialog.control.title")); + Internationalization.getText("ResolveDialog.control.message"), + Internationalization.getText("ResolveDialog.control.title")); ResolveScenarioTracker tracker = new ResolveScenarioTracker(selectedScenario, getCampaign(), control); @@ -645,7 +645,7 @@ public IconPackage getIconPackage() { * @param units The list of player units involved in the scenario */ public void startAutoResolve(AtBScenario scenario, List units) { - String message = I18n.t("AutoResolveDialog.message"); + String message = Internationalization.getText("AutoResolveDialog.message"); var numberOfSimulations = NUMBER_OF_COMBAT_SIMULATIONS; if (getCampaign().getCampaignOptions().isAutoResolveVictoryChanceEnabled()) { @@ -654,7 +654,7 @@ public void startAutoResolve(AtBScenario scenario, List units) { var simulatedVictories = calculateNumberOfVictories(numberOfSimulations, scenario, units); stopWatch.stop(); if (simulatedVictories.getRuns() == 0 && simulatedVictories.getRuns() < numberOfSimulations) { - message = I18n.t("AutoResolveDialog.messageFailedCalc"); + message = Internationalization.getText("AutoResolveDialog.messageFailedCalc"); logger.debug("No combat scenarios were simulated, possible error!"); } else { var timePerRun = stopWatch.getTime() / (numberOfSimulations / Runtime.getRuntime().availableProcessors()); @@ -666,7 +666,7 @@ public void startAutoResolve(AtBScenario scenario, List units) { timePerRun, stopWatch.toString()); - message = I18n.ft("AutoResolveDialog.messageSimulated", + message = Internationalization.getFormattedText("AutoResolveDialog.messageSimulated", simulatedVictories.getRuns(), simulatedVictories.getVictories(), simulatedVictories.getLosses(), @@ -675,7 +675,7 @@ public void startAutoResolve(AtBScenario scenario, List units) { } } - String title = I18n.t("AutoResolveDialog.title"); + String title = Internationalization.getText("AutoResolveDialog.title"); boolean proceed = JOptionPane.showConfirmDialog(campaignGUI.getFrame(), message, title, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE) == JOptionPane.YES_OPTION; @@ -694,11 +694,11 @@ public void startAutoResolve(AtBScenario scenario, List units) { public void autoResolveConcluded(AutoResolveConcludedEvent autoResolveConcludedEvent) { try { String message = autoResolveConcludedEvent.controlledScenario() ? - I18n.t("AutoResolveDialog.message.victory") : - I18n.t("AutoResolveDialog.message.defeat"); + Internationalization.getText("AutoResolveDialog.message.victory") : + Internationalization.getText("AutoResolveDialog.message.defeat"); String title = autoResolveConcludedEvent.controlledScenario() ? - I18n.t("AutoResolveDialog.victory") : - I18n.t("AutoResolveDialog.defeat"); + Internationalization.getText("AutoResolveDialog.victory") : + Internationalization.getText("AutoResolveDialog.defeat"); boolean control = yourSideControlsTheBattlefieldDialogAsk(message, title); var scenario = autoResolveConcludedEvent.getScenario(); diff --git a/MekHQ/src/mekhq/campaign/autoresolve/AutoResolveMethod.java b/MekHQ/src/mekhq/campaign/autoresolve/AutoResolveMethod.java index 7ec9081040..03ac3e7834 100644 --- a/MekHQ/src/mekhq/campaign/autoresolve/AutoResolveMethod.java +++ b/MekHQ/src/mekhq/campaign/autoresolve/AutoResolveMethod.java @@ -19,7 +19,7 @@ package mekhq.campaign.autoresolve; -import mekhq.utilities.I18n; +import mekhq.utilities.Internationalization; import java.util.Optional; @@ -34,8 +34,8 @@ public enum AutoResolveMethod { private final String toolTipText; AutoResolveMethod(final String name, final String toolTipText) { - this.name = I18n.t("AutoResolveMethod", name); - this.toolTipText = I18n.t("AutoResolveMethod", toolTipText); + this.name = Internationalization.getTextAt("AutoResolveMethod", name); + this.toolTipText = Internationalization.getTextAt("AutoResolveMethod", toolTipText); } public String getToolTipText() { diff --git a/MekHQ/src/mekhq/campaign/autoresolve/acar/action/AttackToHitData.java b/MekHQ/src/mekhq/campaign/autoresolve/acar/action/AttackToHitData.java index aa68cfd54c..c708a6a371 100644 --- a/MekHQ/src/mekhq/campaign/autoresolve/acar/action/AttackToHitData.java +++ b/MekHQ/src/mekhq/campaign/autoresolve/acar/action/AttackToHitData.java @@ -24,7 +24,7 @@ import megamek.common.strategicBattleSystems.SBFUnit; import mekhq.campaign.autoresolve.acar.SimulationContext; import mekhq.campaign.autoresolve.component.Formation; -import mekhq.utilities.I18n; +import mekhq.utilities.Internationalization; import java.util.List; @@ -36,12 +36,12 @@ public AttackToHitData(int value, String desc) { public static AttackToHitData compileToHit(SimulationContext game, StandardUnitAttack attack) { if (!attack.isDataValid(game)) { - return new AttackToHitData(TargetRoll.IMPOSSIBLE, I18n.t("acar.invalid_attack")); + return new AttackToHitData(TargetRoll.IMPOSSIBLE, Internationalization.getText("acar.invalid_attack")); } var attackingFormation = game.getFormation(attack.getEntityId()).orElseThrow(); var unit = attackingFormation.getUnits().get(attack.getUnitNumber()); - var toHit = new AttackToHitData(attackingFormation.getSkill(), I18n.t("acar.skill")); + var toHit = new AttackToHitData(attackingFormation.getSkill(), Internationalization.getText("acar.skill")); processCriticalDamage(toHit, attackingFormation, attack); processRange(toHit, attack); @@ -56,38 +56,38 @@ public static AttackToHitData compileToHit(SimulationContext game, StandardUnitA private static void processCriticalDamage(AttackToHitData toHit, Formation formation, StandardUnitAttack attack) { SBFUnit combatUnit = formation.getUnits().get(attack.getUnitNumber()); if (combatUnit.getTargetingCrits() > 0) { - toHit.addModifier(combatUnit.getTargetingCrits(), I18n.t("acar.critical_target_damage")); + toHit.addModifier(combatUnit.getTargetingCrits(), Internationalization.getText("acar.critical_target_damage")); } } private static void processCombatUnit(AttackToHitData toHit, SBFUnit unit) { switch (unit.getSkill()) { - case 7 -> toHit.addModifier(+4, I18n.t("acar.skill_7")); - case 6 -> toHit.addModifier(+3, I18n.t("acar.skill_6")); - case 5 -> toHit.addModifier(+2, I18n.t("acar.skill_5")); - case 4 -> toHit.addModifier(+1, I18n.t("acar.skill_4")); - case 3 -> toHit.addModifier(0, I18n.t("acar.skill_3")); - case 2 -> toHit.addModifier(-1, I18n.t("acar.skill_2")); - case 1 -> toHit.addModifier(-2, I18n.t("acar.skill_1")); - case 0 -> toHit.addModifier(-3, I18n.t("acar.skill_0")); - default -> toHit.addModifier(TargetRoll.IMPOSSIBLE, I18n.t("acar.invalid_skill")); + case 7 -> toHit.addModifier(+4, Internationalization.getText("acar.skill_7")); + case 6 -> toHit.addModifier(+3, Internationalization.getText("acar.skill_6")); + case 5 -> toHit.addModifier(+2, Internationalization.getText("acar.skill_5")); + case 4 -> toHit.addModifier(+1, Internationalization.getText("acar.skill_4")); + case 3 -> toHit.addModifier(0, Internationalization.getText("acar.skill_3")); + case 2 -> toHit.addModifier(-1, Internationalization.getText("acar.skill_2")); + case 1 -> toHit.addModifier(-2, Internationalization.getText("acar.skill_1")); + case 0 -> toHit.addModifier(-3, Internationalization.getText("acar.skill_0")); + default -> toHit.addModifier(TargetRoll.IMPOSSIBLE, Internationalization.getText("acar.invalid_skill")); } } private static void processRange(AttackToHitData toHit, StandardUnitAttack attack) { var range = attack.getRange(); switch (range) { - case SHORT -> toHit.addModifier(-1, I18n.t( "acar.short_range")); - case MEDIUM -> toHit.addModifier(+2, I18n.t("acar.medium_range")); - case LONG -> toHit.addModifier(+4, I18n.t("acar.long_range")); - case EXTREME -> toHit.addModifier(TargetRoll.IMPOSSIBLE, I18n.t( "acar.extreme_range")); + case SHORT -> toHit.addModifier(-1, Internationalization.getText( "acar.short_range")); + case MEDIUM -> toHit.addModifier(+2, Internationalization.getText("acar.medium_range")); + case LONG -> toHit.addModifier(+4, Internationalization.getText("acar.long_range")); + case EXTREME -> toHit.addModifier(TargetRoll.IMPOSSIBLE, Internationalization.getText( "acar.extreme_range")); } } private static void processTMM(AttackToHitData toHit, SimulationContext game, StandardUnitAttack attack) { var target = game.getFormation(attack.getTargetId()).orElseThrow(); if (target.getTmm() > 0) { - toHit.addModifier(target.getTmm(), I18n.t( "acar.TMM")); + toHit.addModifier(target.getTmm(), Internationalization.getText( "acar.TMM")); } } @@ -95,29 +95,29 @@ private static void processJUMP(AttackToHitData toHit, SimulationContext game, S var attacker = game.getFormation(attack.getEntityId()).orElseThrow(); var target = game.getFormation(attack.getTargetId()).orElseThrow(); if (attacker.getJumpUsedThisTurn() > 0) { - toHit.addModifier(attacker.getJumpUsedThisTurn(), I18n.t("acar.attacker_JUMP")); + toHit.addModifier(attacker.getJumpUsedThisTurn(), Internationalization.getText("acar.attacker_JUMP")); } if (target.getJumpUsedThisTurn() > 0) { - toHit.addModifier(attacker.getJumpUsedThisTurn(), I18n.t("acar.target_JUMP")); + toHit.addModifier(attacker.getJumpUsedThisTurn(), Internationalization.getText("acar.target_JUMP")); } } private static void processMorale(AttackToHitData toHit, SimulationContext game, StandardUnitAttack attack) { var target = game.getFormation(attack.getTargetId()).orElseThrow(); switch (target.moraleStatus()) { - case SHAKEN -> toHit.addModifier(1, I18n.t("acar.shaken")); - case UNSTEADY -> toHit.addModifier(2, I18n.t("acar.unsteady")); - case BROKEN -> toHit.addModifier(3, I18n.t("acar.broken")); - case ROUTED -> toHit.addModifier(4, I18n.t("acar.routed")); + case SHAKEN -> toHit.addModifier(1, Internationalization.getText("acar.shaken")); + case UNSTEADY -> toHit.addModifier(2, Internationalization.getText("acar.unsteady")); + case BROKEN -> toHit.addModifier(3, Internationalization.getText("acar.broken")); + case ROUTED -> toHit.addModifier(4, Internationalization.getText("acar.routed")); } } private static void processSecondaryTarget(AttackToHitData toHit, SimulationContext game, StandardUnitAttack attack) { var attacker = game.getFormation(attack.getEntityId()).orElseThrow(); if (targetsOfFormation(attacker, game).size() > 2) { - toHit.addModifier(TargetRoll.IMPOSSIBLE, I18n.t("acar.more_than_two_targets")); + toHit.addModifier(TargetRoll.IMPOSSIBLE, Internationalization.getText("acar.more_than_two_targets")); } else if (targetsOfFormation(attacker, game).size() == 2) { - toHit.addModifier(+1, I18n.t("acar.two_targets")); + toHit.addModifier(+1, Internationalization.getText("acar.two_targets")); } } diff --git a/MekHQ/src/mekhq/campaign/autoresolve/acar/action/EngagementControlToHitData.java b/MekHQ/src/mekhq/campaign/autoresolve/acar/action/EngagementControlToHitData.java index 8f5f258796..6b0691ba54 100644 --- a/MekHQ/src/mekhq/campaign/autoresolve/acar/action/EngagementControlToHitData.java +++ b/MekHQ/src/mekhq/campaign/autoresolve/acar/action/EngagementControlToHitData.java @@ -22,7 +22,7 @@ import megamek.common.TargetRoll; import mekhq.campaign.autoresolve.acar.SimulationContext; import mekhq.campaign.autoresolve.component.Formation; -import mekhq.utilities.I18n; +import mekhq.utilities.Internationalization; public class EngagementControlToHitData extends TargetRoll { @@ -32,15 +32,15 @@ public EngagementControlToHitData(int value, String desc) { public static EngagementControlToHitData compileToHit(SimulationContext game, EngagementControlAction engagementControl) { if (engagementControl.isInvalid(game)) { - return new EngagementControlToHitData(TargetRoll.IMPOSSIBLE, I18n.t("acar.invalid_engagement_control")); + return new EngagementControlToHitData(TargetRoll.IMPOSSIBLE, Internationalization.getText("acar.invalid_engagement_control")); } var attackingFormationOpt = game.getFormation(engagementControl.getEntityId()); if (attackingFormationOpt.isEmpty()) { - return new EngagementControlToHitData(TargetRoll.IMPOSSIBLE, I18n.t("acar.invalid_attacking_formation")); + return new EngagementControlToHitData(TargetRoll.IMPOSSIBLE, Internationalization.getText("acar.invalid_attacking_formation")); } var attackingFormation = attackingFormationOpt.get(); - var toHit = new EngagementControlToHitData(attackingFormation.getTactics(), I18n.t("acar.formation_tactics")); + var toHit = new EngagementControlToHitData(attackingFormation.getTactics(), Internationalization.getText("acar.formation_tactics")); processFormationModifiers(toHit, game, engagementControl); processMorale(toHit, game, engagementControl); processEngagementAndControlChosen(toHit, game, engagementControl); @@ -53,10 +53,10 @@ private static void processEngagementAndControlChosen( EngagementControlToHitData toHit, SimulationContext game, EngagementControlAction engagementControl) { switch (engagementControl.getEngagementControl()) { case FORCED_ENGAGEMENT: - toHit.addModifier(-3, I18n.t("acar.force_engagement")); + toHit.addModifier(-3, Internationalization.getText("acar.force_engagement")); break; case EVADE: - toHit.addModifier(-3, I18n.t("acar.evade")); + toHit.addModifier(-3, Internationalization.getText("acar.evade")); break; case OVERRUN: processSizeDifference(toHit, game, engagementControl); @@ -68,14 +68,14 @@ private static void processEngagementAndControlChosen( private static void processPlayerSkill(EngagementControlToHitData toHit, SimulationContext game, Formation formation) { switch (game.getPlayerSkill(formation.getOwnerId())) { - case NONE -> toHit.addModifier(4, I18n.t("acar.skill_7")); - case ULTRA_GREEN -> toHit.addModifier(3, I18n.t("acar.skill_6")); - case GREEN -> toHit.addModifier(2, I18n.t("acar.skill_5")); - case REGULAR -> toHit.addModifier(1, I18n.t("acar.skill_4")); - case VETERAN -> toHit.addModifier(0, I18n.t("acar.skill_3")); - case ELITE -> toHit.addModifier(-1, I18n.t("acar.skill_2")); - case HEROIC -> toHit.addModifier(-2, I18n.t("acar.skill_1")); - case LEGENDARY -> toHit.addModifier(-3, I18n.t("acar.skill_0")); + case NONE -> toHit.addModifier(4, Internationalization.getText("acar.skill_7")); + case ULTRA_GREEN -> toHit.addModifier(3, Internationalization.getText("acar.skill_6")); + case GREEN -> toHit.addModifier(2, Internationalization.getText("acar.skill_5")); + case REGULAR -> toHit.addModifier(1, Internationalization.getText("acar.skill_4")); + case VETERAN -> toHit.addModifier(0, Internationalization.getText("acar.skill_3")); + case ELITE -> toHit.addModifier(-1, Internationalization.getText("acar.skill_2")); + case HEROIC -> toHit.addModifier(-2, Internationalization.getText("acar.skill_1")); + case LEGENDARY -> toHit.addModifier(-3, Internationalization.getText("acar.skill_0")); } } @@ -91,10 +91,10 @@ private static void processFormationModifiers( var formationIsVehicleOnly = formation.isVehicle(); if (formationIsInfantryOnly) { - toHit.addModifier(2, I18n.t("acar.formation_is_infantry_only")); + toHit.addModifier(2, Internationalization.getText("acar.formation_is_infantry_only")); } if (formationIsVehicleOnly) { - toHit.addModifier(1, I18n.t("acar.formation_is_vehicle_only")); + toHit.addModifier(1, Internationalization.getText("acar.formation_is_vehicle_only")); } } @@ -106,7 +106,7 @@ private static void processSizeDifference( return; } int sizeDifference = attackerOpt.get().getSize() - targetOpt.get().getSize(); - toHit.addModifier(sizeDifference, I18n.t("acar.size_difference")); + toHit.addModifier(sizeDifference, Internationalization.getText("acar.size_difference")); } private static void processMorale(EngagementControlToHitData toHit, SimulationContext game, EngagementControlAction engagementControl) { @@ -115,10 +115,10 @@ private static void processMorale(EngagementControlToHitData toHit, SimulationCo return; } switch (targetOpt.get().moraleStatus()) { - case SHAKEN -> toHit.addModifier(+1, I18n.t("acar.shaken_morale")); - case UNSTEADY -> toHit.addModifier(+2, I18n.t("acar.unsteady_morale")); - case BROKEN -> toHit.addModifier(+3, I18n.t("acar.broken_morale")); - case ROUTED -> toHit.addModifier(TargetRoll.AUTOMATIC_FAIL, I18n.t("acar.routed_morale")); + case SHAKEN -> toHit.addModifier(+1, Internationalization.getText("acar.shaken_morale")); + case UNSTEADY -> toHit.addModifier(+2, Internationalization.getText("acar.unsteady_morale")); + case BROKEN -> toHit.addModifier(+3, Internationalization.getText("acar.broken_morale")); + case ROUTED -> toHit.addModifier(TargetRoll.AUTOMATIC_FAIL, Internationalization.getText("acar.routed_morale")); } } } diff --git a/MekHQ/src/mekhq/campaign/autoresolve/acar/action/ManeuverToHitData.java b/MekHQ/src/mekhq/campaign/autoresolve/acar/action/ManeuverToHitData.java index 0fe62ce49b..8fbc0be133 100644 --- a/MekHQ/src/mekhq/campaign/autoresolve/acar/action/ManeuverToHitData.java +++ b/MekHQ/src/mekhq/campaign/autoresolve/acar/action/ManeuverToHitData.java @@ -22,7 +22,7 @@ import megamek.common.TargetRoll; import mekhq.campaign.autoresolve.component.EngagementControl; import mekhq.campaign.autoresolve.component.Formation; -import mekhq.utilities.I18n; +import mekhq.utilities.Internationalization; public class ManeuverToHitData extends TargetRoll { @@ -31,7 +31,7 @@ public ManeuverToHitData(int value, String desc) { } public static ManeuverToHitData compileToHit(Formation formation) { - var toHit = new ManeuverToHitData(formation.getTactics(), I18n.t("acar.formation_tactics")); + var toHit = new ManeuverToHitData(formation.getTactics(), Internationalization.getText("acar.formation_tactics")); processFormationModifiers(toHit, formation); processCombatUnit(toHit, formation); return toHit; @@ -39,31 +39,31 @@ public static ManeuverToHitData compileToHit(Formation formation) { private static void processFormationModifiers(ManeuverToHitData toHit, Formation formation) { if (formation.getEngagementControl() == EngagementControl.FORCED_ENGAGEMENT) { - toHit.addModifier(1, I18n.t("acar.forced_engagement")); + toHit.addModifier(1, Internationalization.getText("acar.forced_engagement")); } if (formation.isAerospace()) { - toHit.addModifier(2, I18n.t("acar.aerospace_formation")); + toHit.addModifier(2, Internationalization.getText("acar.aerospace_formation")); } } private static void processCombatUnit(ManeuverToHitData toHit, Formation formation) { switch (formation.getSkill()) { - case 7 -> toHit.addModifier(+4, I18n.t("acar.skill_7")); - case 6 -> toHit.addModifier(+3, I18n.t("acar.skill_6")); - case 5 -> toHit.addModifier(+2, I18n.t("acar.skill_5")); - case 4 -> toHit.addModifier(+1, I18n.t("acar.skill_4")); - case 3 -> toHit.addModifier(0, I18n.t("acar.skill_3")); - case 2 -> toHit.addModifier(-1, I18n.t("acar.skill_2")); - case 1 -> toHit.addModifier(-2, I18n.t("acar.skill_1")); - case 0 -> toHit.addModifier(-3, I18n.t("acar.skill_0")); - default -> toHit.addModifier(TargetRoll.IMPOSSIBLE, I18n.t("acar.invalid_skill")); + case 7 -> toHit.addModifier(+4, Internationalization.getText("acar.skill_7")); + case 6 -> toHit.addModifier(+3, Internationalization.getText("acar.skill_6")); + case 5 -> toHit.addModifier(+2, Internationalization.getText("acar.skill_5")); + case 4 -> toHit.addModifier(+1, Internationalization.getText("acar.skill_4")); + case 3 -> toHit.addModifier(0, Internationalization.getText("acar.skill_3")); + case 2 -> toHit.addModifier(-1, Internationalization.getText("acar.skill_2")); + case 1 -> toHit.addModifier(-2, Internationalization.getText("acar.skill_1")); + case 0 -> toHit.addModifier(-3, Internationalization.getText("acar.skill_0")); + default -> toHit.addModifier(TargetRoll.IMPOSSIBLE, Internationalization.getText("acar.invalid_skill")); } switch (formation.moraleStatus()) { - case SHAKEN -> toHit.addModifier(+0, I18n.t("acar.shaken_morale")); - case UNSTEADY -> toHit.addModifier(+1, I18n.t("acar.unsteady_morale")); - case BROKEN -> toHit.addModifier(+2, I18n.t("acar.broken_morale")); - case ROUTED -> toHit.addModifier(+2, I18n.t("acar.routed_morale")); + case SHAKEN -> toHit.addModifier(+0, Internationalization.getText("acar.shaken_morale")); + case UNSTEADY -> toHit.addModifier(+1, Internationalization.getText("acar.unsteady_morale")); + case BROKEN -> toHit.addModifier(+2, Internationalization.getText("acar.broken_morale")); + case ROUTED -> toHit.addModifier(+2, Internationalization.getText("acar.routed_morale")); } } } diff --git a/MekHQ/src/mekhq/campaign/autoresolve/acar/action/RecoveringNerveActionToHitData.java b/MekHQ/src/mekhq/campaign/autoresolve/acar/action/RecoveringNerveActionToHitData.java index 628275953a..45b7903b77 100644 --- a/MekHQ/src/mekhq/campaign/autoresolve/acar/action/RecoveringNerveActionToHitData.java +++ b/MekHQ/src/mekhq/campaign/autoresolve/acar/action/RecoveringNerveActionToHitData.java @@ -22,7 +22,7 @@ import megamek.common.TargetRoll; import mekhq.campaign.autoresolve.acar.SimulationContext; import mekhq.campaign.autoresolve.component.Formation; -import mekhq.utilities.I18n; +import mekhq.utilities.Internationalization; public class RecoveringNerveActionToHitData extends TargetRoll { @@ -32,26 +32,26 @@ public RecoveringNerveActionToHitData(int value, String desc) { public static RecoveringNerveActionToHitData compileToHit(SimulationContext game, RecoveringNerveAction recoveringNerveAction) { if (recoveringNerveAction.isInvalid(game)) { - return new RecoveringNerveActionToHitData(TargetRoll.IMPOSSIBLE, I18n.t("acar.invalid_nerve_recovering")); + return new RecoveringNerveActionToHitData(TargetRoll.IMPOSSIBLE, Internationalization.getText("acar.invalid_nerve_recovering")); } //noinspection OptionalGetWithoutIsPresent var formation = game.getFormation(recoveringNerveAction.getEntityId()).get(); - RecoveringNerveActionToHitData toHit = new RecoveringNerveActionToHitData(formation.getMorale(), I18n.t("acar.formation_morale")); + RecoveringNerveActionToHitData toHit = new RecoveringNerveActionToHitData(formation.getMorale(), Internationalization.getText("acar.formation_morale")); processSkill(toHit, formation); return toHit; } private static void processSkill(RecoveringNerveActionToHitData toHit, Formation formation) { switch (formation.getSkill()) { - case 7 -> toHit.addModifier(+2, I18n.t("acar.skill_7")); - case 6 -> toHit.addModifier(+1, I18n.t("acar.skill_6")); - case 5 -> toHit.addModifier(0, I18n.t("acar.skill_5")); - case 4 -> toHit.addModifier(-1, I18n.t("acar.skill_4")); - case 3 -> toHit.addModifier(-2, I18n.t("acar.skill_3")); - case 2 -> toHit.addModifier(-3, I18n.t("acar.skill_2")); - case 1 -> toHit.addModifier(-4, I18n.t("acar.skill_1")); - case 0 -> toHit.addModifier(-5, I18n.t("acar.skill_0")); - default -> toHit.addModifier(TargetRoll.IMPOSSIBLE, I18n.t("acar.invalid_skill")); + case 7 -> toHit.addModifier(+2, Internationalization.getText("acar.skill_7")); + case 6 -> toHit.addModifier(+1, Internationalization.getText("acar.skill_6")); + case 5 -> toHit.addModifier(0, Internationalization.getText("acar.skill_5")); + case 4 -> toHit.addModifier(-1, Internationalization.getText("acar.skill_4")); + case 3 -> toHit.addModifier(-2, Internationalization.getText("acar.skill_3")); + case 2 -> toHit.addModifier(-3, Internationalization.getText("acar.skill_2")); + case 1 -> toHit.addModifier(-4, Internationalization.getText("acar.skill_1")); + case 0 -> toHit.addModifier(-5, Internationalization.getText("acar.skill_0")); + default -> toHit.addModifier(TargetRoll.IMPOSSIBLE, Internationalization.getText("acar.invalid_skill")); } } } diff --git a/MekHQ/src/mekhq/campaign/autoresolve/acar/action/WithdrawToHitData.java b/MekHQ/src/mekhq/campaign/autoresolve/acar/action/WithdrawToHitData.java index 6f2d6fbc20..64ddaeefc5 100644 --- a/MekHQ/src/mekhq/campaign/autoresolve/acar/action/WithdrawToHitData.java +++ b/MekHQ/src/mekhq/campaign/autoresolve/acar/action/WithdrawToHitData.java @@ -22,7 +22,7 @@ import megamek.common.TargetRoll; import mekhq.campaign.autoresolve.acar.SimulationContext; import mekhq.campaign.autoresolve.component.Formation; -import mekhq.utilities.I18n; +import mekhq.utilities.Internationalization; public class WithdrawToHitData extends TargetRoll { @@ -31,7 +31,7 @@ public WithdrawToHitData(int value, String desc) { } public static WithdrawToHitData compileToHit(SimulationContext game, Formation formation) { - var toHit = new WithdrawToHitData(formation.getTactics(), I18n.t("acar.formation_tactics")); + var toHit = new WithdrawToHitData(formation.getTactics(), Internationalization.getText("acar.formation_tactics")); processFormationModifiers(toHit, formation); processMorale(toHit, formation); return toHit; @@ -42,19 +42,19 @@ private static void processFormationModifiers(WithdrawToHitData toHit, Formation var formationIsVehicleOnly = formation.isVehicle(); if (formationIsInfantryOnly) { - toHit.addModifier(2, I18n.t("acar.formation_is_infantry_only")); + toHit.addModifier(2, Internationalization.getText("acar.formation_is_infantry_only")); } if (formationIsVehicleOnly) { - toHit.addModifier(1, I18n.t("acar.formation_is_vehicle_only")); + toHit.addModifier(1, Internationalization.getText("acar.formation_is_vehicle_only")); } } private static void processMorale(WithdrawToHitData toHit, Formation formation) { switch (formation.moraleStatus()) { - case SHAKEN -> toHit.addModifier(+1, I18n.t("acar.shaken_morale")); - case UNSTEADY -> toHit.addModifier(+2, I18n.t("acar.unsteady_morale")); - case BROKEN -> toHit.addModifier(+3, I18n.t("acar.broken_morale")); - case ROUTED -> toHit.addModifier(TargetRoll.AUTOMATIC_FAIL, I18n.t("acar.routed_morale")); + case SHAKEN -> toHit.addModifier(+1, Internationalization.getText("acar.shaken_morale")); + case UNSTEADY -> toHit.addModifier(+2, Internationalization.getText("acar.unsteady_morale")); + case BROKEN -> toHit.addModifier(+3, Internationalization.getText("acar.broken_morale")); + case ROUTED -> toHit.addModifier(TargetRoll.AUTOMATIC_FAIL, Internationalization.getText("acar.routed_morale")); } } } diff --git a/MekHQ/src/mekhq/campaign/autoresolve/acar/handler/WithdrawActionHandler.java b/MekHQ/src/mekhq/campaign/autoresolve/acar/handler/WithdrawActionHandler.java index 79aeab7cf5..f97d5f51bd 100644 --- a/MekHQ/src/mekhq/campaign/autoresolve/acar/handler/WithdrawActionHandler.java +++ b/MekHQ/src/mekhq/campaign/autoresolve/acar/handler/WithdrawActionHandler.java @@ -26,7 +26,7 @@ import mekhq.campaign.autoresolve.acar.action.WithdrawToHitData; import mekhq.campaign.autoresolve.acar.report.WithdrawReporter; import mekhq.campaign.unit.damage.DamageApplierChooser; -import mekhq.utilities.I18n; +import mekhq.utilities.Internationalization; public class WithdrawActionHandler extends AbstractActionHandler { @@ -60,7 +60,7 @@ public void execute() { var withdrawFormation = withdrawOpt.get(); var toHit = WithdrawToHitData.compileToHit(game(), withdrawFormation); if (withdrawFormation.isCrippled()) { - toHit.addModifier(3, I18n.t("acar.withdraw.crippled")); + toHit.addModifier(3, Internationalization.getText("acar.withdraw.crippled")); } var withdrawRoll = Compute.rollD6(2); diff --git a/MekHQ/src/mekhq/utilities/I18n.java b/MekHQ/src/mekhq/utilities/Internationalization.java similarity index 58% rename from MekHQ/src/mekhq/utilities/I18n.java rename to MekHQ/src/mekhq/utilities/Internationalization.java index 466520ef92..057b3b7235 100644 --- a/MekHQ/src/mekhq/utilities/I18n.java +++ b/MekHQ/src/mekhq/utilities/Internationalization.java @@ -26,20 +26,20 @@ import java.util.concurrent.ConcurrentHashMap; /** - * I18n class to handle internationalization + * Class to handle internationalization (you will find online material on that looking for i18n) * It makes use of some short names to make it easier to use since it is used in many places */ -public class I18n { +public class Internationalization { private static final String PREFIX = "mekhq.resources."; - private static final String DEFAULT = "messages"; + protected static final String DEFAULT = "messages"; private final ConcurrentHashMap resourceBundles = new ConcurrentHashMap<>(); - private static final I18n instance = new I18n(); + private static final Internationalization instance = new Internationalization(); - private I18n() { + protected Internationalization() { } - public static I18n getInstance() { + public static Internationalization getInstance() { return instance; } @@ -54,54 +54,32 @@ ResourceBundle getResourceBundle(String bundleName) { * @param key the key of the string * @return the localized string */ - public static String getLocalizedText(String bundleName, String key) { - if (I18n.getInstance().getResourceBundle(bundleName).containsKey(key)) { - return I18n.getInstance().getResourceBundle(bundleName).getString(key); + public static String getTextAt(String bundleName, String key) { + if (Internationalization.getInstance().getResourceBundle(bundleName).containsKey(key)) { + return Internationalization.getInstance().getResourceBundle(bundleName).getString(key); } return "!" + key + "!"; } - /** - * Get a localized string from a specific bundle - * @param bundleName the name of the bundle - * @param key the key of the string - * @return the localized string - */ - public static String t(String bundleName, String key) { - return getLocalizedText(bundleName, key); - } - /** * Get a localized string from the default bundle * @param key the key of the string * @return the localized string */ - public static String t(String key) { - return getLocalizedText(DEFAULT, key); - } - - /** - * Get a formatted localized string from the default bundle - * @param key the key of the string - * @param args the arguments to format the string - * @return the localized string - */ - public static String ft(String key, Object... args) { - return MessageFormat.format(getFormattedLocalizedText(DEFAULT, key), args); + public static String getText(String key) { + return getTextAt(DEFAULT, key); } /** - * Get a formatted localized string from a bundle - * @param bundleName the name of the bundle + * Get a formatted localized string from the default bundle * @param key the key of the string * @param args the arguments to format the string * @return the localized string */ - public static String flt(String bundleName, String key, Object... args) { - return MessageFormat.format(getFormattedLocalizedText(bundleName, key), args); + public static String getFormattedText(String key, Object... args) { + return MessageFormat.format(getFormattedTextAt(DEFAULT, key), args); } - /** * Get a formatted localized string from the default bundle * @param bundleName the name of the bundle @@ -109,8 +87,9 @@ public static String flt(String bundleName, String key, Object... args) { * @param args the arguments to format the string * @return the localized string */ - public static String getFormattedLocalizedText(String bundleName, String key, Object... args) { - return MessageFormat.format(getLocalizedText(bundleName, key), args); + public static String getFormattedTextAt(String bundleName, String key, Object... args) { + return MessageFormat.format(getTextAt(bundleName, key), args); } + }