Ignore:
Timestamp:
2009-08-23T19:34:25+02:00 (14 years ago)
Author:
Gubaer
Message:

fixed #3281: OsmPrimitiveType fails for fusional and/or agglutinative languages

Location:
trunk/src/org/openstreetmap/josm/command
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/command/AddCommand.java

    r1857 r1989  
    22package org.openstreetmap.josm.command;
    33
     4import static org.openstreetmap.josm.tools.I18n.marktr;
    45import static org.openstreetmap.josm.tools.I18n.tr;
    56
     
    6162
    6263    @Override public MutableTreeNode description() {
     64        String msg;
     65        switch(OsmPrimitiveType.from(osm)) {
     66        case NODE: msg = marktr("Add node {0}"); break;
     67        case WAY: msg = marktr("Add way {0}"); break;
     68        case RELATION: msg = marktr("Add relation {0}"); break;
     69        default: /* should not happen */msg = ""; break;
     70        }
     71
    6372        return new DefaultMutableTreeNode(
    6473                new JLabel(
    65                         tr("Add {0} {1}",
    66                                 OsmPrimitiveType.from(osm).getLocalizedDisplayNameSingular(),
     74                        tr(msg,
    6775                                new PrimitiveNameFormatter().getName(osm)
    6876                        ),
  • trunk/src/org/openstreetmap/josm/command/ChangeCommand.java

    r1814 r1989  
    22package org.openstreetmap.josm.command;
    33
     4import static org.openstreetmap.josm.tools.I18n.marktr;
    45import static org.openstreetmap.josm.tools.I18n.tr;
    56
     
    4445
    4546    @Override public MutableTreeNode description() {
     47        String msg = "";
     48        switch(OsmPrimitiveType.from(osm)) {
     49        case NODE: msg = marktr("Change node {0}"); break;
     50        case WAY: msg = marktr("Change way {0}"); break;
     51        case RELATION: msg = marktr("Change relation {0}"); break;
     52        }
    4653        return new DefaultMutableTreeNode(
    47                 new JLabel(tr("Change {0} {1}",
    48                         OsmPrimitiveType.from(osm).getLocalizedDisplayNameSingular(),
     54                new JLabel(tr(msg,
    4955                        new PrimitiveNameFormatter().getName(osm)),
    5056                        ImageProvider.get(OsmPrimitiveType.from(osm)),
  • trunk/src/org/openstreetmap/josm/command/ChangePropertyCommand.java

    r1814 r1989  
    33
    44import static org.openstreetmap.josm.tools.I18n.tr;
     5import static org.openstreetmap.josm.tools.I18n.marktr;
    56import static org.openstreetmap.josm.tools.I18n.trn;
    67
     
    9899            OsmPrimitive primitive = objects.iterator().next();
    99100            String name = formatter.getName(primitive);
    100             text = value == null
    101             ? tr("Remove \"{0}\" for {1} ''{2}''", key,
    102                     OsmPrimitiveType.from(primitive).getLocalizedDisplayNameSingular(),
    103                     name)
    104                     : tr("Set {0}={1} for {2} ''{3}''",
    105                             key,
    106                             value,
    107                             OsmPrimitiveType.from(primitive).getLocalizedDisplayNameSingular(),
    108                             name
    109                     );
     101            String msg = "";
     102            if (value == null) {
     103                switch(OsmPrimitiveType.from(primitive)) {
     104                case NODE: msg = marktr("Remove \"{0}\" for node ''{1}''"); break;
     105                case WAY: msg = marktr("Remove \"{0}\" for way ''{1}''"); break;
     106                case RELATION: msg = marktr("Remove \"{0}\" for relation ''{1}''"); break;
     107                }
     108                text = tr(msg, key, name);
     109            } else {
     110                switch(OsmPrimitiveType.from(primitive)) {
     111                case NODE: msg = marktr("Set {0}={1} for node ''{2}''"); break;
     112                case WAY: msg = marktr("Set {0}={1} for way ''{2}''"); break;
     113                case RELATION: msg = marktr("Set {0}={1} for relation ''{2}''"); break;
     114                }
     115                text = tr(msg, key, value, name);
     116            }
    110117        }
    111118        else
  • trunk/src/org/openstreetmap/josm/command/DeleteCommand.java

    r1937 r1989  
    1515import java.util.LinkedList;
    1616import java.util.List;
     17import java.util.Set;
    1718
    1819import javax.swing.JLabel;
     
    107108        if (toDelete.size() == 1) {
    108109            OsmPrimitive primitive = toDelete.iterator().next();
    109             return new DefaultMutableTreeNode(new JLabel(tr("Delete {1} {0}", new PrimitiveNameFormatter()
    110             .getName(primitive), OsmPrimitiveType.from(primitive).getLocalizedDisplayNameSingular()),
    111             ImageProvider.get(OsmPrimitiveType.from(primitive)), JLabel.HORIZONTAL));
    112         }
    113 
    114         String cname = null;
    115         String apiname = null;
    116         String cnamem = null;
     110            String msg = "";
     111            switch(OsmPrimitiveType.from(primitive)) {
     112            case NODE: msg = "Delete node {0}"; break;
     113            case WAY: msg = "Delete way {0}"; break;
     114            case RELATION:msg = "Delete relation {0}"; break;
     115            }
     116
     117            return new DefaultMutableTreeNode(new JLabel(tr(msg, new PrimitiveNameFormatter().getName(primitive)),
     118                    ImageProvider.get(OsmPrimitiveType.from(primitive)), JLabel.HORIZONTAL));
     119        }
     120
     121        Set<OsmPrimitiveType> typesToDelete = new HashSet<OsmPrimitiveType>();
    117122        for (OsmPrimitive osm : toDelete) {
    118             if (cname == null) {
    119                 apiname = OsmPrimitiveType.from(osm).getAPIName();
    120                 cname = OsmPrimitiveType.from(osm).getLocalizedDisplayNameSingular();
    121                 cnamem = OsmPrimitiveType.from(osm).getLocalizedDisplayNamePlural();
    122             } else if (!cname.equals(OsmPrimitiveType.from(osm).getLocalizedDisplayNameSingular())) {
    123                 apiname = "object";
    124                 cname = trn("object", "objects", 1);
    125                 cnamem = trn("object", "objects", 2);
    126             }
    127         }
    128         DefaultMutableTreeNode root = new DefaultMutableTreeNode(new JLabel(tr("Delete {0} {1}", toDelete.size(), trn(
    129                 cname, cnamem, toDelete.size())), ImageProvider.get("data", apiname), JLabel.HORIZONTAL));
     123            typesToDelete.add(OsmPrimitiveType.from(osm));
     124        }
     125        String msg = "";
     126        String apiname = "object";
     127        if (typesToDelete.size() > 1) {
     128            msg = trn("Delete {0} object", "Delete {0} objects", toDelete.size(), toDelete.size());
     129        } else {
     130            OsmPrimitiveType t = typesToDelete.iterator().next();
     131            apiname = t.getAPIName();
     132            switch(t) {
     133            case NODE: msg = trn("Delete {0} node", "Delete {0} nodes", toDelete.size(), toDelete.size()); break;
     134            case WAY: msg = trn("Delete {0} way", "Delete {0} ways", toDelete.size(), toDelete.size()); break;
     135            case RELATION: msg = trn("Delete {0} relation", "Delete {0} relations", toDelete.size(), toDelete.size()); break;
     136            }
     137        }
     138        DefaultMutableTreeNode root = new DefaultMutableTreeNode(
     139                new JLabel(msg, ImageProvider.get("data", apiname), JLabel.HORIZONTAL)
     140        );
    130141        for (OsmPrimitive osm : toDelete) {
    131142            root.add(new DefaultMutableTreeNode(new JLabel(new PrimitiveNameFormatter().getName(osm), ImageProvider
  • trunk/src/org/openstreetmap/josm/command/RemoveRelationMemberCommand.java

    r1951 r1989  
    33
    44import static org.openstreetmap.josm.tools.I18n.tr;
     5import static org.openstreetmap.josm.tools.I18n.marktr;
    56
    67import java.util.Collection;
     
    6465
    6566    @Override public MutableTreeNode description() {
     67        String msg = "";
     68        switch(OsmPrimitiveType.from(member.member)) {
     69        case NODE: msg = marktr("Remove node ''{0}'' at position {1} from relation ''{2}''"); break;
     70        case WAY: msg = marktr("Remove way ''{0}'' at position {1} from relation ''{2}''"); break;
     71        case RELATION: msg = marktr("Remove relation ''{0}'' at position {1} from relation ''{2}''"); break;
     72        }
    6673        return new DefaultMutableTreeNode(
    6774                new JLabel(
    68                         tr("Remove relation member {0} {1}",
    69                                 OsmPrimitiveType.from(relation).getLocalizedDisplayNameSingular(),
     75                        tr(msg,
     76                                new PrimitiveNameFormatter().getName(member.member),
     77                                relation.getMembers().indexOf(member),
    7078                                new PrimitiveNameFormatter().getName(relation)
    7179                        ),
  • trunk/src/org/openstreetmap/josm/command/TagConflictResolveCommand.java

    r1954 r1989  
    33
    44import static org.openstreetmap.josm.tools.I18n.tr;
     5import static org.openstreetmap.josm.tools.I18n.marktr;
    56
    67import java.util.Collection;
     
    6465    @Override
    6566    public MutableTreeNode description() {
     67        String msg = "";
     68        switch(OsmPrimitiveType.from(conflict.getMy())) {
     69        case NODE: msg = marktr("Resolve {0} tag conflicts in node {1}"); break;
     70        case WAY: msg = marktr("Resolve {0} tag conflicts in way {1}"); break;
     71        case RELATION: msg = marktr("Resolve {0} tag conflicts in relation {1}"); break;
     72        }
    6673        return new DefaultMutableTreeNode(
    6774                new JLabel(
    68                         tr("Resolve {0} tag conflicts in {1} {2}",getNumDecidedConflicts(), OsmPrimitiveType.from(conflict.getMy()).getLocalizedDisplayNameSingular(), conflict.getMy().id),
     75                        tr(msg,getNumDecidedConflicts(), conflict.getMy().id),
    6976                        ImageProvider.get("data", "object"),
    7077                        JLabel.HORIZONTAL
  • trunk/src/org/openstreetmap/josm/command/VersionConflictResolveCommand.java

    r1750 r1989  
    33
    44import static org.openstreetmap.josm.tools.I18n.tr;
     5import static org.openstreetmap.josm.tools.I18n.marktr;
    56
    67import java.util.Collection;
     
    3637    @Override
    3738    public MutableTreeNode description() {
     39        String msg = "";
     40        switch(OsmPrimitiveType.from(conflict.getMy())) {
     41        case NODE: msg = marktr("Resolve version conflicts for node {0}"); break;
     42        case WAY: msg = marktr("Resolve version conflicts for way {0}"); break;
     43        case RELATION: msg = marktr("Resolve version conflicts for relation {0}"); break;
     44        }
    3845        return new DefaultMutableTreeNode(
    3946                new JLabel(
    40                         tr("Resolve version conflicts for {0} {1}",OsmPrimitiveType.from(conflict.getMy()).getLocalizedDisplayNameSingular(),conflict.getMy().id),
     47                        tr(msg,conflict.getMy().id),
    4148                        ImageProvider.get("data", "object"),
    4249                        JLabel.HORIZONTAL
Note: See TracChangeset for help on using the changeset viewer.