changeset 99:acaea18ac0a1

Fixes #220: Make percentage and numeric amounts more obvious * Differentiate between "free" and costed and build up a new string with more options * Make use of translations for all of the parts of the line Re #179: Make sure that translations are used throughout UI * Add new translations to file
author IBBoard <dev@ibboard.co.uk>
date Sat, 21 Nov 2009 16:41:28 +0000
parents c7afc7824f50
children 88b5a0da73f2
files Util/UnitEquipmentChoice.cs translations/en.translation
diffstat 2 files changed, 35 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/Util/UnitEquipmentChoice.cs	Sat Nov 21 15:33:00 2009 +0000
+++ b/Util/UnitEquipmentChoice.cs	Sat Nov 21 16:41:28 2009 +0000
@@ -3,9 +3,9 @@
 // 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.
 
 using System;
+using IBBoard.Lang;
 using IBBoard.WarFoundry.API.Objects;
-
-
+using IBBoard.WarFoundry.API.Util;
 
 namespace IBBoard.WarFoundry.GUI.WinForms.Util
 {
@@ -26,19 +26,44 @@
 
         public override string ToString()
         {
-            return String.Format("{0} (For {1} at {2}pts each)", item.Name, GetAmountString(), item.Cost);
+			String translation = "";
+
+			if (item.Cost == 0)
+			{
+				translation = Translation.GetTranslation("equipmentAmountWithZeroCost", "{0} ({1} - free)", item.Name, GetAmountString());
+			}
+			else
+			{
+				translation = Translation.GetTranslation("equipmentAmountWithCost", "{0} ({1} at {2}pts each)", item.Name, GetAmountString(), item.Cost);
+			}
+
+			return translation;
         }
 
 		private string GetAmountString()
 		{
-			if (unit.GetEquipmentAmountIsRatio(item))
+			double amount = UnitEquipmentUtil.GetEquipmentAmount(unit, item);
+			string amountString = "";
+
+			if (UnitEquipmentUtil.GetEquipmentAmountIsRatio(unit, item))
 			{
-				return UnitEquipmentRatioSelection.GetEquipmentAmountString(unit.GetEquipmentAmount(item));
+				int number = UnitEquipmentUtil.GetEquipmentAmountTaken(unit, item);
+
+				if (amount == 100)
+				{
+					amountString = Translation.GetTranslation("equipmentAmountAll", "all ({1})", amount, number);
+				}
+				else
+				{
+					amountString = Translation.GetTranslation("equipmentAmountPercentage", "{0}% ({1})", amount, number);
+				}
 			}
 			else
 			{
-				return UnitEquipmentNumericSelection.GetEquipmentAmountString(unit.GetEquipmentAmount(item));
+				amountString = amount.ToString();
 			}
+
+			return amountString;
 		}
 
         public UnitEquipmentItem Item
--- a/translations/en.translation	Sat Nov 21 15:33:00 2009 +0000
+++ b/translations/en.translation	Sat Nov 21 16:41:28 2009 +0000
@@ -63,6 +63,10 @@
 	<translation id="bttnRemoveWeapon">Remove</translation>
 	<translation id="bttnReplaceWeapon">Replace</translation>
 	<translation id="bttnEditWeapon">Edit</translation>
+	<translation id="equipmentAmountWithCost">{0} ({1} at {2}pts each)</translation>
+	<translation id="equipmentAmountWithZeroCost">{0} ({1} for free)</translation>
+	<translation id="equipmentAmountAll">For all ({1})</translation>
+	<translation id="equipmentAmountPercentage">For {0}% ({1})</translation>
 	<translation id="InvalidRaceFileBoxTitle">Invalid race file</translation>
 	<translation id="InvalidArmyFileBoxTitle">Invalid army file</translation>
 	<translation id="SaveChangesQuestion">The army "{0}" has been modified.