思路:用Cookies记录语言环境,通过HTTP请求检测出客户端语言(如: zh_cn),让程序自动匹配语言包。(目前基本上是这样子滴。)
一、准备工作:
到官方下载最新的语言包,http://download.comsenz.com/DiscuzX/
调整/source/language/语言包目录结构(这里示例真三国,只要您喜欢可以建更多。):
/source/locale/zh_CN 简体 Chinese
/source/locale/zh_TW 繁体 Taiwanese
/source/locale/en_US 英文 English
(如何操作?以简体中文为例,将程序包中language目录下所有文件拷到zh_CN目录下。)
二、实现方法,请按以下操作步骤:
第一步,找到引入语言包的文件,通过系统搜索功能查找文字”language/”可找到:
class_template.php \source\class
function_core.php \source\function
lang_admincp.php \source\language
查找(共4处):
DISCUZ_ROOT.'./source/language
替换为:
DISCUZ_LOCALE.'
第二步,让我们要引入自定义的DISCUZ_LOCALE,打开class_core.php以下文件,
class_core.php \source\class
2.1查找:
$_GET['diy'] = empty($_GET['diy']) ? '' : $_GET['diy'];
下面加:
require_once DISCUZ_ROOT.'./source/discuz_locale.php';
2.2将下面的内容保存为/source/discuz_locale.php
语言切换部分已优化,届时请在新应用中心下载插件。
到此,您可以通过网址切换了,后台已经实现多语言了。
测试一下吧:http://localhost/admin.php?lang=cn
接下来,再对DX前台模板做一下处理,敬请关注。
———————————————OVER——————————————————
(我敢肯定您对目前前台切换后看到的效果一定不是很满意,我们也是一样,
处理起来真不是一会会的事,接下来的文章有点长,请耐心等候。)
下期提要,我们会在主题模板(/template/default/)下新增的语言目录和文件,针对模板进行处理。
/template/default/locale
/template/default/locale/zh_CN.php
/template/default/locale/zh_TW.php
/template/default/locale/en_US.php
下期更精彩,不要错过哦。
Q&A
Q:这个方法能用其它程序,如:UCenter Home吗?
A:是的。(ps: 道理是一样的。)
下一个Q等你来提。。。。
(最后更新时间:2012.3.5)
相关文章:
转载请注明出处:https://www.onexin.net/discuz/original-discuz-x-multi-language-implementations-please-comment/
前台能够切换多语言吗?看了您的介绍,你也仅仅说的是后台多语言切换而已。如果设置了rewrite有影响吗?
也可以,对于网址方面处理有很多办法可供选择,具体采用哪一种方法,我们正在测试。
你好。按上述操作,无法登陆网站了。请教为什么啊?
zh_CN zh_TW下面的lang_admincp.php也需要替换吗?\source\language这个文件夹还需要吗?
需要替换,重新按操作方法再试试。\source\language这个文件夹可以保留
非常好,特地感谢/
有演示吗?
另外,GBK版本的可以用么?
X2.5 搞不了,2.1找不到!
请问这个还更新吗
如果是别的其他国家的文字,是要怎么处理呢,比如说印尼语的,而且想用DiscuzX2.5版本的,怎么修改呢,
不知道版主有没有用Discuz X2.5的账号登陆到别的网站上去呢,两个网站的会员是相通的,我试过,会员可以打通,不过遇到一个问题,就是,修改网站会员的密码根本修改不到Dz会员的密码。。。
^^