123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188 |
- <?php
- /*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
- namespace Symfony\Component\Locale;
- use Symfony\Component\Icu\IcuData;
- use Symfony\Component\Intl\Intl;
- /**
- * Helper class for dealing with locale strings.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @deprecated Deprecated since version 2.3, to be removed in 3.0. Use
- * {@link \Locale} and {@link \Symfony\Component\Intl\Intl} instead.
- */
- class Locale extends \Locale
- {
- /**
- * Caches the countries in different locales
- * @var array
- */
- protected static $countries = array();
- /**
- * Caches the languages in different locales
- * @var array
- */
- protected static $languages = array();
- /**
- * Caches the different locales
- * @var array
- */
- protected static $locales = array();
- /**
- * Returns the country names for a locale
- *
- * @param string $locale The locale to use for the country names
- *
- * @return array The country names with their codes as keys
- *
- * @throws \RuntimeException When the resource bundles cannot be loaded
- */
- public static function getDisplayCountries($locale)
- {
- if (!isset(self::$countries[$locale])) {
- self::$countries[$locale] = Intl::getRegionBundle()->getCountryNames($locale);
- }
- return self::$countries[$locale];
- }
- /**
- * Returns all available country codes
- *
- * @return array The country codes
- * @throws \RuntimeException When the resource bundles cannot be loaded
- */
- public static function getCountries()
- {
- return array_keys(self::getDisplayCountries(self::getDefault()));
- }
- /**
- * Returns the language names for a locale
- *
- * @param string $locale The locale to use for the language names
- *
- * @return array The language names with their codes as keys
- *
- * @throws \RuntimeException When the resource bundles cannot be loaded
- */
- public static function getDisplayLanguages($locale)
- {
- if (!isset(self::$languages[$locale])) {
- self::$languages[$locale] = Intl::getLanguageBundle()->getLanguageNames($locale);
- }
- return self::$languages[$locale];
- }
- /**
- * Returns all available language codes
- *
- * @return array The language codes
- * @throws \RuntimeException When the resource bundles cannot be loaded
- */
- public static function getLanguages()
- {
- return array_keys(self::getDisplayLanguages(self::getDefault()));
- }
- /**
- * Returns the locale names for a locale
- *
- * @param string $locale The locale to use for the locale names
- *
- * @return array The locale names with their codes as keys
- *
- * @throws \RuntimeException When the resource bundles cannot be loaded
- */
- public static function getDisplayLocales($locale)
- {
- if (!isset(self::$locales[$locale])) {
- self::$locales[$locale] = Intl::getLocaleBundle()->getLocaleNames($locale);
- }
- return self::$locales[$locale];
- }
- /**
- * Returns all available locale codes
- *
- * @return array The locale codes
- * @throws \RuntimeException When the resource bundles cannot be loaded
- */
- public static function getLocales()
- {
- return array_keys(self::getDisplayLocales(self::getDefault()));
- }
- /**
- * Returns the ICU version as defined by the intl extension
- *
- * @return string|null The ICU version
- */
- public static function getIntlIcuVersion()
- {
- return Intl::getIcuVersion();
- }
- /**
- * Returns the ICU Data version as defined by the intl extension
- *
- * @return string|null The ICU Data version
- */
- public static function getIntlIcuDataVersion()
- {
- return Intl::getIcuDataVersion();
- }
- /**
- * Returns the ICU data version that ships with Symfony. If the environment variable USE_INTL_ICU_DATA_VERSION is
- * defined, it will try use the ICU data version as defined by the intl extension, if available.
- *
- * @return string The ICU data version that ships with Symfony
- */
- public static function getIcuDataVersion()
- {
- return Intl::getIcuDataVersion();
- }
- /**
- * Returns the directory path of the ICU data that ships with Symfony
- *
- * @return string The path to the ICU data directory
- */
- public static function getIcuDataDirectory()
- {
- return IcuData::getResourceDirectory();
- }
- /**
- * Returns the fallback locale for a given locale, if any
- *
- * @param string $locale The locale to find the fallback for.
- *
- * @return string|null The fallback locale, or null if no parent exists
- */
- protected static function getFallbackLocale($locale)
- {
- if (false === $pos = strrpos($locale, '_')) {
- return null;
- }
- return substr($locale, 0, $pos);
- }
- }
|