1. Einführung in der Gegend
Gebietsschema bedeutet Region. Jedes Gebietsobjekt repräsentiert eine spezifische geografische, politische und kulturelle Region.
Es wird häufig verwendet, wenn Objekte, die Daten/Zeiten wie Datum, Kalender usw. darstellen; Weil die Zeitdarstellungsmethode in verschiedenen Regionen unterschiedlich ist.
Sprechen wir über drei gängige Möglichkeiten, um Gebietsschemasobjekte zu erstellen.
(1) Holen Sie sich das Standardgebietsschema
Wie man verwendet:
Locale Locale = Locale.getDefault ()
(2) Verwenden Sie direkt das statische Objekt von Locale
Die folgenden statischen Objekte finden Sie in Ort. Java
public static final Locale CANADApublic static final Locale CANADA_FRENCHpublic static final Locale CHINApublic static final Locale CHINESEpublic static final Locale ENGLISHpublic static final Locale FRANCEpublic static final Locale FRENCHpublic static final Locale GERMANpublic static final Locale GERMANYpublic static final Locale ITALIANpublic static final final Locale ITALYpublic static final Locale Japanpublic statisches Finale Final Laceale Japanesepublic statische Finale koreapublische statische Finale Koreanpublic statische Finale Finale.
Verwendung: Das folgende Gebietsobjekt entspricht "China (Festland)".
Lokalschema = Lokale.Implified_chinese
(3) Erstellen Sie das Gebietsschemaobjekt über den Gebietskonstruktor
Es gibt 3 Konstruktoren im Gebietsschema. wie folgt:
Gebietsgebiet (String Sprache) Gebietsschema (String -Sprache, String Country) Gebietsgebiet (Stringsprache, String Country, String Variante)
Wie man verwendet:
Local Lokal = neues Gebietsschema ("Zh", "CN");Die Gebietskurs unterstützt viele Länder und Regionen. Wir können alle Bereiche, die vom Gebietsschema unterstützt werden, durch die folgenden Methoden betrachten:
Locale [] ls = locale.getAavaLablelocales (); für (Lokalschema: LS) {System.out.println ("Locale:"+Locale);} Die Eingabeergebnisse sind wie folgt:
All Locales: ja_JP, es_PE, en, ja_JP_JP, es_PA, sr_BA, mk, es_GT, ar_AE, no_NO, sq_AL, bg, ar_IQ, ar_YE, hu, pt_PT, el_CY, ar_QA, mk_MK, sv, de_CH, en_US, fi_FI, is, cs, en_MT, sl_SI, sk_SK, it, tr_TR, zh, th, ar_SA, no, en_GB, sr_CS, lt, ro, en_NZ, no_NO_NY, lt_LT, es_NI, nl, ga_IE, fr_BE, es_ES, ar_LB, ko, fr_CA, et_EE, ar_KW, sr_RS, es_US, es_MX, ar_SD, in_ID, ru, lv, es_UY, lv_LV, iw, pt_BR, ar_SY, hr, et, es_DO, fr_CH, hi_IN, es_VE, ar_BH, en_PH, ar_TN, fi, de_AT, es, nl_NL, es_EC, zh_TW, ar_JO, be, is_IS, es_CO, es_CR, es_CL, ar_EG, en_ZA, th_TH, el_GR, it_IT, ca, hu_HU, fr, en_IE, uk_UA, pl_PL, fr_LU, nl_BE, en_IN, ca_ES, ar_MA, es_BO, en_AU, sr, zh_SG, pt, uk, es_SV, ru_RU, ko_KR, vi, ar_DZ, vi_VN, sr_ME, sq, ar_LY, ar, zh_CN, be_BY, zh_HK, ja, iw_IL, bg_BG, in, mt_MT, es_PY, sl, fr_FR, cs_CZ, it_CH, ro_RO, es_PR, en_CA, de_DE, ga, de_LU, de, Es_ar, SK, MS_MY, HR_HR, EN_SG, DA, MT, PL, AR_OM, TR, TH_TH_TH, EL, MS, SV_SE, DA_DK, ES_HN
Wählen Sie zwei davon aus, um zu veranschaulichen, wie Sie sie verwenden, um Gebietsschemasobjekte zu erstellen:
Zum Beispiel ist die erste Ausgabe "Ja_jp".
JA repräsentiert unter ihnen eine "Sprache", die sich auf Japanisch bezieht; "JP" repräsentiert Land, das sich auf Japan bezieht.
Wir können "Die Sprache ist Japaner und das Land ist Japans Gebietsschemasobjekt" durch die folgende Methode.
Gebietsschema = neues Gebietsschema ("Ja", "JP"); Zum Beispiel ist die dritte Ausgabe "en".
Unter ihnen repräsentiert En "Sprache", die sich hier auf Englisch bezieht.
Wir können durch die folgende Methode "Lokalobjekt, deren Sprache Englisch ist" erstellen.
Gebietsschema = neues Gebietsschema ("en"); Lokale Funktionsliste
// Gebietskonstruktoren Gebietsschema (String -Sprache) Gebietsschema (Stringsprache, String Country) Gebietsschema (Stringsprache, String Country, String Variante)
Object clone()boolean equals(Object object)static Locale[] getAvailableLocales()String getCountry()static Locale getDefault()String getDisplayCountry(Locale locale)final String getDisplayCountry()final String getDisplayCountry()final String getDisplayLanguage()String getDisplayLanguage(Locale locale)String getDisplayName(Locale locale)final String getDisplayName()final String getDisplayVariant()String getDisplayVariant(Locale locale)String getISO3Country()String getISO3Language()static String[] getISOCountries()static String[] getISOLanguages()String getLanguage()String getVariant()synchronized int hashCode()synchronized static void SetDefault (Gebietsschema) Final String toString ()
2. Beispiel für Gebietsschema
Das Folgende ist ein Beispiel, um das Gebietsschema im Datum zu demonstrieren.
Der Referenzcode lautet wie folgt (localetest.java):
import java.util.Locale;import java.util.Date;import java.util.Calendar;import java.text.SimpleDateFormat;import java.text.DateFormat;/** * Locale test program*/public class LocaleTest { public static void main(String[] args) { // 2 different locale creation methods testDiffDateLocales(); // Alle Orte testAllLocales () zeigen; } / *** 2 verschiedene Methoden zur Erstellung von Gebietsschalen* / privates statisches void testdiffDatelocales () {// Datum 2013-09-19 14:22:30 Datum = neues Datum (113, 8, 19, 14, 22, 30); // Gebietsschale localecn = local.Simplified_chinese; // Lokale erstellen localeus = neues Gebietsschema ("en", "us"); // Die Datumszeichenfolge erhalten, die der Zeichenfolge "vereinfacht" cn = DateFormat.getDateinstance (DateFormat.Medium, localecn) .Format (Datum) entspricht; // Die Datumszeichenfolge, die der Zeichenfolge "englisch/us" entspricht, US = DateFormat.getDateinstance (DateFormat.Medium, Localeus) .Format (Datum); System.out.printf ("cn =%s/nus =%s/n", cn, US); } / ** * Alle Orte anzeigen * / private statische void testAllLocales () {Locale [] ls = locale.getAVailableLocales (); System.out.print ("Alle Orte:"); für (Gebietsschema: ls) {System.out.printf (Locale+","); } System.out.println (); }}3.. Verwenden Sie Resourcebundle, um internationale Ressourcendateien zu lesen
Das RessourcenBundle Resource Package enthält Objekte für ein bestimmtes Gebietsschema. Verwenden Sie es, um die Ressourcen des Gebietsschemas zu laden und zu lesen.
1. Lokalisiert oder in verschiedene Sprachen übersetzt
2. Behandeln Sie mehrere Gebietsschema -Umgebungen gleichzeitig
3.. Sie können es in Zukunft problemlos ändern und mehr Gebietsschema -Umgebungen einmal unterstützen.
Wenn ein Programm landschemelspezifische Objekte benötigt, wird die Methode von GetBundle () verwendet, um die RessourcenBundle-Klasse zu laden
Resourcebundle rb = Resourcebundle.getBundle ("res.MessageBundle", CurrentLocale);Unter ihnen stellt Res.MessageBundle dar, dass wir unter SRC einen Res -Ordner erstellt haben, und es gibt eine Ressourcendatei mit dem Namen messageBundle.properTeis unter dem Ordner res. Wir ermöglichen es hier zu erstellen, dass mehrere internationale Ressourcendateien erstellt werden:
MessageBundle_zh_cn.properties; messageBundle_en_us.properteis;
Unter ihnen ist MessageBundle eine Zeichenfolge, die beim Erstellen einer Ressourcenbund verwendet wird. Dieser Name ist legal und erfordert keine spezifischen Einschränkungen. Die folgenden Namen müssen den Regeln befolgen.
Resourcename_Language_Country.properteis;
Dann verwenden wir rb.getString (Schlüssel); Um den Wert zu erhalten, der dem Schlüssel in der Ressourcendatei entspricht.
Verwenden Sie Struts1.x, um eine internationale automatische Schaltung zu erreichen
Durch die Überprüfung des Struds -Quellcodes können Sie feststellen, dass die Gebietsschemasinformationen in der Sitzung über diese.
Um die Internationalisierung zu erreichen, müssen Sie daher den Gebietsschemaswert in der Sitzung ändern, wenn Sie auf den Hyperlink auf der Seite klicken und die Aktion übergeben. In Aktion:
// Die von der Client -String -Sprache gesendeten Sprachanforderungsinformationen annehmen.getParameter ("Myluage"); // Definieren Sie die Sprachregion Information Locale CurrentLocale = NULL; // Erstellen Sie unterschiedliche Gebietsschemasinformationen gemäß verschiedenen Anfragen if ("zh" .equals (Sprache)) {currentLocale = neues Gebietsschema ("zh", "cn"); } else if ("en" .equals (Sprache)) {currentLocale = New Locale ("en", "us"); } // ... // die Informationen in der Sitzung this.setlocale (request, currentLocale); // Natürlich verwenden