# HG changeset patch # User IBBoard # Date 1258920525 0 # Node ID 391446c9b2506d67c216be66192b6e1619ff87c5 # Parent 1b718b67f7f62596ee4c03f18c211ee575880f11 Re #223: Use translations within the API * Translate and cache undo/redo descriptions of commands * Simplify "set equipment amount" descriptions because of ticket:224 Also: * Line ending change on ICostedWarFoundryObject diff -r 1b718b67f7f6 -r 391446c9b250 api/Commands/AbstractReplaceUnitEquipmentCommand.cs --- a/api/Commands/AbstractReplaceUnitEquipmentCommand.cs Sat Nov 21 21:27:07 2009 +0000 +++ b/api/Commands/AbstractReplaceUnitEquipmentCommand.cs Sun Nov 22 20:08:45 2009 +0000 @@ -16,6 +16,8 @@ { private SetUnitEquipmentNumericAmountCommand removeOldCommand; private AbstractSetUnitEquipmentAmountCommand addNewCommand; + private string description; + private string undoDescription; public AbstractReplaceUnitEquipmentCommand(Unit unit, UnitEquipmentItem oldItem, AbstractSetUnitEquipmentAmountCommand addNewEquipmentCommand) { @@ -31,12 +33,28 @@ public override string Description { - get { return "Replace "+StringManipulation.CutToLength(removeOldCommand.EquipItem.Name, 20)+" with "+StringManipulation.CutToLength(addNewCommand.EquipItem.Name, 20)+ " for "+StringManipulation.CutToLength(removeOldCommand.Unit.Name, 20); } + get + { + if (description == null) + { + description = Translation.GetTranslation("replaceUnitEquipmentCommandDescription", "replace {0} with {1} for {2}", removeOldCommand.EquipItem.Name, addNewCommand.EquipItem.Name, removeOldCommand.Unit.Name); + } + + return description; + } } public override string UndoDescription { - get { return "Replace "+StringManipulation.CutToLength(addNewCommand.EquipItem.Name, 20)+" with "+StringManipulation.CutToLength(removeOldCommand.EquipItem.Name, 20)+ " for "+StringManipulation.CutToLength(removeOldCommand.Unit.Name, 20); } + get + { + if (undoDescription == null) + { + undoDescription = Translation.GetTranslation("replaceUnitEquipmentCommandUndoDescription", "replace {0} with {1} for {2}", addNewCommand.EquipItem.Name, removeOldCommand.EquipItem.Name, removeOldCommand.Unit.Name); + } + + return undoDescription; + } } public override bool Execute() @@ -60,7 +78,10 @@ public override string Name { - get { return "Replace required equipment"; } + get + { + return "Replace required equipment"; + } } } } diff -r 1b718b67f7f6 -r 391446c9b250 api/Commands/AbstractSetUnitEquipmentAmountCommand.cs --- a/api/Commands/AbstractSetUnitEquipmentAmountCommand.cs Sat Nov 21 21:27:07 2009 +0000 +++ b/api/Commands/AbstractSetUnitEquipmentAmountCommand.cs Sun Nov 22 20:08:45 2009 +0000 @@ -19,8 +19,8 @@ private UnitEquipmentItem equip; private double oldAmount; private bool oldAmountWasRatio; - private string equipName; - private string unitName; + private string description; + private string undoDescription; public AbstractSetUnitEquipmentAmountCommand(Unit unit, UnitEquipmentItem item) { @@ -28,8 +28,6 @@ equip = item; oldAmount = UnitEquipmentUtil.GetEquipmentAmount(unit, equip); oldAmountWasRatio = UnitEquipmentUtil.GetEquipmentAmountIsRatio(unit, equip); - equipName = StringManipulation.CutToLength(equip.Name, 20); - unitName = StringManipulation.CutToLength(unit.Name, 20); } public override bool CanExecute() @@ -41,7 +39,12 @@ { get { - return Translation.GetTranslation("setEquipmentAmountCommandDescription", "set {0} amount for {1} to {2}", equipName, unitName, GetNewAmountString()); + if (description == null) + { + description = Translation.GetTranslation("setEquipmentAmountCommandDescription", "set {0} amount for {1} to {2}", equip.Name, unit.Name, GetNewAmountString()); + } + + return description; } } @@ -57,15 +60,9 @@ { get { - string undoDescription; - - if (oldAmount == 0) + if (undoDescription == null) { - undoDescription = Translation.GetTranslation("setEquipmentAmountCommandRemoveDescription", "remove {0} from {1}", equipName, unitName); - } - else - { - undoDescription = Translation.GetTranslation("setEquipmentAmountCommandUndoDescription", "set {0} amount for {1} to {2}", equipName, unitName, GetOldAmountString()); + undoDescription = Translation.GetTranslation("setEquipmentAmountCommandUndoDescription", "set {0} amount for {1} to {2}", equip.Name, unit.Name, GetOldAmountString()); } return undoDescription; @@ -104,8 +101,6 @@ return amountString; } - - public override bool Execute() { this.Redo(); diff -r 1b718b67f7f6 -r 391446c9b250 api/Commands/CreateAndAddUnitCommand.cs --- a/api/Commands/CreateAndAddUnitCommand.cs Sat Nov 21 21:27:07 2009 +0000 +++ b/api/Commands/CreateAndAddUnitCommand.cs Sun Nov 22 20:08:45 2009 +0000 @@ -14,6 +14,8 @@ private UnitType addedUnitType; private ArmyCategory armyCat; private Unit addedUnit; + private string description; + private string undoDescription; public CreateAndAddUnitCommand(UnitType toAdd, ArmyCategory armyCatTo) { @@ -21,16 +23,6 @@ armyCat = armyCatTo; } - [Obsolete("Use two parameter constructor instead")] - public CreateAndAddUnitCommand(UnitType toAdd, ArmyCategory catTo, Army armyTo) : this(toAdd, catTo) - { - } - - [Obsolete("Use two parameter constructor instead")] - public CreateAndAddUnitCommand(UnitType toAdd, Category catTo, Army armyTo) : this (toAdd, armyTo.GetCategory(catTo), armyTo) - { - } - public override bool CanExecute() { return (addedUnitType!=null && armyCat!=null); @@ -38,12 +30,28 @@ public override string Description { - get { return "Add unit of "+StringManipulation.CutToLength(addedUnitType.Name, 20)+" to the army"; } + get + { + if (description == null) + { + description = Translation.GetTranslation("createAndAddUnitCommandDescription", "add unit of {0} to the army", addedUnitType.Name); + } + + return description; + } } public override string UndoDescription { - get { return "Remove unit of "+StringManipulation.CutToLength(addedUnitType.Name, 20)+" from army"; } + get + { + if (undoDescription == null) + { + undoDescription = Translation.GetTranslation("createAndAddUnitCommandUndoDescription", "remove unit of {0} from army", addedUnitType.Name); + } + + return undoDescription; + } } public override bool Execute() diff -r 1b718b67f7f6 -r 391446c9b250 api/Commands/RemoveUnitCommand.cs --- a/api/Commands/RemoveUnitCommand.cs Sat Nov 21 21:27:07 2009 +0000 +++ b/api/Commands/RemoveUnitCommand.cs Sun Nov 22 20:08:45 2009 +0000 @@ -4,6 +4,7 @@ using System; using IBBoard.Commands; +using IBBoard.Lang; using IBBoard.WarFoundry.API.Objects; namespace IBBoard.WarFoundry.API.Commands @@ -15,6 +16,8 @@ { private Unit unit; private ArmyCategory cat; + private string description; + private string undoDescription; public RemoveUnitCommand(Unit toRemove) { @@ -29,12 +32,28 @@ public override string Description { - get { return "Remove an existing unit from the army"; } + get + { + if (description == null) + { + description = Translation.GetTranslation("removeUnitCommandDescription", "remove {0} from the army", unit.Name); + } + + return description; + } } public override string UndoDescription { - get { return "Replace a removed unit"; } + get + { + if (undoDescription == null) + { + undoDescription = Translation.GetTranslation("removeUnitCommandUndoDescription", "re-add {0} to the army", unit.Name); + } + + return undoDescription; + } } public override bool Execute() diff -r 1b718b67f7f6 -r 391446c9b250 api/Commands/SetNameCommand.cs --- a/api/Commands/SetNameCommand.cs Sat Nov 21 21:27:07 2009 +0000 +++ b/api/Commands/SetNameCommand.cs Sun Nov 22 20:08:45 2009 +0000 @@ -4,6 +4,7 @@ using System; using IBBoard.Commands; +using IBBoard.Lang; using IBBoard.WarFoundry.API.Objects; namespace IBBoard.WarFoundry.API.Commands @@ -15,6 +16,8 @@ { private WarFoundryObject obj; private string newName, oldName; + private string description; + private string undoDescription; public SetNameCommand(WarFoundryObject toRename, string name) { @@ -30,12 +33,28 @@ public override string Description { - get { return "Rename "+oldName; } + get + { + if (description == null) + { + description = Translation.GetTranslation("setUnitNameCommandDescription", "rename \"{0}\" to \"{1}\"", oldName, newName); + } + + return description; + } } public override string UndoDescription { - get { return "Revert name of "+newName; } + get + { + if (undoDescription == null) + { + undoDescription = Translation.GetTranslation("setUnitNameCommandUndoDescription", "rename \"{0}\" to \"{1}\"", newName, oldName); + } + + return undoDescription; + } } public override bool Execute() diff -r 1b718b67f7f6 -r 391446c9b250 api/Commands/SetUnitSizeCommand.cs --- a/api/Commands/SetUnitSizeCommand.cs Sat Nov 21 21:27:07 2009 +0000 +++ b/api/Commands/SetUnitSizeCommand.cs Sun Nov 22 20:08:45 2009 +0000 @@ -4,6 +4,7 @@ using System; using IBBoard.Commands; +using IBBoard.Lang; using IBBoard.WarFoundry.API.Objects; namespace IBBoard.WarFoundry.API.Commands @@ -15,6 +16,8 @@ { private Unit unit; private int newSize, oldSize; + private string description; + private string undoDescription; public SetUnitSizeCommand(Unit toResize, int size) { @@ -30,12 +33,28 @@ public override string Description { - get { return "Change size of "+unit.Name; } + get + { + if (description == null) + { + description = Translation.GetTranslation("setUnitSizeCommandDescription", "set size of {0} to {1}", unit.Name, newSize); + } + + return description; + } } public override string UndoDescription { - get { return "Revert size of "+unit.Name; } + get + { + if (undoDescription == null) + { + undoDescription = Translation.GetTranslation("setUnitSizeCommandUndoDescription", "set size of {0} to {1}", unit.Name, oldSize); + } + + return undoDescription; + } } public override bool Execute() diff -r 1b718b67f7f6 -r 391446c9b250 api/Objects/ICostedWarFoundryObject.cs --- a/api/Objects/ICostedWarFoundryObject.cs Sat Nov 21 21:27:07 2009 +0000 +++ b/api/Objects/ICostedWarFoundryObject.cs Sun Nov 22 20:08:45 2009 +0000 @@ -1,4 +1,4 @@ -// This file (ICostedNamedObject.cs) is a part of the IBBoard.WarFoundry.API project and is copyright 2009 IBBoard. +// This file (ICostedNamedObject.cs) is a part of the IBBoard.WarFoundry.API project and is copyright 2009 IBBoard. // // The file and the library/program it is in are licensed and distributed, without warranty, under the GNU Affero GPL license, either version 3 of the License or (at your option) any later version. Please see COPYING for more information and the full license.