Index: /trunk/src/org/openstreetmap/josm/data/coor/LatLon.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/coor/LatLon.java	(revision 2173)
+++ /trunk/src/org/openstreetmap/josm/data/coor/LatLon.java	(revision 2174)
@@ -53,5 +53,7 @@
         switch(d) {
         case DECIMAL_DEGREES: return cDdFormatter.format(y);
-        case DEGREES_MINUTES_SECONDS: return dms(y) + ((y < 0) ? tr("S") : tr("N"));
+        case DEGREES_MINUTES_SECONDS: return dms(y) + ((y < 0) ?
+            /* short symbol for South */ tr("S") :
+            /* short symbol for North */ tr("N"));
         default: return "ERR";
         }
@@ -65,5 +67,7 @@
         switch(d) {
         case DECIMAL_DEGREES: return cDdFormatter.format(x);
-        case DEGREES_MINUTES_SECONDS: return dms(x) + ((x < 0) ? tr("W") : tr("E"));
+        case DEGREES_MINUTES_SECONDS: return dms(x) + ((x < 0) ?
+            /* short symbol for West */ tr("W") :
+            /* short symbol for East */ tr("E"));
         default: return "ERR";
         }
Index: /trunk/src/org/openstreetmap/josm/data/osm/Filters.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/Filters.java	(revision 2173)
+++ /trunk/src/org/openstreetmap/josm/data/osm/Filters.java	(revision 2174)
@@ -139,5 +139,12 @@
 
    public String getColumnName(int column){
-      String[] names = { tr("E"), tr("H"), tr("Text"), tr("C"), tr("I"), tr("M") };
+      String[] names = { /* translators notes must be in front */
+          /* column header: enable filter */             tr("~filter:E"),
+          /* column header: hide filter */               tr("H"),
+          /* column header: filter text */               tr("Text"),
+          /* column header: apply filter for children */ tr("C"),
+          /* column header: inverted filter */           tr("I"),
+          /* column header: filter mode */               tr("M")
+      };
       return names[column];
    }
@@ -195,9 +202,9 @@
          case 4: return f.inverted;
          case 5:
-                 switch(f.mode){
-                    case replace: return tr("R");
-                    case add: return tr("A");
-                    case remove: return tr("D");
-                    case in_selection: return tr("F");
+                 switch(f.mode){ /* translators notes must be in front */
+                    case replace:      /* filter mode: replace */      return tr("R");
+                    case add:          /* filter mode: add */          return tr("A");
+                    case remove:       /* filter mode: remove */       return tr("D");
+                    case in_selection: /* filter mode: in selection */ return tr("F");
                  }
       }
Index: /trunk/src/org/openstreetmap/josm/tools/I18n.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/I18n.java	(revision 2173)
+++ /trunk/src/org/openstreetmap/josm/tools/I18n.java	(revision 2174)
@@ -31,12 +31,12 @@
     public static final String tr(String text, Object... objects) {
         if (i18n == null)
-            return MessageFormat.format(text, objects);
-        return i18n.tr(text, objects);
+            return filter(MessageFormat.format(text, objects));
+        return filter(i18n.tr(text, objects));
     }
 
     public static final String tr(String text) {
         if (i18n == null)
-            return text;
-        return i18n.tr(text);
+            return filter(text);
+        return filter(i18n.tr(text));
     }
 
@@ -47,12 +47,20 @@
     public static final String trn(String text, String pluralText, long n, Object... objects) {
         if (i18n == null)
-            return n == 1 ? tr(text, objects) : tr(pluralText, objects);
-        return i18n.trn(text, pluralText, n, objects);
+            return filter(n == 1 ? tr(text, objects) : tr(pluralText, objects));
+        return filter(i18n.trn(text, pluralText, n, objects));
     }
 
     public static final String trn(String text, String pluralText, long n) {
         if (i18n == null)
-            return n == 1 ? tr(text) : tr(pluralText);
-        return i18n.trn(text, pluralText, n);
+            return filter(n == 1 ? tr(text) : tr(pluralText));
+        return filter(i18n.trn(text, pluralText, n));
+    }
+
+    public static final String filter(String text)
+    {
+        int i;
+        if(text.startsWith("~") && (i = text.indexOf(":")) >= 0)
+            return text.substring(i+1);
+        return text;
     }
 
