PHP中英雙語網站的設計思路

1. 前幾天開發一個雙語網站企業站  , 實現思路大部分情況下 , 我們可以想到是使用一個語言包數組文件 . key和value的形式 , 我們在展示界面時 , 輸出數組對應的key而不是固定寫死這個值

大概的設計是這樣的 , 有兩個這樣的php文件

cn.php

en.php

裏面就是返回一個數組

return array(

  'name'=>'姓名',

  'age'=>'年齡'

)

return array(

  'name'=>'Name',

  'age'=>'Age'

)

2. 當我需要在界面上顯示內容的時候 , 需要首先根據我們自己的判斷進行加載不同的語言包文件 , 這個判斷可以在默認情況下使用瀏覽器的ua

if(IS_CHINESE)

$lang = require('languages/cn.php')

}else{

$lang = require('languages/en.php')

}

輸出的時候直接使用這個數組 $lang['name']  $lang['age']

3. 而後端數據部分也是應該是雙語的 , 那就要求我們在設計數據庫的時候一定要加上英文內容的字段 , 比如 title  title_en

在查詢的時候也是在判斷後 , 取數據的sql裏進行取不同的字段

if(IS_CHINESE)

  $sql="select title from article"

}else{

  $sql="select title_en as title from article"

}

這樣才能做到數據部分也是雙語的

4. 當前臺選擇不同的語言時 , 我們還是需要前端使用cookie記住當前的語言 , php再去cookie中讀取 , 加入到上面的判斷語句之前 , 並且呢後臺也要可以配置默認語言

if(isset($_COOKIE['lang'])){
  $lang = $_COOKIE['lang'];
}else{
  if($_CFG['siteDefaultLang'] == 'Auto'){
    if (strstr(strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE']), 'zh-cn') OR strstr(strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE']), 'zh-tw')){
      $lang = 'Chinese';
    }else{
      $lang = 'English';
    }
}else{
  $lang = $_CFG['siteDefaultLang'];
}

define('IS_CHINESE', ($lang == 'Chinese') ? 1 : 0);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章