The Locale Component
CAUTION:
You are browsing the documentation for Symfony 2.2
which is not maintained anymore.
Consider upgrading your projects to Symfony 3.1.
2.2 version
The Locale Component¶
The Locale component provides fallback code to handle cases when theintlextension is missing. Additionally it extends the implementation of a nativeLocaleclass with several handy methods.
Replacement for the following functions and classes is provided:
intl_is_failureintl_get_error_codeintl_get_error_messageCollatorIntlDateFormatterLocaleNumberFormatter
Note
Stub implementation only supports the en locale.
Installation¶
You can install the component in 2 different ways:
- Install it via Composer (
symfony/localeon Packagist); - Use the official Git repository (https://github.com/symfony/Locale).
Usage¶
Taking advantage of the fallback code includes requiring function stubs and adding class stubs to the autoloader.
When using the ClassLoader component following code is sufficient to supplement missing intl extension:
1 2 3 4 5 6 7 | if (!function_exists('intl_get_error_code')) {
require __DIR__.'/path/to/src/Symfony/Component/Locale/Resources/stubs/functions.php';
$loader->registerPrefixFallbacks(
array(__DIR__.'/path/to/src/Symfony/Component/Locale/Resources/stubs')
);
}
|
Locale class enriches native Locale class with additional features:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | use Symfony\Component\Locale\Locale;
// Get the country names for a locale or get all country codes
$countries = Locale::getDisplayCountries('pl');
$countryCodes = Locale::getCountries();
// Get the language names for a locale or get all language codes
$languages = Locale::getDisplayLanguages('fr');
$languageCodes = Locale::getLanguages();
// Get the locale names for a given code or get all locale codes
$locales = Locale::getDisplayLocales('en');
$localeCodes = Locale::getLocales();
// Get ICU versions
$icuVersion = Locale::getIntlIcuVersion();
$icuDataVersion = Locale::getIcuDataVersion();
|
This work, including the code samples, is licensed under a Creative Commons BY-SA 3.0 license.

