php 网站语言切换,php 多语言切换

news/2024/5/20 23:01:39/文章来源:https://blog.csdn.net/weixin_39628070/article/details/115573813

目录结构: //============================================ 文件内容: /include/language.php Java代码 ?php $languages=array(); $languages[ 'zh-cn' ][ name ]= china ; $languages[ zh-cn ][ image ]= flag1.jpg ; $languages[ en ][ name ]= english

目录结构:

test.jsp?url=http%3A%2F%2Fconkeyn.iteye.com%2Fupload%2Fattachment%2F79376%2F45169238-a671-365b-beff-30607e727a95.jpg&refer=http%3A%2F%2Fblog.csdn.net%2Fu012377333%2Farticle%2Fdetails%2F43835075

//============================================

文件内容:

/include/language.php

Java代码

test.jsp?url=http%3A%2F%2Fconkeyn.iteye.com%2Fimages%2Ficon_star.png&refer=http%3A%2F%2Fblog.csdn.net%2Fu012377333%2Farticle%2Fdetails%2F43835075

$languages = array ();

$languages ['zh-cn'] ["name"] = "china";

$languages ["zh-cn"] ["image"] = "flag1.jpg";

$languages ["en"] ["name"] = "english";

$languages ["en"] ["image"] = "flag2.jpg";

class Language {

public $language_area;

public $language_country;

public $language_dir;

public $dir;

public function __construct() {

$this->dir = str_replace ( "\\", "/", dirname ( __FILE__ ) ) . "/language/";

$this->initDefaultLanguage ();

if (empty ( $this->language_country ) && ! empty ( $this->language_area )) {

$this->language_country = substr ( $this->language_area, 0, strpos ( $this->language_area, "-" ) );

}

$this->initLanguageDir ();

}

/*

取得语言文件的绝对路径

*/

public function getFileDir($file) {

$dir = $this->dir;

if (file_exists ( $this->getLanguageDir () . $file )) {

return $this->getLanguageDir () . $file;

} else if (file_exists ( $dir . $this->language_area . "/" . $file )) {

return $dir . $this->language_area . "/" . $file;

} else if (file_exists ( $dir . $this->language_country . "/" . $file )) {

return $dir . $this->language_country . "/" . $file;

} else if (file_exists ( $dir . "en/" . $file )) {

return $dir . "en/" . $file;

} else {

return false;

}

}

/*

取得当前使用语言的文件夹

*/

public function getLanguageDir() {

return $this->language_dir;

}

/*

初始化语言文件夹

*/

private function initLanguageDir() {

$dir = $this->dir;

if (file_exists ( $dir . $this->language_area ) && ! empty ( $this->language_area )) {

$this->language_dir = $dir . $this->language_area . "/";

} else if (file_exists ( $dir . $this->language_country ) && ! empty ( $this->language_country )) {

$this->language_dir = $dir . $this->language_country . "/";

} else {

$this->language_dir = $dir . "en/";

}

}

/*

初始化默认语言

*/

public function initDefaultLanguage() {

if ($this->getCookieLanguage ()) {

return;

}

$language = $_SERVER ['HTTP_ACCEPT_LANGUAGE'];

preg_match_all ( "/[\w-]+/", $language, $language );

$this->language_area = $language [0] [0];

@$this->language_country = $language [0] [1];

$this->setCookieLanguage ();

}

/*

从cookie中导入语言种类

*/

public function getCookieLanguage() {

if (! @empty ( $_COOKIE ['lang'] )) {

$language = $_COOKIE ['lang'];

if (strpos ( $language, "-" )) {

$this->language_area = $language;

} else {

$this->language_country = $language;

}

return true;

}

return false;

}

/*

把当前的语言种类放到cookie中

*/

public function setCookieLanguage($lang = "") {

if (empty ( $lang )) {

$lang = $this->language_area;

}

if (empty ( $lang )) {

$lang = $this->language_country;

}

if (empty ( $lang )) {

return false;

}

setcookie ( "lang", $lang, time () + 365 * 24 * 3600, "/", $this->getDomain () );

return true;

}

public function getDomain() {

if (empty ( $this->domain )) {

$domain = $_SERVER ['SERVER_NAME'];

if (strcasecmp ( $domain, "localhost" ) === 0) {

$this->domain = $domain;

return $this->domain;

}

if (preg_match ( "/^(\d+\.){3}\d+$/", $domain, $domain_temp )) {

$this->domain = $domain_temp [0];

return $this->domain;

}

preg_match_all ( "/\w+\.\w+$/", $domain, $domain );

$this->domain = $domain [0] [0];

return $this->domain;

} else {

return $this->domain;

}

}

}

?>

/include/language/zh-cn/language.php

Java代码

test.jsp?url=http%3A%2F%2Fconkeyn.iteye.com%2Fimages%2Ficon_star.png&refer=http%3A%2F%2Fblog.csdn.net%2Fu012377333%2Farticle%2Fdetails%2F43835075

