排行榜 统计
  • 建站日期:2021-05-20
  • 文章总数:144 篇
  • 评论总数:693 条
  • 分类总数:4 个
  • 最后更新:9月4日

typecho实现多语言切换,详细教程

本文阅读 3 分钟
首页 精品教程 正文
本文最后更新于2021年07月16日,已超过442天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!

很早之前演示过关于php实现网站语言切换的教程,后来开发的每个typecho的企业官网模板,其实都是参考那个已有的教程来支持的多语言切换,就是这个php设置cookies立即生效,实现网页多语言切换,非常实用,变化自由。今天偶然回头去修改一个bug的时候,发现我好像没有讲解过这个教程是怎样应用在typecho上的,所以今天准备补充一下,毕竟给自己的网站实现语言切换,也是件非常高大上的事情,而typecho官方的说明,总有些麻烦。
所以还是决定整理教程吧。

一:前期准备

1.准备好网站的中英文两个版本的界面,注意最好是共有一个css,这样可以减少很多麻烦,如果是现成的网页代码,那就看看英文这种长字符情况下会不会错误之类的,先解决好。

blockchain

2.修改typecho的模板文件,将$this->need('')这样的格式改为php的include方法。
例如:

$this->need('header.php');

改为:

<a href="?lang=en">EN</a>
<a href="?lang=cn">CN</a>

二:开始操作

1.将如下代码加入到模板的header.php文件的指定位置中。

function cookie($var, $value = '', $time = 0, $path = '', $domain = '', $s = false)
{
$_COOKIE[$var] = $value;
if (is_array($value)) {
    foreach ($value as $k => $v) {
        setcookie($var .'['.$k.']', $v, $time, $path, $domain, $s);
    }
} else {
        setcookie($var,$value, $time, $path, $domain, $s);
}
}

$cookietime= time()+3600;
$lang = "cn";
if(isset($_COOKIE["lang"])){
if(isset($_GET['lang'])){
    if(preg_match("/^[a-zA-Z\s]+$/",$_GET['lang'])){
        $lang = $_GET['lang'];
    }else{
        $lang = "cn";
    }
    cookie("lang", $lang, $cookietime,'/');
    $lang = $_COOKIE["lang"];
}else{
    $lang = $_COOKIE["lang"];
}
}else{
if(isset($_GET['lang'])){
    if(preg_match("/^[a-zA-Z\s]+$/",$_GET['lang'])){
        $lang = $_GET['lang'];
    }else{
        $lang = "cn";
    }
    cookie("lang", $lang, $cookietime,'/');
    $lang = $_COOKIE["lang"];
}
}

注意看我截图里摆的位置,就是typecho代码区域的第二行开始。

2.上一步代码加入后,$lang字段就等同于当前的语言标识,就可以开始在每个模板里面进行语言判断,比如如下代码。

<?php if($lang == "cn"){?>
<div class="header">我的网站</div>
<?php }else{?>
<div class="header">My website</div>
<?php } ?>

在网站的每个公共区域都进行这样的判断,从而实现在点击切换的时候,公共区域可以瞬间语言更替。

3.那么上面那个相互切换的超链接,也就可以这样写,来加在网站的合适位置。

<?php if($lang == "cn"){?>
<a href="?lang=en">EN</a>
<?php }else{?>
<a href="?lang=cn">CN</a>
<?php } ?>

blockchain

本文来自投稿,不代表本站立场,如若转载,请注明出处:https://www.xinr.vip/archives/55.html
php设置cookies立即生效,实现网页多语言切换!
« 上一篇 06-09
typecho文章点击插入全部附件,详细研究
下一篇 » 06-09
广告

发表评论

V注册会员 L评论等级
R3 条回复
  1. qqwwqq123VLv.2 说道:
    2021-12-15     Win 10 /    QQ浏览器

    积极攒积分

  2. 549916104VLv.4 说道:
    2021-09-05     Win 7 /    Chrome

    666

  3. happyzfwVLv.5 说道:
    2021-08-09     Win 10 /    Chrome

    感谢楼主+1

没有更多评论了

作者信息

广告

动态快讯

热门文章

最多点赞

16赞, 阅读:1.4k
15赞, 阅读:3k
13赞, 阅读:1.2k
12赞, 阅读:3.4k
广告

标签TAG

热评文章