首页
wjlink
投稿
视频
直播
壁纸
更多
留言
统计
LINK
Search
1
为你的 WordPress 站点配置 Telegram Instant View
53 阅读
2
重点提示:邮箱购买和调查帐号注册要求
46 阅读
3
Paypal外区账户/国际版绑大陆手机号注册教程
36 阅读
4
宝塔面板绑定域名套上cloudflare – 实现cdn访问拯救你的IP
35 阅读
5
Python 爬取YouTube某个频道下的所有视频信息
30 阅读
技術類
自媒体
調查
问卷调查
美國站
英國站
注册丨登录
Search
标签搜索
wordpress
V2Ray
vps
苹果cms
面板
php
宝塔
ipfs
DD
脚本
语言
上传
判断
Youtube
ip
AI
1
2
3
救砖
Gengre
累计撰写
65
篇文章
累计收到
0
条评论
今日撰写
0
篇文章
️
首页
分类
技術類
自媒体
調查
问卷调查
美國站
英國站
页面
wjlink
投稿
视频
直播
壁纸
留言
统计
LINK
登录丨注册
搜索到
1
篇与
的结果
2023-10-21
typecho多语言切换完美实现方案,支持三种以上语言
注意,这个教程是不需要对typecho进行二次开发的,而且适用于国际化的企业官网开发或者是一些有多语言切换需求的其它类型网站。另外我之前也写过一个类似的文章,不过当时那种采用的简单if/else判断,可以说又别扭还麻烦,最近的一些项目刚好对这个需求进行了整体的优化,所以决定整理成文章。教程开始在这之前,肯定是需要准备好模板,或者是已经有了现成的模板。1.在模板目录创建lang.php文件,代码如下:添加语言的方式很简单,就是在数组后面继续加就行。2.编辑模板的其它文件,将$this->need改为include。如引用头部的代码:$this->need('header.php');改为include 'header.php';因为实际的测试发现,typecho自带的$this->need无法传递cookie,导致语言切换失效。3.编辑全局头部文件header.php,将第一行修改为如下代码:上方的代码引入了lang.php,并且定义了cookie存储方法,以及获取当前语言,切换语言等,其中$langid就是负责在语言数组中定位。4.调用多语言字段,这个很简单,因为在lang.php中定义了字段名称和值,所以模板中调用标签如下,以fullLang1为例至于网站的标题,关键词,简介,则是在function.php中增加如下代码:先加入这个方法//根据当前语言获取独立页面标题 function pageTitle($title,$langid){ $titleArr = explode( ",",$title); echo $titleArr[$langid]; }然后在themeFields方法中,加入如下: $SEOtitle = new Typecho_Widget_Helper_Form_Element_Text('SEOtitle', NULL, NULL, _t('SEO标题'), _t('在这里填入当前页面或文章的SEO标题,用于搜索引擎识别(如果不填则自动调用文章或独立页面标题。对于独立页面,请填入英文逗号分割的三种语言,如:中文,繁体,英语)。')); $layout->addItem($SEOtitle); $SEOkeywords = new Typecho_Widget_Helper_Form_Element_Text('SEOkeywords', NULL, NULL, _t('SEO关键字'), _t('在这里填入当前文章的SEO关键字,请用英文逗号隔开。(如果是独立页面,则不填)')); $layout->addItem($SEOkeywords); $SEOdescription = new Typecho_Widget_Helper_Form_Element_Textarea('SEOdescription', NULL, NULL, _t('SEO简介'), _t('在这里填入当前页面或文章的SEO简介(如果是独立页面,则不填)。')); $layout->addItem($SEOdescription);这里的原理就是,标题写成根据逗号分割的形式,然后再根据当前语言id调用出来,而发布文章的时候,肯定一次只能发布一种语言,但是创建单页的时候,是可以设置单页模板,调用语言标签的,这就是我的思路逻辑,当然实际情况可以自行修改。最后,在header.php中将原本的标题,关键词,简介的区域,改为如下:
2023年10月21日
5 阅读
0 评论
0 点赞