home *** CD-ROM | disk | FTP | other *** search
- package java.util;
-
- import java.io.Serializable;
-
- public final class Locale implements Cloneable, Serializable {
- public static final Locale ENGLISH = new Locale("en", "", "");
- public static final Locale FRENCH = new Locale("fr", "", "");
- public static final Locale GERMAN = new Locale("de", "", "");
- public static final Locale ITALIAN = new Locale("it", "", "");
- public static final Locale JAPANESE = new Locale("ja", "", "");
- public static final Locale KOREAN = new Locale("ko", "", "");
- public static final Locale CHINESE = new Locale("zh", "", "");
- public static final Locale SIMPLIFIED_CHINESE = new Locale("zh", "CN", "");
- public static final Locale TRADITIONAL_CHINESE = new Locale("zh", "TW", "");
- public static final Locale FRANCE = new Locale("fr", "FR", "");
- public static final Locale GERMANY = new Locale("de", "DE", "");
- public static final Locale ITALY = new Locale("it", "IT", "");
- public static final Locale JAPAN = new Locale("ja", "JP", "");
- public static final Locale KOREA = new Locale("ko", "KR", "");
- public static final Locale CHINA = new Locale("zh", "CN", "");
- public static final Locale PRC = new Locale("zh", "CN", "");
- public static final Locale TAIWAN = new Locale("zh", "TW", "");
- // $FF: renamed from: UK java.util.Locale
- public static final Locale field_0 = new Locale("en", "GB", "");
- // $FF: renamed from: US java.util.Locale
- public static final Locale field_1 = new Locale("en", "US", "");
- public static final Locale CANADA = new Locale("en", "CA", "");
- public static final Locale CANADA_FRENCH = new Locale("fr", "CA", "");
- static final long serialVersionUID = 9149081749638150636L;
- private String language = "";
- private String country = "";
- private String variant = "";
- private int hashcode = -1;
- private static Locale defaultLocale = new Locale(System.getProperty("user.language", "EN"), System.getProperty("user.region", ""));
-
- public Locale(String var1, String var2, String var3) {
- this.language = this.toLowerCase(var1);
- this.country = this.toUpperCase(var2);
- this.variant = this.toUpperCase(var3);
- }
-
- public Locale(String var1, String var2) {
- this.language = this.toLowerCase(var1);
- this.country = this.toUpperCase(var2);
- this.variant = "";
- }
-
- public static Locale getDefault() {
- return defaultLocale;
- }
-
- public static synchronized void setDefault(Locale var0) {
- SecurityManager var1 = System.getSecurityManager();
- if (var1 != null) {
- var1.checkPropertyAccess("user.language");
- }
-
- defaultLocale = var0;
- }
-
- public String getLanguage() {
- return this.language;
- }
-
- public String getCountry() {
- return this.country;
- }
-
- public String getVariant() {
- return this.variant;
- }
-
- public final String toString() {
- StringBuffer var1 = new StringBuffer(this.language);
- if (this.country.length() != 0) {
- var1.append('_');
- var1.append(this.country);
- if (this.variant.length() != 0) {
- var1.append('_');
- var1.append(this.variant);
- }
- }
-
- return var1.toString();
- }
-
- public String getISO3Language() throws MissingResourceException {
- if (this.language.length() == 0) {
- return "";
- } else {
- this.getISO2Language();
- ResourceBundle var1 = ResourceBundle.getBundle("java.text.resources.LocaleElements", this);
- return var1.getString("ShortLanguage");
- }
- }
-
- public String getISO3Country() throws MissingResourceException {
- if (this.country.length() == 0) {
- return "";
- } else {
- this.getISO2Country();
- ResourceBundle var1 = ResourceBundle.getBundle("java.text.resources.LocaleElements", this);
- return var1.getString("ShortCountry");
- }
- }
-
- String getISO2Language() throws MissingResourceException {
- if (this.language.length() == 0) {
- return "";
- } else {
- ResourceBundle var1 = ResourceBundle.getBundle("java.text.resources.LocaleElements", this);
- String var2 = var1.getString("LocaleString");
- String var3 = var2.substring(0, 2);
- if (!var3.equals(this.language)) {
- throw new MissingResourceException("Requested resource bundle not installed", "LocaleElements", "LocaleString");
- } else {
- return var3;
- }
- }
- }
-
- String getISO2Country() throws MissingResourceException {
- if (this.country.length() == 0) {
- return "";
- } else {
- ResourceBundle var1 = ResourceBundle.getBundle("java.text.resources.LocaleElements", this);
- String var2 = var1.getString("LocaleString");
- String var3 = var2.substring(3, 5);
- if (!var3.equals(this.country)) {
- throw new MissingResourceException("Requested resource bundle not installed", "LocaleElements", "LocaleString");
- } else {
- return var3;
- }
- }
- }
-
- public final String getDisplayLanguage() {
- return this.getDisplayLanguage(getDefault());
- }
-
- public String getDisplayLanguage(Locale var1) {
- String var2 = this.language;
- if (var2.length() == 0) {
- return "";
- } else {
- Locale var3 = (Locale)var1.clone();
- String var4 = null;
- int var5 = 0;
- boolean var6 = false;
- if (var3.variant.length() == 0) {
- var5 = 1;
- }
-
- if (var3.country.length() == 0) {
- var5 = 2;
- }
-
- while(!var6) {
- try {
- ResourceBundle var7 = ResourceBundle.getBundle("java.text.resources.LocaleElements", var3);
- var4 = this.findStringMatch((String[][])var7.getObject("Languages"), var2, var2);
- if (var4.length() != 0) {
- var6 = true;
- }
- } catch (Exception var8) {
- }
-
- if (!var6) {
- switch (var5) {
- case 0:
- var3.variant = "";
- break;
- case 1:
- var3.country = "";
- break;
- case 2:
- var3 = getDefault();
- break;
- case 3:
- var3 = new Locale("", "", "");
- break;
- default:
- return var2;
- }
-
- ++var5;
- }
- }
-
- return var4;
- }
- }
-
- public final String getDisplayCountry() {
- return this.getDisplayCountry(getDefault());
- }
-
- public String getDisplayCountry(Locale var1) {
- String var2 = this.country;
- if (var2.length() == 0) {
- return "";
- } else {
- Locale var3 = (Locale)var1.clone();
- String var4 = null;
- int var5 = 0;
- boolean var6 = false;
- if (var3.variant.length() == 0) {
- var5 = 1;
- }
-
- if (var3.country.length() == 0) {
- var5 = 2;
- }
-
- while(!var6) {
- try {
- ResourceBundle var7 = ResourceBundle.getBundle("java.text.resources.LocaleElements", var3);
- var4 = this.findStringMatch((String[][])var7.getObject("Countries"), var2, var2);
- if (var4.length() != 0) {
- var6 = true;
- }
- } catch (Exception var8) {
- }
-
- if (!var6) {
- switch (var5) {
- case 0:
- var3.variant = "";
- break;
- case 1:
- var3.country = "";
- break;
- case 2:
- var3 = getDefault();
- break;
- case 3:
- var3 = new Locale("", "", "");
- break;
- default:
- return var2;
- }
-
- ++var5;
- }
- }
-
- return var4;
- }
- }
-
- public final String getDisplayVariant() {
- return this.getDisplayVariant(getDefault());
- }
-
- public String getDisplayVariant(Locale var1) {
- String var2 = this.variant;
- if (var2.length() == 0) {
- return "";
- } else {
- Locale var3 = (Locale)var1.clone();
- String var4 = null;
- int var5 = 0;
- boolean var6 = false;
- if (var3.variant.length() == 0) {
- var5 = 1;
- }
-
- if (var3.country.length() == 0) {
- var5 = 2;
- }
-
- while(!var6) {
- try {
- ResourceBundle var7 = ResourceBundle.getBundle("java.text.resources.LocaleElements", var3);
- var4 = this.findStringMatch((String[][])var7.getObject("Variants"), var2, var2);
- if (var4.length() != 0) {
- var6 = true;
- }
- } catch (Exception var8) {
- }
-
- if (!var6) {
- switch (var5) {
- case 0:
- var3.variant = "";
- break;
- case 1:
- var3.country = "";
- break;
- case 2:
- var3 = getDefault();
- break;
- case 3:
- var3 = new Locale("", "", "");
- break;
- default:
- return var2;
- }
-
- ++var5;
- }
- }
-
- return var4;
- }
- }
-
- public final String getDisplayName() {
- return this.getDisplayName(getDefault());
- }
-
- public String getDisplayName(Locale var1) {
- StringBuffer var2 = new StringBuffer();
- String var3 = this.getDisplayLanguage(var1);
- String var4 = this.getDisplayCountry(var1);
- String var5 = this.getDisplayVariant(var1);
- if (var3.length() != 0) {
- var2.append(var3);
- if (var4.length() != 0 || var5.length() != 0) {
- var2.append(" (");
- if (var4.length() != 0) {
- var2.append(var4);
- if (var5.length() != 0) {
- var2.append(",");
- }
- }
-
- if (var5.length() != 0) {
- var2.append(var5);
- }
-
- var2.append(")");
- }
- } else if (var4.length() != 0) {
- var2.append(var4);
- if (var5.length() != 0) {
- var2.append(" (");
- var2.append(var5);
- var2.append(")");
- }
- } else if (var5.length() != 0) {
- var2.append(var5);
- }
-
- return var2.toString();
- }
-
- public Object clone() {
- try {
- Locale var1 = (Locale)super.clone();
- return var1;
- } catch (CloneNotSupportedException var2) {
- throw new InternalError();
- }
- }
-
- public synchronized int hashCode() {
- if (this.hashcode == -1) {
- this.hashcode = this.language.hashCode() ^ this.country.hashCode() ^ this.variant.hashCode();
- }
-
- return this.hashcode;
- }
-
- public boolean equals(Object var1) {
- if (this == var1) {
- return true;
- } else if (!(var1 instanceof Locale)) {
- return false;
- } else {
- Locale var2 = (Locale)var1;
- if (this.hashCode() != var2.hashCode()) {
- return false;
- } else if (!this.language.equals(var2.language)) {
- return false;
- } else if (!this.country.equals(var2.country)) {
- return false;
- } else {
- return this.variant.equals(var2.variant);
- }
- }
- }
-
- private String toLowerCase(String var1) {
- char[] var2 = var1.toCharArray();
-
- for(int var3 = 0; var3 < var2.length; ++var3) {
- var2[var3] = Character.toLowerCase(var2[var3]);
- }
-
- return new String(var2);
- }
-
- private String toUpperCase(String var1) {
- char[] var2 = var1.toCharArray();
-
- for(int var3 = 0; var3 < var2.length; ++var3) {
- var2[var3] = Character.toUpperCase(var2[var3]);
- }
-
- return new String(var2);
- }
-
- private String findStringMatch(String[][] var1, String var2, String var3) {
- for(int var4 = 0; var4 < var1.length; ++var4) {
- if (var2.equals(var1[var4][0])) {
- return var1[var4][1];
- }
- }
-
- if (!var3.equals(var2)) {
- for(int var5 = 0; var5 < var1.length; ++var5) {
- if (var3.equals(var1[var5][0])) {
- return var1[var5][1];
- }
- }
- }
-
- if (!"EN".equals(var2) && "EN".equals(var3)) {
- for(int var6 = 0; var6 < var1.length; ++var6) {
- if ("EN".equals(var1[var6][0])) {
- return var1[var6][1];
- }
- }
- }
-
- return "";
- }
- }
-