// © 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2004-2014, International Business Machines * Corporation and others. All Rights Reserved. ********************************************************************** * Author: Alan Liu * Created: January 16 2004 * Since: ICU 2.8 ********************************************************************** */ #include "locbased.h" #include "uresimp.h" U_NAMESPACE_BEGIN const Locale& LocaleBased::getLocale(const Locale& valid, const Locale& actual, ULocDataLocaleType type, UErrorCode& status) { if (U_FAILURE(status)) { return Locale::getRoot(); } switch(type) { case ULOC_VALID_LOCALE: return valid; case ULOC_ACTUAL_LOCALE: return actual; default: status = U_ILLEGAL_ARGUMENT_ERROR; return Locale::getRoot(); } } const char* LocaleBased::getLocaleID(const Locale& valid, const Locale& actual, ULocDataLocaleType type, UErrorCode& status) { const Locale& locale = getLocale(valid, actual, type, status); if (U_FAILURE(status)) { return nullptr; } return locale == Locale::getRoot() ? kRootLocaleName : locale.getName(); } U_NAMESPACE_END