Changeset 1989 in josm


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

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

Location:
trunk/src/org/openstreetmap/josm
Files:
15 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
  • trunk/src/org/openstreetmap/josm/data/osm/OsmPrimitiveType.java

    r1814 r1989  
    33import static org.openstreetmap.josm.tools.I18n.tr;
    44
    5 import javax.swing.ImageIcon;
    6 
    75public enum OsmPrimitiveType {
    86
    9     NODE ("node", tr("node"), tr("nodes")),
    10     WAY  ("way", tr("way"), tr("ways")),
    11     RELATION ("relation", tr("relation"), tr("relations")),
    12     CHANGESET ("changeset", tr("changeset"), tr("changesets"));
     7    NODE ("node"),
     8    WAY  ("way"),
     9    RELATION ("relation"),
     10    CHANGESET ("changeset");
    1311
    1412    private String apiTypeName;
    15     private String localizedDisplayNameSingular;
    16     private String localizedDisplayNamePlural;
    1713
    18     OsmPrimitiveType(String apiTypeName, String localizedDisplayNameSingular, String localizedDisplayNamePlural) {
     14    OsmPrimitiveType(String apiTypeName) {
    1915        this.apiTypeName = apiTypeName;
    20         this.localizedDisplayNameSingular = localizedDisplayNameSingular;
    21         this.localizedDisplayNamePlural = localizedDisplayNamePlural;
    2216    }
    2317
    2418    public String getAPIName() {
    2519        return apiTypeName;
    26     }
    27 
    28     public String getLocalizedDisplayNameSingular() {
    29         return localizedDisplayNameSingular;
    30     }
    31 
    32     public String getLocalizedDisplayNamePlural() {
    33         return localizedDisplayNamePlural;
    3420    }
    3521
  • trunk/src/org/openstreetmap/josm/gui/ExceptionDialogUtil.java

    r1967 r1989  
    7878    public static void explainGeneric(Exception e) {
    7979        String msg = e.getMessage();
    80         if (msg == null) {
     80        if (msg == null || msg.trim().equals("")) {
    8181            msg = e.toString();
    8282        }
  • trunk/src/org/openstreetmap/josm/gui/conflict/pair/properties/PropertiesMerger.java

    r1954 r1989  
    586586                    null,
    587587                    tr("<html>To keep your local version, JOSM<br>"
    588                             + "has to reset the id of {0} {1} to 0.<br>"
     588                            + "has to reset the id of primitive {0} to 0.<br>"
    589589                            + "On the next upload the server will assign<br>"
    590590                            + "it a new id.<br>"
    591591                            + "Do yo agree?</html>",
    592                             OsmPrimitiveType.from(model.getMyPrimitive()).getLocalizedDisplayNamePlural(),
    593592                            model.getMyPrimitive().id
    594593                    ),
  • trunk/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java

    r1847 r1989  
    33
    44import static org.openstreetmap.josm.tools.I18n.tr;
     5import static org.openstreetmap.josm.tools.I18n.marktr;
    56
    67import java.awt.BorderLayout;
     
    338339
    339340        protected void renderText(History h) {
    340             setText(h.getEarliest().getType().getLocalizedDisplayNameSingular() + " " + h.getId());
     341            String msg = "";
     342            switch(h.getEarliest().getType()) {
     343            case NODE:  msg = marktr("Node {0}"); break;
     344            case WAY: msg = marktr("Way {0}"); break;
     345            case RELATION: msg = marktr("Relation {0}"); break;
     346            }
     347            setText(tr(msg,h.getId()));
    341348        }
    342349
     
    412419                        continue;
    413420                    }
    414                     progressMonitor.indeterminateSubTask(tr("Loading history for {0} with id {1}",
    415                             OsmPrimitiveType.from(primitive).getLocalizedDisplayNameSingular(),
     421                    String msg = "";
     422                    switch(OsmPrimitiveType.from(primitive)) {
     423                    case NODE: msg = marktr("Loading history for node {0}"); break;
     424                    case WAY: msg = marktr("Loading history for way {0}"); break;
     425                    case RELATION: msg = marktr("Loading history for relation {0}"); break;
     426                    }
     427                    progressMonitor.indeterminateSubTask(tr(msg,
    416428                            Long.toString(primitive.id)));
    417429                    OsmServerHistoryReader reader = null;
  • trunk/src/org/openstreetmap/josm/gui/history/HistoryBrowserDialog.java

    r1987 r1989  
    33
    44import static org.openstreetmap.josm.tools.I18n.tr;
     5import static org.openstreetmap.josm.tools.I18n.marktr;
    56
    67import java.awt.BorderLayout;
     
    3435     */
    3536    protected void renderTitle(History h) {
    36         String title = tr(
    37                 "History for {0} {1}",
    38                 h.getEarliest().getType().getLocalizedDisplayNameSingular(),
     37        String title = "";
     38        switch(h.getEarliest().getType()) {
     39        case NODE:  title = marktr("History for node {0}"); break;
     40        case WAY: title = marktr("History for way {0}"); break;
     41        case RELATION:  title = marktr("History for relation {0}"); break;
     42        }
     43        setTitle(tr(
     44                title,
    3945                Long.toString(h.getId())
    40         );
    41         setTitle(title);
     46        ));
    4247    }
    4348
  • trunk/src/org/openstreetmap/josm/gui/history/RelationMemberListTableCellRenderer.java

    r1709 r1989  
    33
    44import java.awt.Color;
     5import static org.openstreetmap.josm.tools.I18n.tr;
    56import java.awt.Component;
    67import java.util.HashMap;
     
    7374            bgColor = BGCOLOR_EMPTY_ROW;
    7475        } else {
    75             text = member.getPrimitiveType().getLocalizedDisplayNameSingular() + " " + member.getPrimitiveId();
     76            text = "";
     77            switch(member.getPrimitiveType()) {
     78            case NODE: text = tr("Node {0}", member.getPrimitiveId()); break;
     79            case WAY: text = tr("Way {0}", member.getPrimitiveId()); break;
     80            case RELATION: text = tr("Relation {0}", member.getPrimitiveId()); break;
     81            }
    7682            if (model.isSameInOppositeWay(row)) {
    7783                bgColor = Color.WHITE;
  • trunk/src/org/openstreetmap/josm/io/MultiFetchServerObjectReader.java

    r1938 r1989  
    365365        for (long id : pkg) {
    366366            try {
    367                 progressMonitor.setCustomText(tr("Fetching {0} with id {1} from ''{2}''", type.getLocalizedDisplayNameSingular(), id, OsmApi.getOsmApi().getBaseUrl()));
     367                String msg = "";
     368                switch(type) {
     369                case NODE: msg = tr("Fetching node with id {0} from ''{1}''", id, OsmApi.getOsmApi().getBaseUrl()); break;
     370                case WAY: msg = tr("Fetching way with id {0} from ''{1}''", id, OsmApi.getOsmApi().getBaseUrl()); break;
     371                case RELATION: msg = tr("Fetching relation with id {0} from ''{1}''", id, OsmApi.getOsmApi().getBaseUrl()); break;
     372                }
     373                progressMonitor.setCustomText(msg);
    368374                singleGetId(type, id, progressMonitor);
    369375            } catch(OsmApiException e) {
     
    397403     */
    398404    protected void fetchPrimitives(Set<Long> ids, OsmPrimitiveType type, ProgressMonitor progressMonitor) throws OsmTransferException{
    399         progressMonitor.setCustomText(tr("Fetching a package of {0} from ''{1}''", type.getLocalizedDisplayNameSingular(), OsmApi.getOsmApi().getBaseUrl()));
     405        String msg = "";
     406        switch(type) {
     407        case NODE: msg = tr("Fetching a package of nodes from ''{0}''", OsmApi.getOsmApi().getBaseUrl()); break;
     408        case WAY:  msg = tr("Fetching a package of ways from ''{0}''", OsmApi.getOsmApi().getBaseUrl()); break;
     409        case RELATION:  msg = tr("Fetching a package of relations from ''{0}''", OsmApi.getOsmApi().getBaseUrl()); break;
     410        }
     411        progressMonitor.setCustomText(msg);
    400412        Set<Long> toFetch = new HashSet<Long>(ids);
    401413        toFetch.addAll(ids);
  • trunk/src/org/openstreetmap/josm/io/OsmServerWriter.java

    r1894 r1989  
    33
    44import static org.openstreetmap.josm.tools.I18n.tr;
     5import static org.openstreetmap.josm.tools.I18n.marktr;
    56
    67import java.util.Collection;
     
    9596                int progress = progressMonitor.getTicks();
    9697                String time_left_str = timeLeft(progress, primitives.size());
     98                String msg = "";
     99                switch(OsmPrimitiveType.from(osm)) {
     100                case NODE: msg = marktr("{0}% ({1}/{2}), {3} left. Uploading node ''{4}'' (id: {5})"); break;
     101                case WAY: msg = marktr("{0}% ({1}/{2}), {3} left. Uploading way ''{4}'' (id: {5})"); break;
     102                case RELATION: msg = marktr("{0}% ({1}/{2}), {3} left. Uploading relation ''{4}'' (id: {5})"); break;
     103                }
    97104                progressMonitor.subTask(
    98                         tr("{0}% ({1}/{2}), {3} left. Uploading {4}: {5} (id: {6})",
    99                                 Math.round(100.0*progress/primitives.size()), progress,
    100                                 primitives.size(), time_left_str,
    101                                 OsmPrimitiveType.from(osm).getLocalizedDisplayNameSingular(),
     105                        tr(msg,
     106                                Math.round(100.0*progress/primitives.size()),
     107                                progress,
     108                                primitives.size(),
     109                                time_left_str,
    102110                                NAME_FORMATTER.getName(osm),
    103111                                osm.id));
Note: See TracChangeset for help on using the changeset viewer.