2 *******************************************************************************
3 * Copyright (C) 2008-2012, International Business Machines Corporation and *
4 * others. All Rights Reserved. *
5 *******************************************************************************
7 package com.ibm.icu.impl.javaspi.util;
9 import java.util.Locale;
10 import java.util.spi.LocaleNameProvider;
12 import com.ibm.icu.impl.javaspi.ICULocaleServiceProvider;
13 import com.ibm.icu.impl.locale.AsciiUtil;
14 import com.ibm.icu.text.LocaleDisplayNames;
16 public class LocaleNameProviderICU extends LocaleNameProvider {
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)) {
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)) {
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)) {
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)) {
63 public Locale[] getAvailableLocales() {
64 return ICULocaleServiceProvider.getAvailableLocales();