|  | /* | 
|  | * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. | 
|  | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | 
|  | * | 
|  | * This code is free software; you can redistribute it and/or modify it | 
|  | * under the terms of the GNU General Public License version 2 only, as | 
|  | * published by the Free Software Foundation. | 
|  | * | 
|  | * This code is distributed in the hope that it will be useful, but WITHOUT | 
|  | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 
|  | * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License | 
|  | * version 2 for more details (a copy is included in the LICENSE file that | 
|  | * accompanied this code). | 
|  | * | 
|  | * You should have received a copy of the GNU General Public License version | 
|  | * 2 along with this work; if not, write to the Free Software Foundation, | 
|  | * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. | 
|  | * | 
|  | * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA | 
|  | * or visit www.oracle.com if you need additional information or have any | 
|  | * questions. | 
|  | */ | 
|  | /* | 
|  | * | 
|  | * | 
|  | * (C) Copyright IBM Corp. 1998 - All Rights Reserved | 
|  | * | 
|  | * Portions copyright (c) 2007 Sun Microsystems, Inc. | 
|  | * All Rights Reserved. | 
|  | * | 
|  | * The original version of this source code and documentation | 
|  | * is copyrighted and owned by Taligent, Inc., a wholly-owned | 
|  | * subsidiary of IBM. These materials are provided under terms | 
|  | * of a License Agreement between Taligent and Sun. This technology | 
|  | * is protected by multiple US and International patents. | 
|  | * | 
|  | * This notice and attribution to Taligent may not be removed. | 
|  | * Taligent is a registered trademark of Taligent, Inc. | 
|  | * | 
|  | * Permission to use, copy, modify, and distribute this software | 
|  | * and its documentation for NON-COMMERCIAL purposes and without | 
|  | * fee is hereby granted provided that this copyright notice | 
|  | * appears in all copies. Please refer to the file "copyright.html" | 
|  | * for further important copyright and licensing information. | 
|  | * | 
|  | * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF | 
|  | * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED | 
|  | * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A | 
|  | * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR | 
|  | * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR | 
|  | * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. | 
|  | * | 
|  | */ | 
|  | /* | 
|  | @bug 4123370 4091969 4118731 4182108 4778440 | 
|  |  | 
|  | The "at-test" tag was removed from this file, because there's no way to | 
|  | run this test in an automated test harness.  It depends on having various | 
|  | different locales installed on the machine, and on Windows it depends | 
|  | on the user going to the "Regional Settings" control panel and changing | 
|  | the settings before running the test for each bug.  We can run this test | 
|  | manually from time to time to ensure that there has been no regression, | 
|  | but it's not automated. -- lwerner, 7/6/98 | 
|  |  | 
|  | INSTRUCTIONS FOR RUNNING THIS TEST | 
|  | ================================== | 
|  | This test is designed to check for problems in the JVM code that initializes the | 
|  | default Java locale (the locale returned by Locale.getDefault()) from the system | 
|  | locale settings (or from command-line arguments).  Since detecting a regression | 
|  | usually requires setting the environment up in some way prior to running the test, | 
|  | this is a manual test. | 
|  |  | 
|  | The test simply prints out the internal ID and display name of the default Java locale, | 
|  | and the name of the default Java character encoding.  It passes if these are what | 
|  | you expect them to be, and fails if they're not. | 
|  |  | 
|  | Bug #4091969: | 
|  | To test for bug #4091969, run this test on a Korean-localized version of | 
|  | Windows, with the default locale set to Korean.  You should get "ko_KR" | 
|  | as the default locale. | 
|  |  | 
|  | Bug #4123370: | 
|  | One part of bug #4123370 duplicates bug #4091969, which is covered by the | 
|  | instructions above. | 
|  |  | 
|  | To test the unique part of bug #4123370, use the "Regional Settings" control | 
|  | panel to set the currect locale to each of the different Spanish-language locales. | 
|  | Run this test once for each Spanish-language locale.  You should see the appropriate | 
|  | locale ID and name for each locale.  Both "Spanish - Traditional Sort" and | 
|  | "Spanish - Modern Sort" should produce "es_ES" and "Spanish (Spain)". | 
|  |  | 
|  | Bug #4118731: | 
|  | The basic issue here was that we had changed so that calling getDisplayName() | 
|  | on a locale that didn't include a country code no longer included a country | 
|  | name (instead of picking a default country name, as before), which is the | 
|  | right answer.  The problem is we weren't always getting back a system default | 
|  | locale from Solaris that includes a country code, even though we should. | 
|  |  | 
|  | To test this, set the system default locale to a locale that doesn't include | 
|  | a country code, such as "fr" or "de", using (in the C shell) "setenv LC_ALL fr" | 
|  | (or whatever the locale ID you want is).  Running PrintDefaultLocale should | 
|  | still produce a locale ID, and a locale display name, that include a country | 
|  | code (and country name).  [Remember to make sure the locale is actually installed | 
|  | first.] | 
|  |  | 
|  | To test the specific complaint in the bug, use "setenv LC_ALL ja".  Also pay | 
|  | special attention to Solaris locale IDs that don't match the corresponding java | 
|  | locales, such as "su" (which should turn into "fi_FI"), "cz" (which should turn | 
|  | into "cs_CZ"), and "en_UK" (which should turn into "en_GB"). | 
|  |  | 
|  | Bug #4079167: | 
|  | Test this bug the same way you test bug #4118731.  Set the locale to each of | 
|  | the specified locale IDs (e.g., "setenv LC_ALL japanese"), and then run | 
|  | PrintDefaultLocale.  You should get the following results: | 
|  | Solaris ID  Java ID  Java display name     Encoding | 
|  | ==========  =======  ====================  ======== | 
|  | japanese    ja_JP    Japanese (Japan)        -- | 
|  | korean      ko_KR    Korean (South Korea)    -- | 
|  | tchinese    zh_TW    Chinese (Taiwan)        -- | 
|  | big5        zh_TW    Chinese (Taiwan)      Big5 | 
|  | (Where "--" is marked for "encoding," the result isn't important-- it's the | 
|  | default encoding for that locale, which we don't test.  It should be something | 
|  | plausible.  Also note that this test presupposed you actually have locales | 
|  | with these names installed on your system.) | 
|  |  | 
|  | Bug #4154559, 4778440: | 
|  | Set the locale to Norwegian (Bokmal) and Norwegian (Nynorsk) using the | 
|  | Regional Settings control panel on Windows.  For each setting, run this program. | 
|  | You should see no_NO and no_NO_NY, respectively. | 
|  |  | 
|  | Bug #4182108: | 
|  | Test this bug the same way you test bug #4118731.  Set the locale to | 
|  | each of the specified locale IDs (e.g., "setenv LC_ALL japanese"), and | 
|  | then run PrintDefaultLocale.  You should get the following results: | 
|  |  | 
|  | Solaris ID          Java ID     Encoding | 
|  | ==========          =======     ======== | 
|  | cz                  cs_CZ       -- | 
|  | su                  fi_FI       -- | 
|  | fr.ISO8859-15       fr_FR       ISO8859-15 | 
|  | fr.ISO8859-15@euro  fr_FR       ISO8859-15 | 
|  |  | 
|  | Where "--" is marked for "encoding," the result isn't important-- it's | 
|  | the default encoding for that locale, which we don't test.  It should be | 
|  | something plausible.  Also note that this test presupposed you actually | 
|  | have locales with these names installed on your system. | 
|  |  | 
|  | As of this writing, there is a bug in Solaris or in the 8859-15/euro | 
|  | patch for 2.6 (Solaris patch 106842-01) which causes nl_langinfo() to | 
|  | return the wrong value for 8859-15 locales.  As a result, the encoding | 
|  | returned by this test is currency ISO8859-1 for 8859-15 locales. | 
|  |  | 
|  | Bug #4778440, 5005601, 5074060, 5107154: | 
|  | Run the "deflocale" tool found in "data" directory (deflocale.sh on Unix, | 
|  | deflocale.exe on Windows), and check the following: | 
|  |  | 
|  | 4778440: Check that iw_IL is the default locale if the OS's locale is | 
|  | Hebrew,  and in_ID for Indonesian. | 
|  | 5005601: For Norwegian locales, no_NO is selected for Bokmal, and no_NO_NY | 
|  | is selected for Nynorsk. | 
|  | 5074060, 5107154: On Windows XP ServicePack 2, check the default locales for the | 
|  | following Windows locales.  Compare with the golden data (deflocale.win): | 
|  | Bengali - India | 
|  | Croatian - Bosnia and Herzegovina | 
|  | Bosnian - Bosnia and Herzegovina | 
|  | Serbian (Latin) - Bosnia and Herzegovina | 
|  | Serbian (Cyrillic) - Bosnia and Herzegovina | 
|  | Welsh - United Kingdom | 
|  | Maori - New Zealand | 
|  | Malayalam - India | 
|  | Maltese - Malta | 
|  | Quechua - Bolivia | 
|  | Quechua - Ecuador | 
|  | Quechua - Peru | 
|  | Setswana (Tswana) - South Africa | 
|  | isiXhosa (Xhosa) - South Africa | 
|  | isiZulu ( Zulu) - South Africa | 
|  | Sesotho sa Leboa (Northern Sotho) - South Africa | 
|  | Sami, Northern - Norway | 
|  | Sami, Northern - Sweden | 
|  | Sami, Northern - Finland | 
|  | Sami, Lule - Norway | 
|  | Sami, Lule - Sweden | 
|  | Sami, Southern - Norway | 
|  | Sami, Southern - Sweden | 
|  | Sami, Skolt - Finland | 
|  | Sami, Inari - Finland | 
|  |  | 
|  | Bug # 6409997: | 
|  | Run the "deflocale.exe" tool found in "data" directory on Windows Vista. | 
|  | It contains the following new locales: | 
|  | Tajik (Cyrillic) (Tajikistan) - 1251 | 
|  | Upper Sorbian (Germany) - 1252 | 
|  | Turkmen (Turkmenistan) - 1250 | 
|  | Oriya (India) - 0 | 
|  | Assamese (India) - 0 | 
|  | Tibetan (People's Republic of China) - 0 | 
|  | Khmer (Cambodia) - 0 | 
|  | Lao (Lao P.D.R.) - 0 | 
|  | Sinhala (Sri Lanka) - 0 | 
|  | Inuktitut (Canada) - 0 | 
|  | Amharic (Ethiopia) - 0 | 
|  | Hausa (Latin) (Nigeria) - 1252 | 
|  | Yoruba (Nigeria) - 1252 | 
|  | Bashkir (Russia) - 1251 | 
|  | Greenlandic (Greenland) - 1252 | 
|  | Igbo (Nigeria) - 1252 | 
|  | Yi (People's Republic of China) - 0 | 
|  | Breton (France) - 1252 | 
|  | Uighur (People's Republic of China) - 1256 | 
|  | Occitan (France) - 1252 | 
|  | Corsican (France) - 1252 | 
|  | Alsatian (France) - 1252 | 
|  | Yakut (Russia) - 1251 | 
|  | K'iche (Guatemala) - 1252 | 
|  | Kinyarwanda (Rwanda) - 1252 | 
|  | Wolof (Senegal) - 1252 | 
|  | Dari (Afghanistan) - 1256 | 
|  | Lower Sorbian (Germany) - 1252 | 
|  | Bengali (Bangladesh) - 0 | 
|  | Mongolian (Traditional Mongolian) (People's Republic of China) - 0 | 
|  | Tamazight (Latin) (Algeria) - 1252 | 
|  | English (India) - 1252 | 
|  | English (Malaysia) - 1252 | 
|  | English (Singapore) - 1252 | 
|  | Spanish (United States) - 1252 | 
|  |  | 
|  | */ | 
|  | import java.nio.charset.Charset; | 
|  | import java.util.Locale; | 
|  |  | 
|  | public class PrintDefaultLocale { | 
|  | public static void main(String[] args) { | 
|  | System.out.printf("default locale: ID: %s, Name: %s\n", | 
|  | Locale.getDefault().toString(), | 
|  | Locale.getDefault().getDisplayName(Locale.US)); | 
|  | System.out.printf("display locale: ID: %s, Name: %s\n", | 
|  | Locale.getDefault(Locale.Category.DISPLAY).toString(), | 
|  | Locale.getDefault(Locale.Category.DISPLAY).getDisplayName(Locale.US)); | 
|  | System.out.printf("format locale: ID: %s, Name: %s\n", | 
|  | Locale.getDefault(Locale.Category.FORMAT).toString(), | 
|  | Locale.getDefault(Locale.Category.FORMAT).getDisplayName(Locale.US)); | 
|  | System.out.printf("default charset: %s\n", Charset.defaultCharset()); | 
|  | } | 
|  | } |