changeLocale.java 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package jsf.locale;
  2. import javax.faces.context.FacesContext;
  3. import javax.faces.event.ActionEvent;
  4. import java.util.HashMap;
  5. import java.util.Locale;
  6. import java.util.Map;
  7. /*
  8. * en 영어
  9. * fr 프랑스어
  10. * zh 중어
  11. * de 독어
  12. * ja 일어
  13. * ko 한국어
  14. */
  15. public class changeLocale {
  16. private Map<String, Locale> locales = null;
  17. public changeLocale() {
  18. locales = new HashMap<String, Locale>(7);
  19. locales.put("German", Locale.GERMANY);
  20. locales.put("English", Locale.ENGLISH);
  21. locales.put("France", Locale.FRENCH);
  22. locales.put("Japan", Locale.JAPANESE);
  23. locales.put("Korea", Locale.KOREAN);
  24. locales.put("China", Locale.CHINESE);
  25. }
  26. public void chooseLocale(ActionEvent event) {
  27. String current = event.getComponent().getId();
  28. FacesContext context = FacesContext.getCurrentInstance();
  29. context.getViewRoot().setLocale(locales.get(current));
  30. }
  31. static Class loadClass(String name, Object fallbackClass) throws ClassNotFoundException {
  32. ClassLoader loader = getCurrentLoader(fallbackClass);
  33. return loader.loadClass(name);
  34. }
  35. static ClassLoader getCurrentLoader(Object fallbackClass) {
  36. ClassLoader loader = Thread.currentThread().getContextClassLoader();
  37. if (loader == null) {
  38. loader = fallbackClass.getClass().getClassLoader();
  39. }
  40. return loader;
  41. }
  42. }