arosemena / localechooser
Locale chooser based on common browser headers
Installs: 30
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/arosemena/localechooser
Requires
- php: >=5.4.0
This package is not auto-updated.
Last update: 2025-10-15 11:20:29 UTC
README
This is a simple class to detect the locale that the user preffers.
Installation
The easiest way to install this is through composer, inside your composer.json require block add
"arosemena/localechooser": "1.0.1"
and then do composer update, otherwise you could grab the class itself and autoload it with the method of your choosing.
Usage
You will need an instance of the LocaleChooser class, the constructor takes 3 parameters, first an array of the available language, ['en', 'es', 'fr'] for example, the second parameter is a string of the default language in case nothing can be matched, the third parameter is the name of the cookie that contains the language that overrides all the normal priority.
$chooser = new Arosemena\LanguageChooser\LanguageChooser(['en', 'es'], 'en', 'language');
After the class has been instanciated do $chooser->obtain() to get the appropiate locale.
Examples
$chooser = new Arosemena\LanguageChooser\LanguageChooser(['en', 'es', 'fr'], 'es', 'language'); // if the browser says that the user prefers french (fr) $chooser->obtain(); // returns 'fr' // if the browser says that the user prefers german (de) $chooser->obtain(); // returns 'es' because it is the default language and german isn't supported // if the browser says that the user prefers spanish (es) and sends a cookie named language with the value 'fr' $chooser->obtain(); // returns 'fr' because the cookie overrides the browser preferred language
How does it work?
The class will read the $_SERVER['HTTP_ACCEPT_LANGUAGE'] variable which is a header sent by most modern browsers and it will be parsed and evaluated against the available languages to determine the most appropiate one.