zoukankan      html  css  js  c++  java
  • [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);

  • 相关阅读:
    鸡哥的限币令(有上下限的网络流/费用流问题)
    AtCoder Regular Contest 128 部分题题解
    一道题
    2021CCPC河南省赛
    10.26训练赛
    博弈论和SG函数
    10.24训练赛
    10.22训练赛
    CF #749
    atcoder ABC233
  • 原文地址:https://www.cnblogs.com/taoshihan/p/12607674.html
Copyright © 2011-2022 走看看