TGResourceBundle.java :  » Music » TuxGuitar-1.2 » org » herac » tuxguitar » gui » system » language » Java Open Source

Java Open Source » Music » TuxGuitar 1.2 
TuxGuitar 1.2 » org » herac » tuxguitar » gui » system » language » TGResourceBundle.java
package org.herac.tuxguitar.gui.system.language;

import java.io.IOException;
import java.net.URL;
import java.util.Enumeration;
import java.util.Locale;
import java.util.Properties;

import org.herac.tuxguitar.gui.util.TGFileUtils;

public class TGResourceBundle {
  
  private Locale locale;
  private Properties properties;
  
  public TGResourceBundle(Locale locale, Properties properties){
    this.locale = locale;
    this.properties = properties;
  }
  
  public Locale getLocale() {
    return this.locale;
  }
  
  public void setLocale(Locale locale) {
    this.locale = locale;
  }
  
  public String getString(String key) {
    return this.properties.getProperty(key);
  }
  
  public static TGResourceBundle getBundle(String baseName, Locale locale){
    Properties properties = new Properties();
    
    String bundleName = baseName.replace('.','/');
    String bundleExtension = ".properties";
    
    // load default
    TGResourceBundle.loadResources( (bundleName + bundleExtension ), properties);
    
    // load language
    bundleName += "_";
    if(locale.getLanguage() != null && locale.getLanguage().length() > 0){
      bundleName += locale.getLanguage();
      TGResourceBundle.loadResources( (bundleName + bundleExtension ), properties);
    }
    
    // load country
    bundleName += "_";
    if(locale.getCountry() != null && locale.getCountry().length() > 0){
      bundleName += locale.getCountry();
      TGResourceBundle.loadResources( (bundleName + bundleExtension ), properties);
    }
    
    // load variant
    bundleName += "_";
    if(locale.getVariant() != null && locale.getVariant().length() > 0){
      bundleName += locale.getVariant();
      TGResourceBundle.loadResources( (bundleName + bundleExtension ), properties);
    }
    
    return new TGResourceBundle(locale, properties);
  }
  
  private static void loadResources(String name, Properties p){
    try {
      Enumeration enumeration = TGFileUtils.getResourceUrls(name);
      while (enumeration.hasMoreElements()) {
        URL url = (URL) enumeration.nextElement();
        Properties properties = new Properties();
        properties.load( url.openStream() );
        p.putAll(properties);
      }
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.