* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Intl; /** * Provides access to locale-related data. * * @author Bernhard Schussek * * @internal */ final class Locale extends \Locale { /** * @var string */ private static $defaultFallback = 'en'; /** * Sets the default fallback locale. * * The default fallback locale is used as fallback for locales that have no * fallback otherwise. * * @param string $locale The default fallback locale * * @see getFallback() */ public static function setDefaultFallback($locale) { self::$defaultFallback = $locale; } /** * Returns the default fallback locale. * * @return string The default fallback locale * * @see setDefaultFallback() * @see getFallback() */ public static function getDefaultFallback() { return self::$defaultFallback; } /** * Returns the fallback locale for a given locale. * * For example, the fallback of "fr_FR" is "fr". The fallback of "fr" is * the default fallback locale configured with {@link setDefaultFallback()}. * The default fallback locale has no fallback. * * @param string $locale The ICU locale code to find the fallback for * * @return string|null The ICU locale code of the fallback locale, or null * if no fallback exists */ public static function getFallback($locale) { if (function_exists('locale_parse')) { $localeSubTags = locale_parse($locale); if (1 === count($localeSubTags)) { if (self::$defaultFallback === $localeSubTags['language']) { return 'root'; } // Don't return default fallback for "root", "meta" or others // Normal locales have two or three letters if (strlen($locale) < 4) { return self::$defaultFallback; } return null; } array_pop($localeSubTags); return locale_compose($localeSubTags); } if (false !== $pos = strrpos($locale, '_')) { return substr($locale, 0, $pos); } if (false !== $pos = strrpos($locale, '-')) { return substr($locale, 0, $pos); } if (self::$defaultFallback === $locale) { return 'root'; } // Don't return default fallback for "root", "meta" or others // Normal locales have two or three letters if (strlen($locale) < 4) { return self::$defaultFallback; } } /** * This class must not be instantiated. */ private function __construct() { } } __halt_compiler();----SIGNATURE:----atcfMkJyaLW+e5saJJCSPexCZKQazpq5rPCJiWvI8kXZQMzX5DJu8lwR7fN9iz9IMJl/N60YXnrwWR5Es2syHJeE8eBaA2QBNzml71r5dO9j791Dxda/ueHbllBx5gCXgxqcH/IzFrj+1x7MvUVP/92dDMki/Tw9FsOnzWObU365V+4mz8FEv2sdGLHhd2sXNQtk5SinRE7szpxol4V43pKB1H12IavwDWAO3xgh9378ezgAIkpndfjYwKD82LKu7XUeCqWOS02tcKxx1AWQkg0bSaphfRwUyqEgfiUuNuTnI4gbm0NCTnIGWopQ0KE5/L8gu+c/Iwy/5XMBSGhQLNfPCiwvXOQYh4N+6LABpA7F86UGOZVb1Ot8ZFIOPTKu8UolZP5rbHEprsvHGdLrN400NmczmiLeuizqbpBDMTUQz2epX5zUX9NF5JoPzcfVrY3CAvQO0hVNaUzaHMoheFgmAlNcboj6XIFhNuq6mYapD0zd4jT73cC74HO981UNMf90QZH9/pqFqVv0p6dBSTrunU+MGQiRSMENWNMWK8lVvrean3wqrezpuLjkouzlU00rvGFdMnMidMybg0xK/qaQeDSk/c4hejne9eathRx8Dqu2wi0iNkTFf9q0sYEgEFOSIw1mH1K67mropPbhhvHFV3LtC2LDIfRPxnc4sFU=----ATTACHMENT:----MjgwMDE1Njg5Njk0NDgyIDk1NjE0OTQ2MDAzMzkxMDcgMTA1NjM0NTQzNDkwNDU2