Changeset 6979


Ignore:
Timestamp:
09/20/10 19:40:36 (9 years ago)
Author:
mlg
Message:

Bug fixing : locales listing in the connection dialog
Only locales for which a translation file exists are listed in the connection dialog.

Location:
extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/transverse/util/Messages.java

    r6842 r6979  
    11package fr.mael.jiwigo.transverse.util; 
    22 
     3import java.io.File; 
     4import java.io.FilenameFilter; 
     5import java.util.ArrayList; 
     6import java.util.List; 
    37import java.util.Locale; 
    48import java.util.ResourceBundle; 
     9import java.util.Set; 
     10import java.util.TreeSet; 
    511 
    612/** 
     
    4652    } 
    4753 
     54    /** 
     55     * Gets available translations 
     56     * @return the list of available translations 
     57     */ 
     58    public static List<Locale> getAvailableBundles() { 
     59        ClassLoader loader = Thread.currentThread().getContextClassLoader(); 
     60        final String bundlepackage = "fr.mael.jiwigo.trad"; 
     61        final String bundlename = "messages"; 
     62 
     63        File root = new File(loader.getResource(bundlepackage.replace('.', '/')).getFile()); 
     64        File[] files = root.listFiles(new FilenameFilter() { 
     65            public boolean accept(File dir, String name) { 
     66                return name.matches("^" + bundlename + "(_\\w{2}(_\\w{2})?)?\\.properties$"); 
     67            } 
     68        }); 
     69 
     70        Set<String> languages = new TreeSet<String>(); 
     71        for (File file : files) { 
     72            languages.add(file.getName().replaceAll("^" + bundlename + "(_)?|\\.properties$", "")); 
     73        } 
     74 
     75        List<Locale> availableLocales = new ArrayList<Locale>(); 
     76        for (Locale locale : Locale.getAvailableLocales()) { 
     77            for (String s : languages) { 
     78                if (s.equals(locale.getLanguage())) { 
     79                    availableLocales.add(locale); 
     80                } 
     81            } 
     82        } 
     83        return availableLocales; 
     84    } 
     85 
    4886} 
  • extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/ui/ConnexionDialog.java

    r6959 r6979  
    1313import java.text.SimpleDateFormat; 
    1414import java.util.Arrays; 
     15import java.util.List; 
    1516import java.util.Locale; 
    1617 
     
    218219     */ 
    219220    class localeModel extends AbstractListModel implements ComboBoxModel { 
    220         Locale[] locales = SimpleDateFormat.getAvailableLocales(); 
     221        //      Locale[] locales = SimpleDateFormat.getAvailableLocales(); 
     222        List<Locale> locales = Messages.getAvailableBundles(); 
    221223        String[] localesNames; 
    222224 
     
    224226 
    225227        public localeModel() { 
    226             localesNames = new String[locales.length]; 
     228            localesNames = new String[locales.size()]; 
    227229            int compteur = 0; 
    228230            for (Locale locale : locales) { 
     
    238240 
    239241        public int getSize() { 
    240             return locales.length; 
     242            return locales.size(); 
    241243        } 
    242244 
Note: See TracChangeset for help on using the changeset viewer.