1 /* 2 ******************************************************************************* 3 * Copyright (C) 2008-2012, International Business Machines Corporation and * 4 * others. All Rights Reserved. * 5 ******************************************************************************* 6 */ 7 package com.ibm.icu.impl.javaspi.util; 8 9 import java.util.Locale; 10 import java.util.spi.LocaleNameProvider; 11 12 import com.ibm.icu.impl.javaspi.ICULocaleServiceProvider; 13 import com.ibm.icu.impl.locale.AsciiUtil; 14 import com.ibm.icu.text.LocaleDisplayNames; 15 16 public class LocaleNameProviderICU extends LocaleNameProvider { 17 18 @Override getDisplayCountry(String countryCode, Locale locale)19 public String getDisplayCountry(String countryCode, Locale locale) { 20 countryCode = AsciiUtil.toUpperString(countryCode); 21 String disp = LocaleDisplayNames.getInstance(ICULocaleServiceProvider.toULocaleNoSpecialVariant(locale)) 22 .regionDisplayName(countryCode); 23 if (disp == null || disp.length() == 0 || disp.equals(countryCode)) { 24 return null; 25 } 26 return disp; 27 } 28 29 @Override getDisplayLanguage(String languageCode, Locale locale)30 public String getDisplayLanguage(String languageCode, Locale locale) { 31 languageCode = AsciiUtil.toLowerString(languageCode); 32 String disp = LocaleDisplayNames.getInstance(ICULocaleServiceProvider.toULocaleNoSpecialVariant(locale)) 33 .languageDisplayName(languageCode); 34 if (disp == null || disp.length() == 0 || disp.equals(languageCode)) { 35 return null; 36 } 37 return disp; 38 } 39 40 //@Override getDisplayScript(String scriptCode, Locale locale)41 public String getDisplayScript(String scriptCode, Locale locale) { 42 scriptCode = AsciiUtil.toTitleString(scriptCode); 43 String disp = LocaleDisplayNames.getInstance(ICULocaleServiceProvider.toULocaleNoSpecialVariant(locale)) 44 .scriptDisplayName(scriptCode); 45 if (disp == null || disp.length() == 0 || disp.equals(scriptCode)) { 46 return null; 47 } 48 return disp; 49 } 50 51 @Override getDisplayVariant(String variant, Locale locale)52 public String getDisplayVariant(String variant, Locale locale) { 53 variant = AsciiUtil.toUpperString(variant); 54 String disp = LocaleDisplayNames.getInstance(ICULocaleServiceProvider.toULocaleNoSpecialVariant(locale)) 55 .variantDisplayName(variant); 56 if (disp == null || disp.length() == 0 || disp.equals(variant)) { 57 return null; 58 } 59 return disp; 60 } 61 62 @Override getAvailableLocales()63 public Locale[] getAvailableLocales() { 64 return ICULocaleServiceProvider.getAvailableLocales(); 65 } 66 } 67