Home > php教程 > PHP源码 > 网站语言英文解决方案通过改变缓冲区来实现

网站语言英文解决方案通过改变缓冲区来实现

PHP中文网
Release: 2016-05-25 17:03:56
Original
1412 people have browsed it

 /*
    网站语言英文解决方案——通过改变缓冲区来实现
    功能:根据cookie判断用户选择的语言,默认为中文(不执行替换),当用户在页面中选择英语时候,则通过JS写入cookie语言状态码,此页面通过判断改cookie来判断是否进行语言翻译.
    说明:在前端通过JS判断用户选择的语言,用户选择英文时候,JS写入cookie语言状态为‘EN’,后台程序通过判断cookie保存的语言编码执行语言翻译操作.
    作者:aibhsc
    使用方法:在下面文件中加入要替换的中英文,然后在程序入口文件引用该文件即可.
    应用场景:对于企业网站英文不常使用,修改程序与数据库代价太高,但又必须要英文的网站,可以尝试使用此程序.
  */

<?php
	//通过一维数组存储语言包,节省空间,方便键的处理,注意:①键值别错位;②长字符串优先
	//语言包,把要翻译的内容放在此处——start
	$cn[]=&#39;用户登录&#39;;$en[]=&#39;UserLogin&#39;;
	$cn[]=&#39;登录&#39;;$en[]=&#39;Login&#39;;
	$cn[]=&#39;注册&#39;;$en[]=&#39;Reg&#39;;
	$cn[]=&#39;首页&#39;;$en[]=&#39;Home&#39;;
	$cn[]=&#39;查看&#39;;$en[]=&#39;View&#39;;
	$cn[]=&#39;去向&#39;;$en[]=&#39;Local&#39;;
	$cn[]=&#39;钻重&#39;;$en[]=&#39;Weight&#39;;
	$cn[]=&#39;国检&#39;;$en[]=&#39;NGTC&#39;;
	$cn[]=&#39;&#39;;$en[]=&#39;&#39;;
	//语言包——end

	//全局定义,引用语言包.
	$GLOBALS[&#39;global_CN&#39;]=&$cn;
	$GLOBALS[&#39;global_EN&#39;]=&$en;
	$GLOBALS[&#39;global_lang&#39;]=$_COOKIE[&#39;user_lang&#39;]?$_COOKIE[&#39;user_lang&#39;]:&#39;CN&#39;;
	
	cache();	//执行语言翻译操作
	
	function cache(){
		ob_start(array($this, "AutoCache"));	//不懂这行请查看PHP手册call_user_func里面第四个例子“Example #4”
	}

	function cn2en($body){	//参数:$body 要翻译的内容 ;$arr_cn 中文语言包;$arr_en 英文语言包; 返回值:替换后的字符串
		//当两个语言包键值不对,则返回原值不进行任何操作.
		if(count($GLOBALS[&#39;global_CN&#39;])<>count($GLOBALS[&#39;global_EN&#39;])){return $body;}
		//当用户选择英文时,则将文档中的中文根据语言包来替换为英文
		if($GLOBALS[&#39;global_lang&#39;]==&#39;EN&#39;){$body=str_ireplace($GLOBALS[&#39;global_CN&#39;],$GLOBALS[&#39;global_EN&#39;],$body);}
		return $body;
	}
	
	function AutoCache($contents){
		$contents = cn2en($contents);	//执行语言翻译
		return $contents;
	}
?>
Copy after login
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template