$language_message["china"]="中文";

$language_message["english"]="英文";

?>

/include/language/en/language.php

Java代码

test.jsp?url=http%3A%2F%2Fconkeyn.iteye.com%2Fimages%2Ficon_star.png&refer=http%3A%2F%2Fblog.csdn.net%2Fu012377333%2Farticle%2Fdetails%2F43835075

$language_message["china"]="china";

$language_message["english"]="english";

?>

/chang_language.php

Java代码

test.jsp?url=http%3A%2F%2Fconkeyn.iteye.com%2Fimages%2Ficon_star.png&refer=http%3A%2F%2Fblog.csdn.net%2Fu012377333%2Farticle%2Fdetails%2F43835075

include_once 'header.php';

include_once 'header.tpl';

$language_file=$lang->getFileDir("language.php");

include($language_file);

?>

foreach($languages as $key=>$value)

{

echo '

echo '>',$language_message[$languages[$key]["name"]],'

span>,%24languages%5B%24key%5D%5B"],'" border="0"/>';

}

?>

/header.php

Java代码

test.jsp?url=http%3A%2F%2Fconkeyn.iteye.com%2Fimages%2Ficon_star.png&refer=http%3A%2F%2Fblog.csdn.net%2Fu012377333%2Farticle%2Fdetails%2F43835075

include_once (dirname ( __FILE__ ) . "/include/language.php");

$lang = new Language ( );

//print_r($lang->language_area);

$current_language = getCurrentLanguage ();

//print_r($current_language);

function getCurrentLanguage() {

global $lang, $languages;

if (array_key_exists ( $lang->language_area, $languages )) {

return $lang->language_area;

} else if (array_key_exists ( $lang->language_country, $languages )) {

return $lang->language_country;

} else {

return "en";

}

}

?>

/header.tpl

Html代码

test.jsp?url=http%3A%2F%2Fconkeyn.iteye.com%2Fimages%2Ficon_star.png&refer=http%3A%2F%2Fblog.csdn.net%2Fu012377333%2Farticle%2Fdetails%2F43835075

span>>

多语言测试title>

head>

/test_language.php

Java代码

test.jsp?url=http%3A%2F%2Fconkeyn.iteye.com%2Fimages%2Ficon_star.png&refer=http%3A%2F%2Fblog.csdn.net%2Fu012377333%2Farticle%2Fdetails%2F43835075

include_once 'header.php';

include_once 'header.tpl';

$language_file = $lang->getFileDir ( "speak_language.php" );

require_once ($language_file);

print_r($speak_language_message);

?>

测试地址为:http://127.0.0.1/multiple_language/chang_language.php

localhost不能使用,正式域名及IP地址可以使用。

article_wechat2021.jpg?1111

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_727205.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

突发:全球最大的同性交友网站挂了,修复长达四个小时的背后是一个悲伤的故事...

loonggg读完需要3分钟速读仅需 1 分钟今天下午,作为全球最大的同性交友网站:GitHub,突然挂了,一直在这两张图中间来回切换。再刷新一下,从 500 变成了小马,你还别说,我仔细看这个小马&#xff0…

2017年最受欢迎的10个编程挑战网站

来源:CSDN大数据 作者:Daniel Borowski 本文长度为1704字,建议阅读4分钟 如果你想不断地提高自己的编程技能,那么不断尝试去解决那些编程中的难题,这是一个非常不错的途径。本文为你列举了10个编程挑战网站&#xff0c…

透过日播放量超过6亿的《延禧攻略》,看2018视频网站格局

作者介绍徐麟目前就职于上海唯品会产品技术中心,哥大统计数据狗,从事数据挖掘&分析工作,喜欢用R&Python玩一些不一样的数据文章来源数据森麟如需转载,请联系原作者授权前言随着《延禧攻略》的播出,魏璎珞、富察…

看看黑客是如何攻破一个网站的?网友:原来...

点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐]点击领取全栈资料:全栈资料通过本文你将了解黑客常用的入手思路和技术手法,适合热爱网络信息安全的新手朋友了解学习。本文将从最开始的信息收集开始讲述黑客是如何一步步的攻破你的网站和服务器的。…

有哪些网站,一旦知道,你就离不开了?

loonggg读完需要5分钟速读仅需 2 分钟大家好,我是你们的校长。感觉好久没有给大家分享工具类的好东西了,今天给大家分享几个好东西。作为程序员,一个技术人员,我从工作的角度和职场的角度给大家推荐几个非常不错的网站吧&#xff…

添加javascript_使用JavaScript将搜索添加到您的网站

添加javascriptStatic website generators like Gatsby and Jekyll are popular because they allow the creation of complex, templated pages that can be hosted anywhere. But the awesome simplicity of website generators is also limiting. Search is particularly ha…

