1. Introdução do local
Local significa região. Cada objeto local representa uma região geográfica, política e cultural específica.
É frequentemente usado quando operar objetos que representam datas/horários como data, calendário, etc.; Porque o método de representação do tempo é diferente em diferentes regiões.
Vamos falar sobre três maneiras comuns de criar objetos de localidade.
(1) Obtenha o local padrão
Como usar:
Locale Locale = Locale.getDefault ()
(2) Use diretamente o objeto estático do Locale
Os seguintes objetos estáticos são fornecidos em Locale.java
Local final do local estático Canadápublic Local final estático Canadá _frenchpublic Local final estático Chinapublic estático final CHINESSEPUBLIC Final Local Final Inglês Public Static Local final Final Final Publica Final localiza Final Final Final Final Final Final Final Public Static Final localiza Final localiza Final localiza Final Final Local Itálico Local final do local Japãesepublic Local final estático local final estático localiza final estático localize estática final localidade final estática Local final estático
Como usar: o seguinte objeto de localidade corresponde a "China (continente)"
Locale Locale = Locale.simplified_chinese
(3) Crie objeto de localidade através do construtor de localidade
Existem 3 construtores no local. do seguinte modo:
Locale (Linguagem da String) Local (Linguagem de String, String Country) Local (Linguagem da String, String Country, String Variant)
Como usar:
Local Local = New Locale ("ZH", "CN");A classe do local suporta muitos países e regiões. Podemos ver todas as áreas suportadas pelo Locale através dos seguintes métodos:
Locale [] LS = Locale.GetAVailableLocales (); para (Locale Locale: LS) {System.out.println ("Locale:"+Locale);} Os resultados de entrada são os seguintes:
Todos os locais: Ja_jp, Es_pe, pt, 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_C, AR_QA, MK_MK 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, rl_b, zh_in, ca_es, ar_ma, es_bo, en_au, sr, zh_s VI, ar_dz, vi_vn, sr_me, sq, ar_ly, ar, zh_cn, be_by, zh_hk, ja, iw_il, bg_bg, em, mt_mt, s_py, sl, fr_fr, cs_cz, ite_ch, ro_mt, EST, EST, EST, ES_PY, SL, FR_FR, CS_CZ, IT_CH, RO_ROT, SK, MS_MY, HR_HR, EN_SG, DA, MT, PL, AR_OM, TR, TH_TH_TH, EL, MS, SV_SE, DA_DK, ES_HN
Selecione dois deles para ilustrar como usá -los para criar objetos de localidade:
Por exemplo, a primeira saída é "JA_JP".
Entre eles, JA representa "linguagem", que se refere aos japoneses; "JP" representa o país, que se refere ao Japão.
Podemos criar "o idioma é japonês e o país é o objeto de localidade do Japão" através do método a seguir.
Locale Locale = New Locale ("JA", "JP"); Por exemplo, a terceira saída é "EN".
Entre eles, EN representa "linguagem", que se refere ao inglês aqui.
Podemos criar "objeto de localidade cuja linguagem é inglês" através do seguinte método.
Locale Locale = New Locale ("EN"); Lista de funções do local
// Local Locale (Locale) Locale (Local de String Locale (String Language, String country) (String Language, String country, String Variant)
Objeto clone () boolean é igual (objeto de objeto) localidade estática [] getAVailableLocales () string getCountry () estático localize getDefault () string getDisplayCountry (loce local) string string string getDisplaycountry () string getDisplyCounSplySPlata) 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 () sincronizado estático void setDefault (Locale Locale) ToString final da string ()
2. Exemplo de localidade
A seguir, é apresentado um exemplo a serem demonstrado usando a localidade na data.
O código de referência é o seguinte (localEtest.java):
importar java.util.locale; importar java.util.date; importar java.util.calendar; importar java.text.simpledEformat; importar java.text.dateFormat;/** *** Programa de teste de localidade*/public class LocalEtest {public static vaid main (string [] testdiffdatelocales (); // mostra todos os locais testalllocales (); } / *** 2 Métodos de criação de localidade diferentes* / private estático void testDiffDatelocales () {// Data é 2013-09-19 14:22:30 Data = nova data (113, 8, 19, 14, 22, 30); // Crie loce locale localecn = Locale.simplified_chinese; // crie loce localeus = new Locale ("EN", "nós"); // Obtenha a string de data correspondente à string "simplificada chinesa" cn = dateFormat.getDateInstance (dateFormat.medium, localecn) .Format (Date); // Obtenha a string de data correspondente a "inglês/nós" string us = dateFormat.getDateInstance (DateFormat.Medium, Localeus) .Format (Date); System.out.printf ("cn =%s/nus =%s/n", cn, EUA); } / ** * Mostre todos os locais * / private estático void testalllocales () {Locale [] ls = Locale.GetAVailableLocales (); System.out.print ("Todos os locais:"); para (Locale Locale: LS) {System.out.printf (Locale+","); } System.out.println (); }}3. Use ResourceBundle para ler Arquivos Internacionais de Recursos
O pacote de recursos ResourceBundle contém objetos para um local específico. Use -o para carregar e ler os recursos do local.
1. Localizar ou traduzir facilmente em diferentes idiomas
2. Lidar com vários ambientes de localidade de uma só vez
3. Você pode modificá -lo facilmente no futuro e suportar mais ambientes de localidade uma vez.
Quando um programa precisa de objetos específicos para localidade, ele usa o método getBundle () para carregar a classe ResourceBundle
ResourceBundle rb = ResourceBundle.getBundle ("Res.MessageBundle", CurrentLocale);Entre eles, o Res.MessageBundle representa que criamos uma pasta RES no SRC, e há um arquivo de recursos chamado MessageBundle.properteis na pasta Res. Permitimos que vários arquivos de recursos internacionais sejam criados aqui:
MessageBundle_ZH_CN.Properties; MessageBundle_en_US.Properteis;
Entre eles, o MessageBundle é uma string a ser usada ao construir um ResourceBundle. Este nome é legal e não requer restrições específicas. Os seguintes nomes devem seguir as regras.
ResourceName_Language_country.properteis;
Em seguida, usamos o RB.getString (chave); Para obter o valor correspondente à chave no arquivo de recursos.
Use Struts1.x para obter comutação automática internacional
Ao verificar o código -fonte do Struts, você pode descobrir que as informações do local são armazenadas na sessão, por meio disso.
Portanto, para alcançar a internacionalização, você precisa alterar o valor da localidade na sessão quando clica no hiperlink na página e passa a ação. Em ação:
// Aceite as informações de solicitação de idioma enviadas pelo cliente string idioma = request.getParameter ("mylanguage"); // Defina a região da região de idioma Locale CurrentLocale = NULL; // Crie informações de localidade diferentes de acordo com diferentes solicitações se ("zh" .equals (idioma)) {currentlocale = new Locale ("zh", "cn"); } else if ("en" .equals (idioma)) {currentlocale = new Locale ("en", "nós"); } // ... // altere as informações na sessão this.setLocale (request, CurrentLocale); // É claro, ao exibir informações de arquivo de recursos na página, use o seguinte método: // <bean: message key = "key" />