All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.opentripplanner.framework.resources.ResourceBundleSingleton Maven / Gradle / Ivy

The newest version!
package org.opentripplanner.framework.resources;

import java.util.Locale;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
import java.util.ResourceBundle.Control;
import java.util.Set;

/**
 * @author mabu
 */
public enum ResourceBundleSingleton {
  INSTANCE;

  static final ResourceBundle.Control noFallbackControl = Control.getNoFallbackControl(
    Control.FORMAT_PROPERTIES
  );
  private final Set internalKeys = Set.of(
    "corner",
    "unnamedStreet",
    "origin",
    "destination",
    "partOf",
    "price.free",
    "price.startMain"
  );

  //in singleton because resurce bundles are cached based on calling class
  //http://java2go.blogspot.com/2010/03/dont-be-smart-never-implement-resource.html
  public String localize(String key, Locale locale) {
    if (key == null) {
      return null;
    }
    if (locale == null) {
      locale = Locale.ROOT;
    }
    try {
      ResourceBundle resourceBundle;
      if (internalKeys.contains(key)) {
        resourceBundle = ResourceBundle.getBundle("internals", locale, noFallbackControl);
      } else {
        resourceBundle = ResourceBundle.getBundle("WayProperties", locale, noFallbackControl);
      }
      return resourceBundle.getString(key);
    } catch (MissingResourceException e) {
      return key;
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy