Changeset 1989 in josm


Ignore:
Timestamp:
Aug 23, 2009 7:34:25 PM (4 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.