* * 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:----XXo19fFnyxSNyqmHgnib/TudSNY2ubHaOjXh8iw7qGwFpeikjOouEkuRZmxREKFWofYaRXXMMI4dhmAdB1hKBjd1KAwoNC/3uCl+Z0AkK6sF6qyBuRwyF32fdnEbCwSBoxyIBizmxWF0FO3qLXCD5WdclAANFptTF4Yr94E0b8IfUkzh1QKcv34eys+c6M12C0eCsNjEVcTq6m+eDb6MiSoVFYl1a2UaDKmksOmp5TvwdiYJjI7Elyt4yMTyajHFs8JE4BGp48qQGY80KXValBddiFtzIa2gpJVk2Zh10a0dftOho/7vZuck3BXZGlg7E/WpM+CJgmfSKlvTVLMAHXYUqk76zhAE6Iwxd96OsdhqnbK4OdzzVaQUG5ATIxTZIr6K24BJWHIh2HYadI+nWL65QR3ODfzEZxcNg5gFXMoPxhcnrwvmw3qegI5IrNOL+Gg9X/EFxT54OkXtQvHP+ecJIh3hCqmli1qIXINGShwrWmZBNxM2ueZYrLHzs+8WqK1FMo7IBbkkbPEtVkvyY6UcuaE2BRy37AK1bZZAiko/qgJXb73dIqfnfrHJVLRwnLJRiweCrN1dvC4PYL38y9OBke/sMhjC4Gyv9QY9z929jgAj2x4l3Sl5WRyi1YSirG8aMeTDSvgKucccHvp5nofN/reXu/wDDytFgu10ukk=----ATTACHMENT:----NzkwNjc4OTk1ODE1NTMxNCAzNDM3NzQ0ODg3MzU4NTA0IDc4NzQ2NDczMTAzNzAzMjg=