不吸吮的网站建设者

我从不追求真棒 (I Never Pursue My Awesome Ideas) Im constantly struck with ideas for new web projects. Unfortunately, I rarely act on them because I have too little time and theyre too much of a hassle to see through. 我一直对新的Web项目的想法感到惊讶。 不…

GitHub Star 10K,让你的网站更炫酷的开源库

【公众号回复 “1024”,免费领取程序员赚钱实操经验】大家好,我是你们的章鱼猫。现在不少网站都支持了骨架屏,能够在网页数据加载前,展示固定的布局,能够减少用户在进入网页时感受到白屏的不适感。今天要给大家推荐一个…

bootstrap网站框架_启动框架:网站构建器,Bootstrap主题等

bootstrap网站框架One conclusion that Ive come to when evaluating my skills is that Im not a designer. Each time I redesign this blog, I identify a few sites I like and then meld them together. Of course that means I end up with UI components that dont lo…

牛逼啊,这两个程序员生财案例网站

loonggg读完需要4分钟速读仅需 2 分钟今天是日更生财技能的第二天。我决定每天写一篇生财感悟类的文章,带领大家每天「钱近」一小步。今天我读「生财日历」上 2 号的内容,上面讲的是一个变现超过 100 万美元的国外网课销售漏斗模型的案例。大致内容讲的就…

相亲网站比自己优秀的男人太多?单身程序员惊现神操作!

戳蓝字“CSDN云计算”关注我们哦!话说,今年还有不到一个月就要过去了,作为一个单身狗的小编,看着大街上一个个成双成对的情侣,不由感到悲从心来,只能妄图从新闻中寻找一丝安慰。结果你别说,我最…

SEO核心技术纯白帽快速排名方法

我相信很多朋友都知道SEO快速排名,现在流行的快速排名都是众人皆知的黑帽SEO技术,但是却唯独不知道纯白帽也可以快速排名。但是我估计大家都看到过很多新站在短短数月内就上了首页,权重从0升到3,这难道是黑帽吗,不是的…

聊聊云计算:为什么构建网站时常会用到负载均衡

戳蓝字“CSDN云计算”关注我们哦!作者:疯子程序员来源:https://blog.csdn.net/qq_40196321/article/details/85075746 负载均衡可以将客户端请求分摊到多个操作单元上进行处理硬件负载均衡负载均衡有很多种不同的实现方式,总的来说…

java比递归查询更快方法_使网站更小更快的5种方法

java比递归查询更快方法Confession: Id say once a week I genuinely wish I was a kid who spent his work day cutting grass and doing landscaping. Why? Because at the end of the day, they are able to say "the grass is cut, the job is complete." A…

干货 | NLP、知识图谱教程、书籍、网站、工具...(附资源链接)

来源:人工智能头条本文多资源,建议阅读收藏。本文整理了关于 NLP 与知识图谱的众多参考资源,涵盖内容与形式非常丰富。[ 导读 ]本文作者一年前整理了这份关于 NLP 与知识图谱的参考资源,涵盖内容与形式也是非常丰富,接…

透过日播放量超过6亿的《延禧攻略》,看2018视频网站格局(附代码)

来源:数据森麟本文约2000字,建议阅读6分钟。本文将对比各大视频网站2018年截止到8月18号的电视剧和综艺节目的播放情况,并对数据进行分析。[ 导读 ]随着《延禧攻略》的播出,魏璎珞、富察皇后等各位后宫小主的命运时刻牵动着各位观…

git 添加徽章_将Google + 1徽章添加到您的网站

git 添加徽章Googles new Google service is taking the development world by storm, and why shouldnt it? Its minimalistic UI, use of cutting edge web techniques, and overall usability make it Google one of the more impressive web applications Ive seen in qu…

理工男女的福利,一个神奇的计算机资源网站!(英文技术书籍、教材、课程讲义...)...

授权自AI科技大本营(ID:rgznai100)本文多图,建议阅读5分钟。本文为你分享一个以提高理工男女英语和专业知识水平为宗旨的网站。隆重给大家推荐一个神奇的网站。传送门:http://www.freetechbooks.com/这是一个专为理工男…

谈谈网站性能技术

前端性能优化技术http://hudeyong926.iteye.com/blog/933548 一、前端负载均衡 通过DNS的负载均衡器(一般在路由器上根据路由的负载重定向)可以把用户的访问均匀地分散在多个Web服务器上。这样可以减少Web服务器的请求负载。因为http的请求都是短作业,所以&#xf…

知名软件 XMind 竟然请求其它网站发布其盗版软件

大家好,我是校长。「盗版营销」这件事,我感觉在我们软件界,互联网界应该算是见怪不怪了吧?毕竟,这是常事。今天在网上看到一条消息,就是非常出名的思维导图软件 XMind 给其他站长发消息,请求他们…