• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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