JDK Tutorials - Herong's Tutorial Examples - v6.32, by Herong Yang
java.util.Locale - Localization and Internationalization
This section provides a tutorial example on how to use java.util.Locale class to verify the default locale and list all supported locales. A locale is an identification of a combination of human language and country.
Internationalization: A process that tailors information for the user based on his/her specific geographical, political, or cultural preference. For example, each time when I insert my Fleet Bank client card into a Fleet Bank ATM machine, it will greet me and display instructions in Chinese. This process of check my language preference setting and tailoring the display information my preferred language is called internationalization.
The Locale class, java.util.Locale, is a class presenting a specific geographical, political, or cultural region, where information is displayed in a way different than other regions. For example, French speaking areas in Canada is a locale, and English speaking areas in Canada is another locale.
Major methods offered on Locale class:
The following program shows some interesting features of the Locale class:
/* LocaleTest.java * Copyright (c) HerongYang.com. All Rights Reserved. */ import java.util.*; class LocaleTest { public static void main(String[] a) { // get the default locale Locale l = Locale.getDefault(); System.out.println(" Language, Country, Variant, Name"); System.out.println(""); System.out.println("Default locale: "); System.out.println(" "+l.getLanguage()+", "+l.getCountry()+", " +", "+l.getVariant()+", "+l.getDisplayName()); // get a predefined locale l = Locale.CANADA_FRENCH; System.out.println("A predefined locale - Locale.CANADA_FRENCH:"); System.out.println(" "+l.getLanguage()+", "+l.getCountry()+", " +", "+l.getVariant()+", "+l.getDisplayName()); // define a new locale l = new Locale("en", "CN"); System.out.println("User defined locale -Locale(\"en\",\"CN\"):"); System.out.println(" "+l.getLanguage()+", "+l.getCountry()+", " +", "+l.getVariant()+", "+l.getDisplayName()); // define another new locale l = new Locale("ll", "CC"); System.out.println("User defined locale -Locale(\"ll\",\"CC\"):"); System.out.println(" "+l.getLanguage()+", "+l.getCountry()+", " +", "+l.getVariant()+", "+l.getDisplayName()); // get the supported locales Locale[] s = Locale.getAvailableLocales(); System.out.println("Supported locales: "); for (int i=0; i<s.length; i++) { System.out.println(" "+s[i].getLanguage()+", " +s[i].getCountry()+", "+s[i].getVariant()+", " +s[i].getDisplayName()); } } }
Output:
Language, Country, Variant, Name Default locale: en, US, , , English (United States) A predefined locale - Locale.CANADA_FRENCH: fr, CA, , , French (Canada) User defined locale - Locale("en","CN"): en, CN, , , English (China) User defined locale - Locale("ll","CC"): ll, CC, , , ll (CC) Supported locales: ar, , , Arabic ar, AE, , Arabic (United Arab Emirates) ar, BH, , Arabic (Bahrain) ar, DZ, , Arabic (Algeria) ar, EG, , Arabic (Egypt) ar, IQ, , Arabic (Iraq) ar, JO, , Arabic (Jordan) ar, KW, , Arabic (Kuwait) ar, LB, , Arabic (Lebanon) ar, LY, , Arabic (Libya) ar, MA, , Arabic (Morocco) ar, OM, , Arabic (Oman) ar, QA, , Arabic (Qatar) ar, SA, , Arabic (Saudi Arabia) ar, SD, , Arabic (Sudan) ar, SY, , Arabic (Syria) ar, TN, , Arabic (Tunisia) ar, YE, , Arabic (Yemen) be, , , Byelorussian be, BY, , Byelorussian (Belarus) bg, , , Bulgarian bg, BG, , Bulgarian (Bulgaria) ca, , , Catalan ca, ES, , Catalan (Spain) cs, , , Czech cs, CZ, , Czech (Czech Republic) da, , , Danish da, DK, , Danish (Denmark) de, , , German de, AT, , German (Austria) de, CH, , German (Switzerland) de, DE, , German (Germany) de, LU, , German (Luxembourg) el, , , Greek el, GR, , Greek (Greece) en, AU, , English (Australia) en, CA, , English (Canada) en, GB, , English (United Kingdom) en, IE, , English (Ireland) en, IN, , English (India) en, NZ, , English (New Zealand) en, ZA, , English (South Africa) es, , , Spanish es, AR, , Spanish (Argentina) es, BO, , Spanish (Bolivia) es, CL, , Spanish (Chile) es, CO, , Spanish (Colombia) es, CR, , Spanish (Costa Rica) es, DO, , Spanish (Dominican Republic) es, EC, , Spanish (Ecuador) es, ES, , Spanish (Spain) es, GT, , Spanish (Guatemala) es, HN, , Spanish (Honduras) es, MX, , Spanish (Mexico) es, NI, , Spanish (Nicaragua) es, PA, , Spanish (Panama) es, PE, , Spanish (Peru) es, PR, , Spanish (Puerto Rico) es, PY, , Spanish (Paraguay) es, SV, , Spanish (El Salvador) es, UY, , Spanish (Uruguay) es, VE, , Spanish (Venezuela) et, , , Estonian et, EE, , Estonian (Estonia) fi, , , Finnish fi, FI, , Finnish (Finland) fr, , , French fr, BE, , French (Belgium) fr, CA, , French (Canada) fr, CH, , French (Switzerland) fr, FR, , French (France) fr, LU, , French (Luxembourg) hi, IN, , Hindi (India) hr, , , Croatian hr, HR, , Croatian (Croatia) hu, , , Hungarian hu, HU, , Hungarian (Hungary) is, , , Icelandic is, IS, , Icelandic (Iceland) it, , , Italian it, CH, , Italian (Switzerland) it, IT, , Italian (Italy) iw, , , Hebrew iw, IL, , Hebrew (Israel) ja, , , Japanese ja, JP, , Japanese (Japan) ko, , , Korean ko, KR, , Korean (South Korea) lt, , , Lithuanian lt, LT, , Lithuanian (Lithuania) lv, , , Latvian (Lettish) lv, LV, , Latvian (Lettish) (Latvia) mk, , , Macedonian mk, MK, , Macedonian (Macedonia) nl, , , Dutch nl, BE, , Dutch (Belgium) nl, NL, , Dutch (Netherlands) no, , , Norwegian no, NO, , Norwegian (Norway) no, NO, NY, Norwegian (Norway,Nynorsk) pl, , , Polish pl, PL, , Polish (Poland) pt, , , Portuguese pt, BR, , Portuguese (Brazil) pt, PT, , Portuguese (Portugal) ro, , , Romanian ro, RO, , Romanian (Romania) ru, , , Russian ru, RU, , Russian (Russia) sh, , , Serbo-Croatian sh, YU, , Serbo-Croatian (Yugoslavia) sk, , , Slovak sk, SK, , Slovak (Slovakia) sl, , , Slovenian sl, SI, , Slovenian (Slovenia) sq, , , Albanian sq, AL, , Albanian (Albania) sr, , , Serbian sr, YU, , Serbian (Yugoslavia) sv, , , Swedish sv, SE, , Swedish (Sweden) th, , , Thai th, TH, , Thai (Thailand) th, TH, TH, Thai (Thailand,TH) tr, , , Turkish tr, TR, , Turkish (Turkey) uk, , , Ukrainian uk, UA, , Ukrainian (Ukraine) zh, , , Chinese zh, CN, , Chinese (China) zh, HK, , Chinese (Hong Kong) zh, TW, , Chinese (Taiwan) en, , , English en, US, , English (United States) ...
The output shows that I can make up a new locale with any combination of language and country, like "en, CN, , , English (China)", or "ll, CC, , , ll (CC)".
Table of Contents
Date, Time and Calendar Classes
Date and Time Object and String Conversion
Number Object and Numeric String Conversion
►Locales, Localization Methods and Resource Bundles
►java.util.Locale - Localization and Internationalization
java.util.ResourceBundle - Resource Bundle Abstract Class
java.util.ListResourceBundle - Resource Bundles as Lists
java.util.PropertyResourceBundle - Resource Bundles as Properties Files
java.util.ResourceBundle.getBundle() - Retrieving Resource Bundles
Calling and Importing Classes Defined in Unnamed Packages
HashSet, Vector, HashMap and Collection Classes
Character Set Encoding Classes and Methods
Encoding Conversion Programs for Encoded Text Files
Datagram Network Communication
DOM (Document Object Model) - API for XML Files
DTD (Document Type Definition) - XML Validation
XSD (XML Schema Definition) - XML Validation
XSL (Extensible Stylesheet Language)
Message Digest Algorithm Implementations in JDK
Private key and Public Key Pair Generation
PKCS#8/X.509 Private/Public Encoding Standards
Digital Signature Algorithm and Sample Program
"keytool" Commands and "keystore" Files
KeyStore and Certificate Classes
Secret Key Generation and Management
Cipher - Encryption and Decryption
The SSL (Secure Socket Layer) Protocol
SSL Socket Communication Testing Programs