Changeset 2785 in josm for trunk


Ignore:
Timestamp:
2010-01-09T06:53:00+01:00 (10 years ago)
Author:
mjulius
Message:

treat 'en_US' default locale same as 'en'

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/tools/I18n.java

    r2757 r2785  
    99import java.util.Comparator;
    1010import java.util.HashMap;
    11 import java.util.LinkedList;
    1211import java.util.Locale;
    13 import java.util.MissingResourceException;
    1412import java.util.Vector;
    1513
    1614import org.openstreetmap.josm.Main;
    17 import org.openstreetmap.josm.gui.progress.ProgressMonitor;
    1815
    1916/**
     
    2421public class I18n {
    2522    private enum PluralMode { MODE_NOTONE, MODE_NONE, MODE_GREATERONE,
    26     MODE_CS, MODE_AR, MODE_PL, MODE_RO, MODE_RU, MODE_SK, MODE_SL}
     23        MODE_CS, MODE_AR, MODE_PL, MODE_RO, MODE_RU, MODE_SK, MODE_SL}
    2724    private static PluralMode pluralMode = PluralMode.MODE_NOTONE; /* english default */
    2825    private static HashMap<String, String> strings = null;
     
    168165
    169166        /* try initial language settings, may be changed later again */
    170         if(!load(Locale.getDefault().toString()))
     167        if(!load(Locale.getDefault().toString())) {
    171168            Locale.setDefault(Locale.ENGLISH);
     169        }
    172170    }
    173171
    174172    private static boolean load(String l)
    175173    {
    176         if(l.equals("en"))
    177         {
    178           strings = null;
    179           pstrings = null;
    180           pluralMode = PluralMode.MODE_NOTONE;
    181           return true;
     174        if(l.equals("en") || l.equals("en_US"))
     175        {
     176            strings = null;
     177            pstrings = null;
     178            pluralMode = PluralMode.MODE_NOTONE;
     179            return true;
    182180        }
    183181        URL en = Main.class.getResource("/data/en.lang");
     
    188186        {
    189187            int i = l.indexOf('_');
    190             if (i > 0)
     188            if (i > 0) {
    191189                l = l.substring(0, i);
     190            }
    192191            tr = Main.class.getResource("/data/"+l+".lang");
    193192            if(tr == null)
     
    211210               string
    212211           }
    213         */
     212         */
    214213        try
    215214        {
    216215            InputStream ens = new BufferedInputStream(en.openStream());
    217216            InputStream trs = new BufferedInputStream(tr.openStream());
    218             if(ens == null || trs == null)
    219                 return false;
    220217            byte[] enlen = new byte[2];
    221218            byte[] trlen = new byte[2];
     
    230227                    if((ennum == -1 && trnum != -1) || (ennum != -1 && trnum == -1)) /* files do not match */
    231228                        return false;
    232                     if(ennum == -1) /* EOF */
     229                    if(ennum == -1) {
    233230                        break;
     231                    }
    234232                    String[] enstrings = new String[ennum];
    235233                    String[] trstrings = new String[trnum];
     
    240238                            return false;
    241239                        val = (enlen[0] < 0 ? 256+enlen[0]:enlen[0])*256+(enlen[1] < 0 ? 256+enlen[1]:enlen[1]);
    242                         if(val > str.length)
     240                        if(val > str.length) {
    243241                            str = new byte[val];
     242                        }
    244243                        int rval = ens.read(str, 0, val);
    245244                        if(rval != val) /* file corrupt */
     
    253252                            return false;
    254253                        val = (trlen[0] < 0 ? 256+trlen[0]:trlen[0])*256+(trlen[1] < 0 ? 256+trlen[1]:trlen[1]);
    255                         if(val > str.length)
     254                        if(val > str.length) {
    256255                            str = new byte[val];
     256                        }
    257257                        int rval = trs.read(str, 0, val);
    258258                        if(rval != val) /* file corrupt */
     
    260260                        trstrings[i] = new String(str, 0, val, "utf-8");
    261261                    }
    262                     if(trnum > 0)
     262                    if(trnum > 0) {
    263263                        p.put(enstrings[0], trstrings);
     264                    }
    264265                }
    265266                else
     
    269270                    if(enval != trval) /* files do not match */
    270271                        return false;
    271                     if(enval == -1) /* EOF */
     272                    if(enval == -1) {
    272273                        break;
     274                    }
    273275                    if(enval != 2) /* files corrupt */
    274276                        return false;
     
    283285                    else
    284286                    {
    285                         if(enval > str.length)
     287                        if(enval > str.length) {
    286288                            str = new byte[enval];
    287                         if(trval > str.length)
     289                        }
     290                        if(trval > str.length) {
    288291                            str = new byte[trval];
     292                        }
    289293                        int val = ens.read(str, 0, enval);
    290294                        if(val != enval) /* file corrupt */
     
    366370        case MODE_AR:
    367371            return ((n == 0) ? 0 : ((n == 1) ? 1 : ((n == 2) ? 2 : ((((n % 100) >= 3)
    368             && ((n % 100) <= 10)) ? 3 : ((((n % 100) >= 11) && ((n % 100) <= 99)) ? 4 : 5)))));
     372                    && ((n % 100) <= 10)) ? 3 : ((((n % 100) >= 11) && ((n % 100) <= 99)) ? 4 : 5)))));
    369373        case MODE_PL:
    370374            return ((n == 1) ? 0 : (((((n % 10) >= 2) && ((n % 10) <= 4))
    371             && (((n % 100) < 10) || ((n % 100) >= 20))) ? 1 : 2));
     375                    && (((n % 100) < 10) || ((n % 100) >= 20))) ? 1 : 2));
    372376        case MODE_RO:
    373377            return ((n == 1) ? 0 : ((((n % 100) > 19) || (((n % 100) == 0) && (n != 0))) ? 2 : 1));
    374378        case MODE_RU:
    375379            return ((((n % 10) == 1) && ((n % 100) != 11)) ? 0 : (((((n % 10) >= 2)
    376             && ((n % 10) <= 4)) && (((n % 100) < 10) || ((n % 100) >= 20))) ? 1 : 2));
     380                    && ((n % 10) <= 4)) && (((n % 100) < 10) || ((n % 100) >= 20))) ? 1 : 2));
    377381        case MODE_SK:
    378382            return ((n == 1) ? 1 : (((n >= 2) && (n <= 4)) ? 2 : 0));
    379383        case MODE_SL:
    380384            return (((n % 100) == 1) ? 1 : (((n % 100) == 2) ? 2 : ((((n % 100) == 3)
    381             || ((n % 100) == 4)) ? 3 : 0)));
     385                    || ((n % 100) == 4)) ? 3 : 0)));
    382386        }
    383387        return 0;
Note: See TracChangeset for help on using the changeset viewer.