Language switch PHP class
This class detects the language (from url, session, cookie and browser) and then sets a current one, (*1)
Usage, (*2)
1. Download
Git: https://github.com/vades/php-language.git
, (*3)
Composer: {"require": {"vades/php-language": "dev-master"} }
, (*4)
2. Include class and config into your code
require_once '../src/Vades/Language/LanguageSwitch.php';
, (*5)
$cfg = require_once '../src/Vades/Language/config.php';';
, (*6)
use \Vades\Language\LanguageSwitch;
, (*7)
OR autoload with Composer, (*8)
require 'vendor/autoload.php';
, (*9)
3. Set values in config file config.php
Default language: 'default' => 'en'
, (*10)
Supported languages: 'supported' => array('en','de','fr','es','it')
, (*11)
4. Initialize the LanguageSwitch
$cfg['default'],
'supported' => $cfg['supported'],
'url' => $lang_from_url ,
'session' => $lang_from_session,
'cookie' => $lang_from_ucookie,
'browser' => substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2)
));
?>
5. Use it with method chaining
<?php
$lang = $switch->fromUrl()
->fromSession()
->fromCookie()
->fromBrowser()
->get();
?>
6. Code snippet
<?php
require_once '../src/Vades/Language/LanguageSwitch.php';
use \Vades\Language\LanguageSwitch;
$cfg = require_once '../src/Vades/Language/config.php';
// Start session
if (strlen(session_id()) < 1) {
session_start();
$_SESSION['lang'] = 'de';
}
// Set cookie
setcookie('lang', 'fr', time()+60);
// Initialize the language switch
$switch = new LanguageSwitch(array(
'default' => $cfg['default'],
'supported' => $cfg['supported'],
'url' => (isset($_GET['lang']) ? $_GET['lang'] : null) ,
'session' => (isset($_SESSION['lang']) ? $_SESSION['lang'] : null),
'cookie' => (isset($_COOKIE['lang']) ? $_COOKIE['lang'] : null),
// Extract the two digit language code from the http headers
'browser' => substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2)
));
$lang = $switch->fromUrl()
->fromSession()
->fromCookie()
->fromBrowser()
->get();
var_dump($switch,$lang);
?>