vades/php-language

PHP 语言类 - 该类检测语言(从 URL、会话、cookie 和浏览器),然后设置当前语言

dev-master 2019-05-02 10:28 UTC

This package is not auto-updated.

Last update: 2024-09-24 07:24:25 UTC


README

该类检测语言(从 URL、会话、cookie 和浏览器),然后设置当前语言

用法

  1. 下载 --

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

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

  1. 将类和配置文件包含到您的代码中 --

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

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

use \Vades\Language\LanguageSwitch;

或者使用 Composer 自动加载

require 'vendor/autoload.php';

  1. 在配置文件 config.php 中设置值 --

默认语言: 'default' => 'en'

支持的语言: 'supported' => array('en','de','fr','es','it')

  1. 初始化 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. 使用方法链 --

     <?php
     
             $lang = $switch->fromUrl()
                 ->fromSession()
                 ->fromCookie()
                 ->fromBrowser()
                 ->get();
    
      ?>
    
  3. 代码示例 --

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