1 55 package org.lateralnz.common.util; 56 57 import java.util.HashMap ; 58 import java.util.Locale ; 59 60 65 public final class LocaleUtils implements Constants { 66 private static HashMap locales = new HashMap (); 67 68 private static final Locale get(String lang, String cty, String var) { 69 Locale loc = new Locale ((lang == null ? EMPTY : lang), (cty == null ? EMPTY : cty), (var == null ? EMPTY : var)); 70 71 synchronized (locales) { 72 String key = getKey(lang, cty, var); 73 if (!locales.containsKey(key)) { 74 locales.put(key, loc); 75 } 76 else { 77 loc = (Locale )locales.get(key); 78 } 79 } 80 81 return loc; 82 } 83 84 private static final String getKey(String lang, String cty, String var) { 85 lang = (lang == null ? lang = EMPTY : lang); 86 cty = (cty == null ? cty = EMPTY : cty); 87 var = (var == null ? var = EMPTY : var); 88 89 return lang + UNDERSCORE + cty + UNDERSCORE + var; 90 } 91 92 96 public static final Locale getLocale(String lang, String cty, String var) { 97 String key = getKey(lang, cty, var); 98 if (locales.containsKey(key)) { 99 return (Locale )locales.get(key); 100 } 101 else { 102 return get(lang, cty, var); 103 } 104 } 105 106 public static final Locale getLocale(String fullkey) { 107 if (locales.containsKey(fullkey)) { 108 return (Locale )locales.get(fullkey); 109 } 110 else { 111 String [] s = fullkey.split(UNDERSCORE, 3); 112 if (s.length == 3) { 113 return get(s[0], s[1], s[2]); 114 } 115 else if (s.length == 2) { 116 return get(s[0], s[1], null); 117 } 118 else { 119 return get(s[0], null, null); 120 } 121 } 122 } 123 124 } | Popular Tags |