1. 主页
  2. 文档
  3. 易优CMS
  4. 多语言常见问题

多语言常见问题

一、如何搭建多语言站?

多语言/区域建站用于使用同一个后台建立多语言网站。

1、使用步骤

1)在后台"系统管理>数据区域"添加相应的区域,具体参考默认区域;

2)将多语言的模板放入模板目录,不同语言的模板均放在template目录下;

3)在后台选择语言切换到不同语言,分别设置:站点信息(注意选择模板)、公司信息、栏目信息、添加内容等;

4)在不同模板中添加多语言切换按钮。

2、多语言切换按钮

<a href="{pboot:lgpath}&lg=cn">切换中文</a> //标签解析出来的真实链接是/?p=/Do/area&lg=cn

<a href="{pboot:lgpath}&lg=en">切换英文</a> //标签解析出来的真实链接是/?p=/Do/area&lg=en

注意:PB2.0开始lg前面用&符号,之前老版本用?符号,更多语言,类似方式添加即可。语言切换也可以直接用真实链接访问切换。

二、如何判断当前语言并高亮?

在按钮上添加判断语句:{pboot:if('{pboot:sitelanguage}'=='cn')}class="active"{/pboot:if}

三、如何修改页面中的提示语句?

1、通用的面包屑提示文字

{pboot:position indextext='Home'} //首页文本改成了Home

参数说明:

separator=* 分隔符,非必填,默认为>>

separatoricon=* 分割图标,非必填,如使用图标字体:separatoricon='fa fa-angle-double-right'

indextext=* 首页文本,非必填,默认为"首页"

indexicon=* 首页图标,非必填,如使用图标字体:indexicon='fa fa-home'

参考文档:https://www.pbootcms.com/docs/215.html 找到【7、面包屑标签】

2、详情上下页提示文字

{content:precontent notext='no more'}

{content:nextcontent notext='no more'}

//设置“没有了”文本,设置参数时如果带空格,需要用单引号

在原有的基础上增加了notext='no more',单引号内的文字可自定义成需要的语言文字。

参考文档:https://www.pbootcms.com/docs/223.html 页面中搜索“没有了”

3、留言提示文字

在不二开程序的基础上只能通过前端把留言设置成ajax提交,通过js来提示相关文字。

4、搜索结果页面包屑、标题文字

默认在英文站会出现“Home>搜索”,可以参考以下文章二开来实现实现成“Home>Search”

PbootCMS英文站搜索结果页面包屑和标题翻译

四、如何从分享的链接进去直接显示对应语言版本?

PbootCMS多语言是通过点击带参数链接来变换cookies中lg的值控制,变换后参数消失,链接还是默认的,不管哪种语言都是同一条链接,因此分享的时候就不支持点击进去对应显示想要的语言版本网站内容。那么有什么办法解决,这边建议的方法是绑定二级域名或二开实现目录名方式切换。

1、通过绑定二级域名

通过绑定二级域名来固定访问的语言版本,如en.baidu.com。

2、直接访问带参数地址

尾巴添加语言切换参数/?p=/Do/area&lg=en

栗子:www.test.com/?p=/Do/area&lg=en

3、修改检测cookies代码和调整其他语言栏目url命名规则,此方法由群友马克提供,有需要的可以自行修改测试,这边不建议使用。

①修改common里的检测cookies代码,文件位置:/apps/common/HomeController.php

找到第64行代码

// 未设置语言时使用默认语言

if (! isset($_COOKIE['lg'])) {

cookie('lg', get_default_lg());

}

替换成

$en = strpos($_GET['p'],'-en');

$ps = strpos($_GET['p'],'-sp');

setcookie();

if($en !== false){

cookie('lg', 'en');

}else if($ps !== false){

cookie('lg', 'sp');

}else{

cookie('lg','cn');

}

②修改其他语言的栏目url,改成 xxx-en别名(尾巴增加对应语言版本的标识),其他语言参考操作。

4、二开程序使其支持目录名方式切换

多语言目录名切换方式如www.test.com/en/ www.test.com/jp/

此二开功能介绍页面 -> PbootCMS多语言站目录名访问

五、PbootCMS多语言网站收录问题

如果使用默认的多语言切换,那么始终看到的是一个同样的链接,这种情况一般来说中文版不影响收录,英文版可能无法收录。

目前的做法,如果考虑多语言收录问题,建议绑定二级域名匹配每种语言。

六、留言表单验证码错误提示如何改成英文?

在ajax提交表单失败后的代码里添加:

if (response.data=="验证码错误!") {

alert("Verification code error!");

} else {

alert(response.data);

}

参考图(具体可按需使用):

PbootCMS多语言建站教程-多站点建站教程,PbootCMS2 0开始lg前面用&符号,之前老版本用?符号,多语言 区域建站,标签作用:用于使用同一个后台建立多国语言网站或多区域网站,多语言站点通过cookie进行判断,如果未设置其他语言单独绑定域名,那么切换多语言后页面链接是相同的

PbootCMS2.0网站建设开始lg前面用&符号,之前老版本用?符号

多语言/区域建站

标签作用:用于使用同一个后台建立多国语言网站或多区域网站

注:多语言站点通过cookie进行判断,如果未设置其他语言单独绑定域名,那么切换多语言后页面链接是相同的。

区域建站的意思是如果想一个域名实现不同网站功能,又不想通过不同后台进行控制时设置的,例如:一个后台下既想放置博客,又想放置网址导航,又想放置收藏的手册(三者不希望通过导航关联),如果用子目录或者其他方式显然更加麻烦,因为那样需要登录不同的后台,所以通过多区域建站可以很好的解决这一问题,直接在后台切换区域添加不同区域文章即可。

总结:多语言/区域建站对于公司来说多语言更适用;对于个人站长来说多区域建站更适用,可以在同一后台切换区域添加自己的不同类型网站文章,较为方便

添加多语言步骤

1、在后台【系统管理】-【数据区域】添加相应的区域,具体参考默认区域

注:区域名称自行设置;

区域编码设置英文字母(判断多语言时需要用到);

如果不区分域名就不需要绑定域名(即都在同一域名下不需要添加,如果需要英文网站显示en.域名.com,则需要添加绑定对应的域名);

当需要更换以英文或者其他语言为主时才需要修改是否默认这一选项,一般是无需更改的(更改后第一次进入就会显示设置的默认语言)。

2、将多语言的模板放入模板目录,不同的语言均放在template下

3、站点信息和公司信息在切换多语言后台后需要重新填写

4、模板间添加多语言切换按钮

多语言切换按钮

切换中文
切换英文

注意:PB2.0开始lg前面用&符号,之前老版本用?符号

判断当前语言并高亮: {pboot:if(‘{pboot:sitelanguage}’==’cn’)}class=”active”{/pboot:if}

这篇文章对您有用吗?

我们要如何帮助您?