[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中讀取 , 加入到上面的判斷語句之前 , 並且呢后台也要可以配置默認語言 ,預覽效果可以看這里http://www.duzbearings.com 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM