php Language Detection Class
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
.gitignore
LICENSE
README.md

README.md

LanguageDetection

php Language Detection Class

The class matches the availableLanguages configuration with the browser’s Accept-Language header and returns the preferred.

Usage

find preferred language

The method findLanguage returns an iso2 language key.

  • From cookie OR
  • Matched by the Accept-Language header from browser. OR
  • Returns the fallbackLanguage
$availableLanguages = array( 'nl', 'de', 'cz', 'pl' );
$languageDetection = new \NR\Utilities\LanguageDetection( $availableLanguages );
$iso2 = $languageDetection->findLanguage();

set language fallback

set a language fallback in constructor (default is 'en').

$languageDetection = new \NR\Utilities\LanguageDetection(
   $availableLanguages,
   'de'
);

// or set later with
$languageDetection->fallbackLanguageIso2 = 'de';

get the Accept-Language header from browser

The array is sorted by the header’s quality attribute (e.g. ;q=0.8).

$languageDetection->getAcceptedLanguage();

/* e.g.
Array
(
    [0] => de-DE
    [1] => de
    [2] => en-US
    [3] => en
)
*/

Cookie

If $cookieSupport is true (default), the language value can be stored as a cookie. The method findLanguage prefers the cookie value if set.

set available language to cookie

If the language value ('de') is contained in availableLanguages, the value will be saved in the cookie.

$languageDetection->setLanguage('de');

echo $_COOKIE['LanguageDetection']
// same as 
echo $languageDetection->findLanguage();

delete cookie

The cookie's expiration time is set to -1 and the global var $_COOKIE[…] is unset.

$languageDetection->unsetLanguage();

configuration options for cookie

// defaults
$languageDetection->cookieSupport = true;

$languageDetection->cookieName = 'LanguageDetection';
$languageDetection->cookieExpire = 0;
$languageDetection->cookiePath = '/';
$languageDetection->cookieDomain = '';
$languageDetection->cookieSecure = false;
$languageDetection->cookieHttponly = false;