/** * Create a new language matcher from a String form. The highest-weighted * language is the default. * * @param languagePriorityListString String form of LanguagePriorityList * @stable ICU 4.4 */ public LocaleMatcher(String languagePriorityListString) { this(LocalePriorityList.add(languagePriorityListString).build()); }
/** * @internal * @deprecated This API is ICU internal only. */ @Deprecated public ULocale getBestMatch(ULocale... ulocales) { return getBestMatch(LocalePriorityList.add(ulocales).build()); }
/** * Convenience method: Get the best match for a LanguagePriorityList * * @param languageList String form of language priority list * @return best matching language code * @stable ICU 4.4 */ public ULocale getBestMatch(String languageList) { return getBestMatch(LocalePriorityList.add(languageList).build()); }
private static LocaleMatcher CreateDefaultMatcher() { LocalePriorityList priorityList = LocalePriorityList.add(ULocale.ROOT).build(); return new LocaleMatcher(priorityList); }
@Inject public I18nConfigurationHandler(Application application, LocaleService localeService) { I18nConfig i18nConfig = application.getConfiguration().get(I18nConfig.class); List<String> additionalLocales = i18nConfig.getAdditionalLocales(); supportedLocales = sortLanguages( W20_BUILTIN_LOCALES, additionalLocales.toArray(new String[additionalLocales.size()]) ); localeMatcher = new LocaleMatcher(LocalePriorityList.add(Joiner.on(',').join(supportedLocales)).build()); this.localeService = localeService; }
private ULocale getClosestULocale(String locale) { if (isAvailable(locale)) { return new ULocale(locale); } String defaultLocale = getDefaultLocale(); LocalePriorityList.Builder builder = null; if (defaultLocale != null) { builder = LocalePriorityList.add(defaultLocale); } for (String availableLocale : getAvailableLocales()) { if (defaultLocale == null || !defaultLocale.equals(availableLocale)) { if (builder == null) { builder = LocalePriorityList.add(availableLocale); } builder.add(availableLocale); } } if (builder != null) { LocaleMatcher localeMatcher = new LocaleMatcher(builder.build()); return localeMatcher.getBestMatch(locale); } else { return null; } } }
ULocale getClosestULocale(String locale) { String defaultLocale = getDefaultLocale(); if (isAvailable(locale)) { return new ULocale(locale); } LocalePriorityList.Builder builder = null; if (defaultLocale != null) { builder = LocalePriorityList.add(defaultLocale); } for (String availableLocale : getAvailableLocales()) { if (defaultLocale == null || !defaultLocale.equals(availableLocale)) { if (builder == null) { builder = LocalePriorityList.add(availableLocale); } builder.add(availableLocale); } } if (builder != null) { LocaleMatcher localeMatcher = new LocaleMatcher(builder.build()); return localeMatcher.getBestMatch(locale); } else { return null; } } }