1. Introducción local
Local significa región. Cada objeto local representa una región geográfica, política y cultural específica.
A menudo se usa cuando operan objetos que representan fechas/horarios como fecha, calendario, etc.; Porque el método de representación del tiempo es diferente en diferentes regiones.
Hablemos de tres formas comunes de crear objetos locales.
(1) Obtenga la configuración regional predeterminada
Cómo usar:
Locale locale = locale.getDefault ()
(2) Use directamente el objeto estático de la configuración
Los siguientes objetos estáticos se proporcionan en locale.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 static final Locale JAPANESEpublic static final Localidad Koreapublic estática final local coreanpública estática final local prcpublic static final lugar rootpublic pública static final localización simplificada_ChinesePublic estática Final local Taiwanpublic static final lugar tradicional_chineseepublic static final locale ukpublic static static final local
Cómo usar: el siguiente objeto local corresponde a "China (continente)"
Locale locale = locale.simplified_chinese
(3) Crear objeto local a través del constructor local
Hay 3 constructores en locales. como sigue:
Locale (lenguaje de cadena) locale (lenguaje de cadena, string country) locale (lenguaje de cadena, string country, variante de cadena)
Cómo usar:
Locale local = nuevo locale ("zh", "cn");La clase local apoya a muchos países y regiones. Podemos ver todas las áreas compatibles con locales a través de los siguientes métodos:
Locale [] ls = locale.getAvailableLocales (); para (locale locale: ls) {system.out.println ("locale:"+locale);} Los resultados de la entrada son los siguientes:
Todos los 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, csts, es, es. 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, KO, ET_EE, AR_KW, SRS, ES_US, ES_US, ES_US. 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, ES, NL_NL, ES_EC, ZH_TW, AR_JO, BE, IS_IS, ES, ES, 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, de_lu, es_cz, sk, ms_roy HR_HR, EN_SG, DA, MT, PL, AR_OM, TR, TH_TH_TH, EL, MS, SV_SE, DA_DK, ES_HN
Seleccione dos de ellos para ilustrar cómo usarlos para crear objetos locales:
Por ejemplo, la primera salida es "JA_JP".
Entre ellos, JA representa "lenguaje", que se refiere a japonés; "JP" representa el país, que se refiere a Japón.
Podemos crear "el idioma es japonés y el país es el objeto local de Japón" a través del siguiente método.
Locale locale = new locale ("ja", "jp"); Por ejemplo, la tercera salida es "EN".
Entre ellos, en representa "idioma", que se refiere al inglés aquí.
Podemos crear "objeto local cuyo idioma es inglés" a través del siguiente método.
Locale locale = new locale ("en"); Lista de funciones locales
// Constructor de locales locales (lenguaje de cadena) locale (lenguaje de cadena, string country) locale (lenguaje de cadena, string country, variante de cadena)
Objeto clone () boolean iguales (objeto objeto) localidad estática [] getAvailableLocales () string getCountry () static locale getDefault () string getDisplayCountry (locale locale) string final getDisplayCountry () final string getDisplayCountry () final string string string string string string () getDisplayName (locale locale) cadena final getDisplayName () cadena final getDisplayVariant () string getDisplayVariant (locale locale) cadena getiso3country () string getISO3Language () static string [] getISoCountries () static [] getISOLAnGaneguage () string getLanguage () string getvariAny () synChonize () synChonize () synChonize () synChonize () synChonize () hashcode () sincronizado setDefault (locale local) cadena final toString ()
2. Ejemplo local
El siguiente es un ejemplo para demostrar usando la fecha local.
El código de referencia es el siguiente (localet.java):
import java.util.locale; import java.util.date; import java.util.calendar; import java.text.simppledateFormat; import java.text.dateformat;/*** Programa de prueba local*/public ClassEtest {Public Static estatic void main (string [] args) {// 2 Diferentes conjuntos de creación de localización de locale* // Mostrar todos los locales testalllocales (); } / *** 2 Métodos de creación de locales diferentes* / Private static void testdiffdatelocales () {// fecha es 2013-09-19 14:22:30 fecha fecha = nueva fecha (113, 8, 19, 14, 22, 30); // crear locale localecn = locale.simplified_chinese; // crear locales loceus = new locale ("en", "us"); // Obtenga la cadena de fecha correspondiente a la cadena "chino simplificado" cn = dateFormat.getDateInStance (dateFormat.Medium, localecn) .Format (date); // Obtenga la cadena de fecha correspondiente a la cadena "English/US" US = DateFormat.GetDateInStance (dateFormat.Medium, localeus) .Format (date); System.out.printf ("cn =%s/nus =%s/n", cn, us); } / ** * Mostrar todos los locales * / privado estático vacío testalllocales () {loce [] ls = locale.getAvailableLocales (); System.out.print ("Todos los lugares:"); for (locale locale: ls) {system.out.printf (locale+","); } System.out.println (); }}3. Use ResourceBundle para leer archivos de recursos internacionales
El paquete de recursos de ResourceBundle contiene objetos para una localidad específica. Úselo para cargar y leer recursos locales.
1. Localizar o traducir fácilmente en diferentes idiomas
2. Manejar múltiples entornos locales a la vez
3. Puede modificarlo fácilmente en el futuro y admitir más entornos locales una vez.
Cuando un programa necesita objetos específicos de locales, utiliza el método getBundle () para cargar la clase ResourceBundle
ResourceBundle rb = resourceBundle.getBundle ("res.messagebundle", currentLocale);Entre ellos, Res.Messagebundle representa que hemos creado una carpeta RES en SRC, y hay un archivo de recursos llamado MessageBundle.Properteis en la carpeta RES. Permitimos que se creen múltiples archivos de recursos internacionales aquí:
MessageBundle_Zh_Cn.Properties; MessageBundle_en_us.Properteis;
Entre ellos, MessageBundle es una cadena que se puede usar al construir un recurso de recursos. Este nombre es legal y no requiere restricciones específicas. Los siguientes nombres deben seguir las reglas.
ResourceName_Language_country.Properteis;
Luego usamos rb.getString (clave); Para obtener el valor correspondiente a la clave en el archivo de recursos.
Use Struts1.x para lograr un cambio automático internacional
Al verificar el código fuente de Struts, puede encontrar que la información local se almacena en la sesión, a través de este.setLocale (solicitud, localización);
Por lo tanto, para lograr la internacionalización, debe cambiar el valor local en la sesión cuando hace clic en el hipervínculo en la página y pasa la acción. En acción:
// Acepta la información de solicitud de idioma enviada por el cliente String Language = request.getParameter ("myLanguage"); // Definir la información de la región del idioma locales CurrentLocale = NULL; // Crear información local de configuración diferente de acuerdo con diferentes solicitudes if ("zh" .equals (lenguaje)) {currentLocale = new loce ("zh", "cn"); } else if ("en" .equals (lenguaje)) {currentLocale = new locale ("en", "us"); } // ... // Cambiar la información en la sesión this.setLocale (solicitud, currentLocale); // Por supuesto, al mostrar información del archivo de recursos en la página, use el siguiente método: // <bean: key = "key" />