thinkphp 中英文网站详解

thinkphp 制作中英文网站的两种方法

一,在网站程序里增加语言脚本,设置整站自动翻译。

二,在原有的页面制作新的模板,在新的页面编辑网站,

优缺点

一:优点.........就是不用多次添加内容文章,不用设计数据库语言分类,制作时间短,一次添加整站翻译。。缺点.........翻译脚本可能翻译不正确,细节差异可能影响网站页面排版,且不能自定义修改,自由编辑度低。

二:优点.............可自定义翻译页面内容,页面差异自由修改,高自由度 编辑。。缺点........添加内容麻烦,中英文内容要各自添加一份,数据库要设计语言分类标识。

制作流程:

一:我也是参照百度手册拷下来的(具体的还要看个人操作)

 1. 在Application/Common/conf/下新建tags.php(默认是没有的,需要新建)文件,增加内容如下:

1 return array(
2     ‘app_begin‘ => array(‘Behavior\CheckLangBehavior‘),  //表示在app_begin标签位置执行多语言检测行为。
3  );

2.  在Application/Common/conf/config.php配置文件中新增如下内容:

1     ‘LANG_SWITCH_ON‘ => true,   // 开启语言包功能
2     ‘LANG_AUTO_DETECT‘ => true, // 自动侦测语言 开启多语言功能后有效
3     ‘LANG_LIST‘        => ‘zh-cn,en-us‘, // 允许切换的语言列表 用逗号分隔
4     ‘VAR_LANGUAGE‘     => ‘l‘, // 默认语言切换变量

3. 在Application/Common/下新建Lang文件。

  4. 在Application/Common/Lang/下新建en-us.php文件,增加内容如下:

1 return array(
2     ‘welcome‘=>‘I am English‘,
3  );

  5. 在Application/Common/Lang/下新建zh-cn.php文件,增加内容如下:

1 return array(
2     ‘welcome‘=>‘我是中文的‘,
3  );

  6. 然后在对应的模板文件中进行引用,如: {$Think.lang.welcome}

  

  7. 设置中英文切换的超链接,如下:

  <a href="?l=zh-cn" >简体中文</a> | <a href="?l=en-us" >English</a>

二:这是我自己根据自己的网站的设计制作的。

1:根据自己的网站设计数据库在需要的表(article)里面添加一个语言字段标识,

 2:后台添加文章时可选中英文

3:home模块添加一个控制器(EnglishController.class.php)View添加一个文件夹(English)复制中文页面及修改头部及内容。

4:在控制器方法里,获取文章信息时加个判断is_lang = 0(IndexController.class.php);或is-lang = 1(EnglishController.class.php);

5:最后在前端跳转中英文的选项上设置链接跳转。

6:这是一个比较愚蠢的办法,却很实用,熟悉之后开发时间也很快,希望对各位有用,本人也是菜鸟一个,大神们有更好更便捷的功能更强大的@我,这是我的第三篇博客,也是最认真的,希望在未来会有更多的更好的技术与大家分享。。。

时间: 2024-12-25 18:51:24

thinkphp 中英文网站详解的相关文章

ThinkPHP视图查询详解

ThinkPHP视图查询详解 参考http://www.jb51.net/article/51674.htm 这篇文章主要介绍了ThinkPHP视图查询,需要的朋友可以参考下 ThinkPHP提供的视图查询应用功能十分强大,用户利用视图查询功能可以将多个数据表的字段内容按需要进行指定和筛选,组织成一个基于这些数据表的视图模型,然后就可以通过该模型直接进行多表联合查询,非常方便和简单. 例如在项目中,我们定义有三个表: user          用户基础表,user_info   用户详细信息表

ThinkPHP 缓存技术详解 使用大S方法

如果没有缓存的网站是百万级或者千万级的访问量,会给数据库或者服务器造成很大的压力,通过缓存,大幅减少服务器和数据库的负荷,假如我们把读取数据的过程分为三个层,第一个是访问层,第一个是缓存层,第三个是数据库存取层,如果没有缓存层,访问层是直接从数据库存取层读取数据,而设置缓存后,访问层不再是直接在数据库存取层读取,而是从缓存层读取数据. 我们做个简单的对比,假设一个页面,在一个小时可被访问100万次,如果这个页面每次被访问的时候,都直接读取数据库后再编译生成,在一个小时内将会重复性的生成100万次

ThinkPHP where方法详解

