麻辣堂|资源主站|开发论坛|在线手册
首页 Apache Linux Java MySQL 注册帮助 
PHP项目开发组是PHP开发资源网于2007组年建成立的项目开发团队,目前核心开发成员有27人, 项目协作成员8名.下设7个开发组,主要承接大/中型网站项目开发任务。

    由于开发任务较多,人员比较紧张,现面向社会招聘全职或者兼职开发人员,不管你是在校大学生,还是全职开发人员,以及SOHO都可以联系本站,我们可以长期合作,并为您带来丰厚的报酬。
  您现在的位置:PHP开发资源网 > 麻辣堂 > 详细资料
待解决
用php开发多语言系统的实现
悬赏分:20 - 2007年08月13日

用PHP开发多语言系统的实现 多语言系统的语言显示主要分为静态显示和动态显示两种 一, 静态显示 指的是源代码中直接写入的词语和句子,通过服务器解析为HTML代码就可显示出来。 学过PHP的朋友可能都知道用PHP开发的用来管理MYSQL数据库的工具phpmyadmin,它就是一个多语言系统,我们完全可以借鉴它实现的方法。 其实现方法是把所用到的所有词语和句子找出来分别附值给一个全局变量,然后将其做成一个包含文件,再将这个文件翻译为多种语言,分别做成各种语言的包含文件。需要注意的是最好把所有的文件都转化为UTF-8的编码形式,然后设置就可以了,否则你还得根据需要显示的语言来设置charset=你所要显示的语言,在这里推荐一个编辑软件emediter,它可以十分方便的进行编码的转换。 在系统登陆的时候做一个语言选择的表单,当用户登陆的时候,他所选择的语言变量将保存到session中,根据session变量就可以判断应该选择哪种语言的包含文件了。 我这里所举的例子是采用数组来存储变量的,把所用到的词语和句子按它在源文件中所处的页,行,列来定位,数组中的元素表示为“页;行;列;中文;日文;英文”,其包含文件为: [PHP] logon_lang.lib <? /*FILE LIST: logon.php => 1 index.php=> 2 */ $menu=array( "1;1;1;登陆; ログオン;logon", “1;2;1;……;…….;…….”, ……………. ); ?> 显示语言的函数: mul_disp.lib function printlang($P,$R,$C,$lang,$menu) { $position=$P . ";" . $R . ";" . $C; $array_find=preg_grep("/$position/", $menu); if(count($array_find)!="1"){ echo "location error"; }else{ foreach($array_find as $new) {$result=$new;} //$result=$array_find[0]; list($Page,$Row,$Cur,$CHINA,$JAPAN,$ENGLISH)=split(";","$result",6); switch($lang) { case 0: return ($CHINA);break; case 1: return ($JAPAN);break; case 2: return ($ENGLISH);break; default: return "lang choose error";break; } } } logon.php <? …… require("mul_disp.lib"); require("logon_lang.lib"); ?> ……

<?echo printlang(1,1,1,$ss['lan'],$menu);?>
<?echo printlang(1,2,1,$ss['lan'],$menu);?>
…… [/PHP] 二.动态显示 指的是从数据库中读出的数据。 流行的关系数据库系统都支持数据库 encoding,也就是说在创建数据库时可以指定它自己的字符集设置,数据库的数据以指定的编码形式存储。当应用程序访问数据时,在入口和出口处都会有 encoding 转换。当然也可以用PHP的iconv()函数实现编码的转换,但这样就增加了编程的复杂度,所以最好充分利用数据库的encoding。

提问者:qiao   08-13 17:05
答复
路过。。。顺便帮顶:)
回答者:玉米づ冰冻可乐 - 瓦岗村民 8-22 09:10
我也来回答:
不管你有没有帮助我们,瓦岗寨8万村民将感谢你。。。。。

为防止灌水,您需要计算一道数学题: 答案:
76 + 52 = ? 请将计算结果填在上面

 
[]
©2007 PhpRes.COM