[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);
相关文章
- 使用fiddler抓取HTTPS的数据包(抓取App端的数据包)
- 接口测试基础知识
- Selenium 八大元素定位方式
- 常用Appium API
- Appium常用的3种元素定位方式
- Selenium API
- 浅谈 Appium App UI 自动测试
- 浅谈UI自动化测试
- ADB常用命令
- Unable to start the daemon process
- docker高级篇第二章-分布式存储之实战案例:3主3从redis集群扩容配置
- 解决net不是此命令的问题
- 在多分类任务实验中用torch.nn实现dropout
- 在多分类任务实验中手动实现实现dropout
- Ubuntu 20.04 使用参考博客
- 多分类任务中不同隐藏单元个数对实验结果的影响
- 多分类任务中不同隐藏层层数对实验结果的影响
- 利用torch.nn实现前馈神经网络解决 多分类 任务使用至少三种不同的激活函数
- 利用torch.nn实现前馈神经网络解决 二分类 任务
- torch.nn.BCELoss用法