问题背景
在开发一个中英双语网站时,我们发现尽管其他部分已经成功适配了双语,但分页条的文本始终显示为中文。为了解决这一问题,我们需要对 DedeCMS 的核心文件进行一些简单的修改。解决方案
以下是具体的操作步骤:1. 修改核心文件
打开 `include/arc.listview.class.php` 文件(以 DedeCMS 5.6 版本为例),按照以下步骤进行修改:
// 在约第 29 行找到以下代码
var $remoteDir;
// 在其下方新增一行
var $pagelang;
// 在约第 528 行找到以下代码
$list_len = trim($ctag->GetAtt("listsize"));
// 在其下方新增一行
$pagelang = trim($ctag->GetAtt("pagelang"));
// 在约第 531 行找到以下代码
if($list_len=="") {
$list_len = 3;
}
// 在其下方新增代码
if($pagelang=="") {
$pagelang = 'cn';
}
// 修改约第 545 行的代码
$this->dtp->Assign($tagid,$this->GetPageListST($list_len,$listitem));
// 更改为以下代码
$this->dtp->Assign($tagid,$this->GetPageListST($list_len,$listitem,$pagelang));
接下来,需要对分页条的文本进行多语言支持。例如,将以下代码:
return "共 1 页 ".$this->TotalResult." 条记录 \\r\\n";
修改为:
if($pagelang=='cn') {
return "共 1 页 ".$this->TotalResult." 条记录 \\r\\n";
} else {
return "Total 1 Page ".$this->TotalResult." Records \\r\\n";
}
2. 修改模板文件
打开列表模板页面,例如 `list_article_en.htm`(这是英文版的列表页面模板)。将以下代码:
{dede:pagelist listsize='5'/}
修改为:
{dede:pagelist pagelang='en' listsize='5'/}