Creative Commons License
This work is licensed under a
Creative Commons
Attribution-Share Alike 3.0
Unported License.

Master Symfony2 fundamentals

Be trained by SensioLabs experts (2 to 6 day sessions -- French or English).
trainings.sensiolabs.com

Discover the SensioLabs Support

Access to the SensioLabs Competency Center for an exclusive and tailor-made support on Symfony
sensiolabs.com

The Locale Component

Caution: You are browsing the documentation for Symfony version 2.0 which is not maintained anymore. If some of your projects are still using this version, consider upgrading.

The Locale Component

Locale component provides fallback code to handle cases when the intl extension is missing. Additionally it extends the implementation of a native Locale class with several handy methods.

Replacement for the following functions and classes is provided:

Note

Stub implementation only supports the en locale.

Installation

You can install the component in many different ways:

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
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();