1 53 54 package com.Yasna.forum.locale; 55 56 import com.Yasna.forum.PropertyManager; 57 58 import java.util.Locale ; 59 import java.util.ResourceBundle ; 60 61 public class YazdLocale { 62 private static Locale yazdlocale=null; 63 public final static Locale [] supportedLocales ={ 64 Locale.CANADA, 65 Locale.CANADA_FRENCH, 66 Locale.US, 67 Locale.GERMAN, 68 Locale.SIMPLIFIED_CHINESE, 69 Locale.ITALIAN, 70 new Locale ("no"), 72 new Locale ("es"), 73 new Locale ("da"), 74 new Locale ("ar") 75 }; 76 public static Locale getDefaultYazdLocale(){ 77 if (yazdlocale == null){ 78 setDefaultLocale(); 79 } 80 return yazdlocale; 81 } 82 public static String getLocaleKey(String key,Locale locale){ 83 ResourceBundle values ; 84 if (locale == null){ 85 values = ResourceBundle.getBundle("yazdLocale",getDefaultYazdLocale()); 86 } else { 87 values = ResourceBundle.getBundle("yazdLocale", locale); 88 } 89 return values.getString(key); 90 } 91 private static void setDefaultLocale(){ 92 if ("".equals(PropertyManager.getProperty("DefaultLocale")) || PropertyManager.getProperty("DefaultLocale")== null){ 93 yazdlocale= Locale.CANADA; 94 } else { 95 String locale = PropertyManager.getProperty("DefaultLocale"); 96 String lang=null,country=null,variant=null; 97 int pos = 0; 98 int delPos = 0; 99 if ((delPos = locale.indexOf(",", pos)) != -1) { 100 lang = locale.substring(pos, delPos); 101 pos = delPos + 1; }else if (pos <= locale.length()) { 103 lang = locale.substring(pos); 104 pos = locale.length() + 1; 105 } 106 if ((delPos = locale.indexOf(",", pos)) != -1) { 107 country = locale.substring(pos, delPos); 108 pos = delPos + 1; } else if (pos <= locale.length()) { 110 country = locale.substring(pos); 111 pos = locale.length() + 1; 112 } 113 if (pos <= locale.length()) { 114 variant=locale.substring(pos); 116 117 } 118 if (variant!=null){ 119 yazdlocale = new Locale (lang,country,variant); 120 }else if (country != null){ 121 yazdlocale = new Locale (lang,country); 123 }else{ 124 yazdlocale = new Locale (lang); 125 } 126 } 127 128 } 129 } 130 | Popular Tags |