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

目录结构: //============================================ 文件内容: /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中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值