Skip to content

PHP class - Switch between detected languages and set a current one

License

Notifications You must be signed in to change notification settings

vades/php-language

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Language switch PHP class

This class detects the language (from url, session, cookie and browser) and then sets a current one

Usage

  1. Download --

Git: https://github.com/vades/php-language.git

Composer: {"require": {"vades/php-language": "dev-master"} }

  1. Include class and config into your code --

require_once '../src/Vades/Language/LanguageSwitch.php';

$cfg = require_once '../src/Vades/Language/config.php';';

use \Vades\Language\LanguageSwitch;

OR autoload with Composer

require 'vendor/autoload.php';

  1. Set values in config file config.php --

Default language: 'default' => 'en'

Supported languages: 'supported' => array('en','de','fr','es','it')

  1. Initialize the LanguageSwitch -- <?php

             $switch = new LanguageSwitch(array(
                 'default' => $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)
             ));
    
      ?>
    
  2. Use it with method chaining --

     <?php
     
             $lang = $switch->fromUrl()
                 ->fromSession()
                 ->fromCookie()
                 ->fromBrowser()
                 ->get();
    
      ?>
    
  3. 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);
    
      ?>
    

About

PHP class - Switch between detected languages and set a current one

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages