Index: /trunk/src/org/openstreetmap/josm/command/AddPrimitivesCommand.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/command/AddPrimitivesCommand.java	(revision 2843)
+++ /trunk/src/org/openstreetmap/josm/command/AddPrimitivesCommand.java	(revision 2844)
@@ -2,5 +2,5 @@
 package org.openstreetmap.josm.command;
 
-import static org.openstreetmap.josm.tools.I18n.tr;
+import static org.openstreetmap.josm.tools.I18n.trn;
 
 import java.util.ArrayList;
@@ -47,5 +47,5 @@
     public MutableTreeNode description() {
         return new DefaultMutableTreeNode(
-                new JLabel(tr("Added {0} objects", data.size()), null,
+                new JLabel(trn("Added {0} object", "Added {0} objects", data.size(), data.size()), null,
                         JLabel.HORIZONTAL
                 )
Index: /trunk/src/org/openstreetmap/josm/command/ChangePropertyCommand.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/command/ChangePropertyCommand.java	(revision 2843)
+++ /trunk/src/org/openstreetmap/josm/command/ChangePropertyCommand.java	(revision 2844)
@@ -115,6 +115,6 @@
         } else {
             text = value == null
-            ? tr("Remove \"{0}\" for {1} {2}", key, objects.size(), trn("object","objects",objects.size()))
-                    : tr("Set {0}={1} for {2} {3}",key,value, objects.size(), trn("object","objects",objects.size()));
+            ? tr("Remove \"{0}\" for {1} objects", key, objects.size())
+                    : tr("Set {0}={1} for {2} objects", key, value, objects.size());
         }
         DefaultMutableTreeNode root = new DefaultMutableTreeNode(new JLabel(text, ImageProvider.get("data", "key"), JLabel.HORIZONTAL));
Index: /trunk/src/org/openstreetmap/josm/command/Command.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/command/Command.java	(revision 2843)
+++ /trunk/src/org/openstreetmap/josm/command/Command.java	(revision 2844)
@@ -21,4 +21,5 @@
 import org.openstreetmap.josm.gui.layer.Layer;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.tools.CheckParameterUtil;
 
 /**
@@ -63,6 +64,5 @@
      */
     public Command(OsmDataLayer layer) throws IllegalArgumentException {
-        if (layer == null)
-            throw new IllegalArgumentException(tr("Parameter ''{0}'' must not be null", "layer"));
+        CheckParameterUtil.ensureParameterNotNull(layer, "layer");
         this.layer = layer;
     }
Index: /trunk/src/org/openstreetmap/josm/command/ConflictAddCommand.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/command/ConflictAddCommand.java	(revision 2843)
+++ /trunk/src/org/openstreetmap/josm/command/ConflictAddCommand.java	(revision 2844)
@@ -32,5 +32,5 @@
                 tr("<html>Layer ''{0}'' already has a conflict for primitive<br>"
                         + "''{1}''.<br>"
-                        + "This conflict can't be added.</html>",
+                        + "This conflict cannot be added.</html>",
                         getLayer().getName(),
                         conflict.getMy().getDisplayName(DefaultNameFormatter.getInstance())
@@ -52,5 +52,5 @@
     @Override public void undoCommand() {
         if (! Main.map.mapView.hasLayer(getLayer())) {
-            System.out.println(tr("Warning: Layer ''{0}'' doesn't exist any more. Can't remove conflict for primitive ''{1}''.",
+            System.out.println(tr("Warning: Layer ''{0}'' does not exist any more. Cannot remove conflict for primitive ''{1}''.",
                     getLayer().getName(),
                     conflict.getMy().getDisplayName(DefaultNameFormatter.getInstance())
Index: /trunk/src/org/openstreetmap/josm/command/ConflictResolveCommand.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/command/ConflictResolveCommand.java	(revision 2843)
+++ /trunk/src/org/openstreetmap/josm/command/ConflictResolveCommand.java	(revision 2844)
@@ -65,5 +65,5 @@
 
         if (! Main.map.mapView.hasLayer(getLayer())) {
-            logger.warning(tr("Can''t undo command ''{0}'' because layer ''{1}'' is not present any more",
+            logger.warning(tr("Cannot undo command ''{0}'' because layer ''{1}'' is not present any more",
                     this.toString(),
                     getLayer().toString()
Index: /trunk/src/org/openstreetmap/josm/command/DeleteCommand.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/command/DeleteCommand.java	(revision 2843)
+++ /trunk/src/org/openstreetmap/josm/command/DeleteCommand.java	(revision 2844)
@@ -4,4 +4,5 @@
 import static org.openstreetmap.josm.tools.I18n.tr;
 import static org.openstreetmap.josm.tools.I18n.trn;
+import static org.openstreetmap.josm.tools.I18n.marktr;
 
 import java.awt.GridBagLayout;
@@ -35,4 +36,5 @@
 import org.openstreetmap.josm.gui.actionsupport.DeleteFromRelationConfirmationDialog;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.tools.CheckParameterUtil;
 import org.openstreetmap.josm.tools.ImageProvider;
 
@@ -55,5 +57,5 @@
     public DeleteCommand(Collection<? extends OsmPrimitive> data) throws IllegalArgumentException {
         if (data == null)
-            throw new IllegalArgumentException(tr("Parameter ''{0}'' must not be empty"));
+            throw new IllegalArgumentException("Parameter 'data' must not be empty");
         if (data.isEmpty())
             throw new IllegalArgumentException(tr("At least one object to delete required, got empty collection"));
@@ -68,6 +70,5 @@
      */
     public DeleteCommand(OsmPrimitive data) throws IllegalArgumentException {
-        if (data == null)
-            throw new IllegalArgumentException(tr("Parameter ''{0}'' must not be null", "data"));
+        CheckParameterUtil.ensureParameterNotNull(data, "data");
         this.toDelete = Collections.singleton(data);
     }
@@ -84,6 +85,5 @@
     public DeleteCommand(OsmDataLayer layer, OsmPrimitive data) throws IllegalArgumentException {
         super(layer);
-        if (data == null)
-            throw new IllegalArgumentException(tr("Parameter ''{0}'' must not be null", "data"));
+        CheckParameterUtil.ensureParameterNotNull(data, "data");
         this.toDelete = Collections.singleton(data);
     }
@@ -101,5 +101,5 @@
         super(layer);
         if (data == null)
-            throw new IllegalArgumentException(tr("Parameter ''{0}'' must not be empty"));
+            throw new IllegalArgumentException("Parameter 'data' must not be empty");
         if (data.isEmpty())
             throw new IllegalArgumentException(tr("At least one object to delete required, got empty collection"));
@@ -159,7 +159,7 @@
             String msg = "";
             switch(OsmPrimitiveType.from(primitive)) {
-            case NODE: msg = "Delete node {0}"; break;
-            case WAY: msg = "Delete way {0}"; break;
-            case RELATION:msg = "Delete relation {0}"; break;
+            case NODE: msg = marktr("Delete node {0}"); break;
+            case WAY: msg = marktr("Delete way {0}"); break;
+            case RELATION:msg = marktr("Delete relation {0}"); break;
             }
 
@@ -213,6 +213,5 @@
      */
     public static Command deleteWithReferences(OsmDataLayer layer, Collection<? extends OsmPrimitive> selection, boolean silent) throws IllegalArgumentException {
-        if (layer == null)
-            throw new IllegalArgumentException(tr("Parameter ''{0}'' must not be null", "layer"));
+        CheckParameterUtil.ensureParameterNotNull(layer, "layer");
         if (selection == null || selection.isEmpty()) return null;
         Set<OsmPrimitive> parents = OsmPrimitive.getReferrer(selection);
@@ -436,5 +435,5 @@
                                 tr("You are about to delete nodes outside of the area you have downloaded."
                                         + "<br>"
-                                        + "This can cause problems because other objects (that you don't see) might use them."
+                                        + "This can cause problems because other objects (that you do not see) might use them."
                                         + "<br>" + "Do you really want to delete?") + "</html>"));
                         return ConditionalOptionPaneUtil.showConfirmationDialog(
Index: /trunk/src/org/openstreetmap/josm/command/ModifiedConflictResolveCommand.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/command/ModifiedConflictResolveCommand.java	(revision 2843)
+++ /trunk/src/org/openstreetmap/josm/command/ModifiedConflictResolveCommand.java	(revision 2844)
@@ -39,7 +39,7 @@
         String msg = "";
         switch(OsmPrimitiveType.from(conflict.getMy())) {
-        case NODE: msg = marktr("Set the 'modified' flag for node {0}"); break;
-        case WAY: msg = marktr("Set the 'modified' flag for way {0}"); break;
-        case RELATION: msg = marktr("Set the 'modified' flag for relation {0}"); break;
+        case NODE: msg = marktr("Set the ''modified'' flag for node {0}"); break;
+        case WAY: msg = marktr("Set the ''modified'' flag for way {0}"); break;
+        case RELATION: msg = marktr("Set the ''modified'' flag for relation {0}"); break;
         }
         return new DefaultMutableTreeNode(
Index: /trunk/src/org/openstreetmap/josm/command/PurgePrimitivesCommand.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/command/PurgePrimitivesCommand.java	(revision 2843)
+++ /trunk/src/org/openstreetmap/josm/command/PurgePrimitivesCommand.java	(revision 2844)
@@ -3,4 +3,5 @@
 
 import static org.openstreetmap.josm.tools.I18n.tr;
+import static org.openstreetmap.josm.tools.I18n.trn;
 
 import java.util.Collection;
@@ -109,5 +110,5 @@
 
         DefaultMutableTreeNode root = new DefaultMutableTreeNode(
-                tr("Purged {0} objects", primitives.size())
+                trn("Purged {0} object", "Purged {0} objects", primitives.size(), primitives.size())
         );
         for (OsmPrimitive p : primitives) {
@@ -201,5 +202,5 @@
     public void undoCommand() {
         if (! Main.map.mapView.hasLayer(getLayer())) {
-            logger.warning(tr("Can''t undo command ''{0}'' because layer ''{1}'' is not present any more",
+            logger.warning(tr("Cannot undo command ''{0}'' because layer ''{1}'' is not present any more",
                     this.toString(),
                     getLayer().toString()
Index: /trunk/src/org/openstreetmap/josm/command/RelationMemberConflictResolverCommand.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/command/RelationMemberConflictResolverCommand.java	(revision 2843)
+++ /trunk/src/org/openstreetmap/josm/command/RelationMemberConflictResolverCommand.java	(revision 2844)
@@ -87,5 +87,5 @@
     public void undoCommand() {
         if (! Main.map.mapView.hasLayer(layer)) {
-            logger.warning(tr("Can''t undo command ''{0}'' because layer ''{1}'' is not present any more",
+            logger.warning(tr("Cannot undo command ''{0}'' because layer ''{1}'' is not present any more",
                     this.toString(),
                     layer.toString()
Index: /trunk/src/org/openstreetmap/josm/command/UndeletePrimitivesCommand.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/command/UndeletePrimitivesCommand.java	(revision 2843)
+++ /trunk/src/org/openstreetmap/josm/command/UndeletePrimitivesCommand.java	(revision 2844)
@@ -2,5 +2,5 @@
 package org.openstreetmap.josm.command;
 
-import static org.openstreetmap.josm.tools.I18n.tr;
+import static org.openstreetmap.josm.tools.I18n.trn;
 
 import java.util.ArrayList;
@@ -59,5 +59,5 @@
         return new DefaultMutableTreeNode(
                 new JLabel(
-                        tr("Undelete {0} primitives", toUndelete.size()),
+                        trn("Undelete {0} primitive", "Undelete {0} primitives", toUndelete.size(), toUndelete.size()),
                         ImageProvider.get("data", "object"),
                         JLabel.HORIZONTAL
Index: /trunk/src/org/openstreetmap/josm/command/VersionConflictResolveCommand.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/command/VersionConflictResolveCommand.java	(revision 2843)
+++ /trunk/src/org/openstreetmap/josm/command/VersionConflictResolveCommand.java	(revision 2844)
@@ -39,7 +39,7 @@
         String msg = "";
         switch(OsmPrimitiveType.from(conflict.getMy())) {
-            case NODE: msg = marktr("Resolve version conflicts for node {0}"); break;
-            case WAY: msg = marktr("Resolve version conflicts for way {0}"); break;
-            case RELATION: msg = marktr("Resolve version conflicts for relation {0}"); break;
+            case NODE: msg = marktr("Resolve version conflict for node {0}"); break;
+            case WAY: msg = marktr("Resolve version conflict for way {0}"); break;
+            case RELATION: msg = marktr("Resolve version conflict for relation {0}"); break;
         }
         return new DefaultMutableTreeNode(