在ThinkPHP框架中,where方法的用法是查询语言的精髓,是ThinkPHP连贯操作的重要部分.where方法的参数支持字符串.数组和对象,数组查询是非常强大的,也是官方推荐的.where方法可以完成包括普通查询.表达式查询.快捷查询.区间查询.组合查询在内的查询操作. 1.字符串查询 2.数组查询a.普通查询 注意:数组的下标必须为数据库的字段,否则会被过滤. b.表达式查询 3.where方法数组查询例子 1.如何使用数组实现同一字段多个条件?比如,查询createdate大于等于20

dedecms织梦做中英文(多语言)网站步骤详解

用dedecms织梦程序如何做中英文网站,下面是一个详细的图文教程,希望能帮助到大家. 以下是用dedecms织梦程序制作过的一个5国语言网站,下面开始教程. 一.首先在后台建栏目,有三点需要注意 1.需要做几种语言就加几个大的栏目,我把这个栏目叫做封面栏目,里面都是自己语言的导航栏目 2.封面栏目“常规选项”的文件保存目录设置为cn或者en 3.封面栏目“高级选项”的列表模板设置为cn_index.htm或者en_index.htm 二.网站代码的调用 每种语言的封面栏目和每种语言下的导航栏目

大型网站架构系列:负载均衡详解

面对大量用户访问.高并发请求,海量数据,可以使用高性能的服务器.大型数据库,存储设备,高性能Web服务器,采用高效率的编程语言比如(Go,Scala)等,当单机容量达到极限时,我们需要考虑业务拆分和分布式部署,来解决大型网站访问量大,并发量高,海量数据的问题.从单机网站到分布式网站,很重要的区别是业务拆分和分布式部署,将应用拆分后,部署到不同的机器上,实现大规模分布式系统.分布式和业务拆分解决了,从集中到分布的问题,但是每个部署的独立业务还存在单点的问题和访问统一入口问题,为解决单点故障,我们可

大型网站架构系列:负载均衡详解(1)

面对大量用户访问.高并发请求,海量数据,可以使用高性能的服务器.大型数据库,存储设备,高性能Web服务器,采用高效率的编程语言比如(Go,Scala)等,当单机容量达到极限时,我们需要考虑业务拆分和分布式部署,来解决大型网站访问量大,并发量高,海量数据的问题. 从单机网站到分布式网站,很重要的区别是业务拆分和分布式部署,将应用拆分后,部署到不同的机器上,实现大规模分布式系统.分布式和业务拆分解决了,从集中到分布的问题,但是每个部署的独立业务还存在单点的问题和访问统一入口问题,为解决单点故障,我们

大型网站架构系列:负载均衡详解(4)

本文是负载均衡详解的第四篇,主要介绍了LVS的三种请求转发模式和八种负载均衡算法,以及Haproxy的特点和负载均衡算法.具体参考文章,详见最后的链接. 三.LVS负载均衡 LVS是一个开源的软件,由毕业于国防科技大学的章文嵩博士于1998年5月创立,用来实现Linux平台下的简单负载均衡.LVS是Linux Virtual Server的缩写,意思是Linux虚拟服务器. 基于IP层的负载均衡调度技术,它在操作系统核心层上,将来自IP层的TCP/UDP请求均衡地转移到不同的 服务器,从而将一组

详解网站沙盒期的原因表现与解决办法

很多人都不太明白到底什么是网站沙盒期,也不知道应该如何去判断网站正处在沙盒期,而如何才能让网站快速的走出沙盒期呢?这也另很多人感觉到迷茫.今天冯东阳就跟大家详细了解下网站沙盒期的一些问题及解决办法: 什么是沙盒期? seo中的沙盒是指一个新站建立后搜索引擎会对其进行一个类似资格评价的阶段,我们将这个阶段称为沙盒,在沙盒里面的这段时间,我们将其称为沙盒期,沙盒期一般都是2-6个月.不过有些新网站可能一个多月就走出沙盒期了,这个还跟网站的内容质量以及外链有关系.而老网站也有可能会进入沙盒期的,只是新

ThinkPHP源码阅读2-----C函数配置文件详解

ThinkPHP的配置非常灵活,可自定义加载.大概看了一下,一共有这几个地方会加载配置文件,方便以后的读取 /** * 获取和设置配置参数 支持批量定义 * * @param string|array $name * 配置变量 * @param mixed $value * 配置值 * @return mixed */ function C($name = null, $value = null) { static $_config = array (); // 无参数时获取所有 if (emp