苹果CMS 如何做多语言站点?
学完这篇你能得到一个可落地的判断:苹果CMS 的多语言站点该从哪一层下手、每一步改什么文件、以及怎么验证改对了——但先说清楚一点,本文不会编造你后台里并不存在的菜单,凡是各版本差异大的地方我会直接标出来让你自己核对。
第一步:先接受一个前提——苹果CMS 没有"一键多语言"开关
这一步要做的,是放弃"进后台勾一个语言包就完事"的期待,把多语言拆成三层来看:URL 层(同一个内容有没有两个地址)、模板层(页面上写死的中文文案)、数据层(分类名、视频标题、简介这些存在数据库里的内容)。想清楚这三层,后面的活才有章法。
注意:如果你在后台翻遍菜单也找不到"多语言设置",这是正常的,不是你装错了版本。苹果CMS 各分支(maccms10 及各种二开版)后台界面差异很大,所以本文只给方法,不给你一个不存在的确切菜单路径。
第二步:选语言方案,这一步决定后面所有工作量
这一步要得到的是一个明确结论:中文放主站根目录,其他语言放哪里。三种常见做法:
- 子目录:中文
example.com/,英文example.com/en/。同一域名,权重集中,配置最简单,推荐首选。 - 子域名:
en.example.com。适合两种语言内容完全独立运营的情况,但要处理跨域和权重分散。 - 独立站群:两套苹果CMS 各跑一个。只有在你连数据库都要分开维护时才用,成本最高。
注意:不要用 Cookie 或浏览器语言自动跳转当作唯一的语言入口。爬虫抓不到跳转,用户也拿不到可分享的链接。正确做法是页面上有一个固定的语言切换链接,跳到另一个 URL。
第三步:URL 层打通,让 /en/ 能正常打开
这一步做完,你能在浏览器里访问 站点/en/ 并看到页面。以子目录方案为例,Nginx 里加一段转发(伪静态规则要按你站点现有规则改写,下面是示意,不是照抄就能跑):
location /en/ {
try_files $uri $uri/ /index.php?lang=en&$query_string;
}
改完执行 nginx -t 检查语法,再 nginx -s reload。
注意:改配置前先备份原文件。如果你的站点本来伪静态就正常工作,最容易踩的坑是把原有规则顺序打乱,导致整个站 404。
第四步:模板层,把写死的中文换成语言变量
这一步做完,页面上的"首页""最新""分类"等固定文案会跟着语言变。做法是在模板目录(maccms10 一般在 /template/ 下,具体目录名看你服务器实际情况)新建一个语言文件:
<?php
// lang/en.php
return [
'home' => 'Home',
'latest' => 'Latest',
];
然后在模板里把原来直接写的中文,替换成读取这个数组的输出。逐页替换,别一次性全站改,改一页刷新看一页。
注意:模板里往往有几十处硬编码中文,用编辑器全局搜索中文关键词逐个替换,比靠肉眼找快得多。
第五步:数据层,让分类名和标题也有英文
这一步做完,列表页的分类名称、视频标题才是真正的英文内容。两种做法:给分类表加一列英文名字段(如 type_name_en),或者单独建一张对照表存"内容ID + 语言 + 文案"。改数据库结构之前,务必用面板导出一次 SQL 备份。
注意:视频标题和简介这类内容,机器翻译直接进库会伤收录质量,重要页面建议人工过一遍。
第六步:SEO 收尾,告诉搜索引擎这是两个语言版本
在页面 <head> 里加上:
<link rel="alternate" hreflang="zh-CN" href="https://example.com/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/" />
再检查 robots.txt 没有误封 /en/,并让 sitemap 同时包含两个语言版本。
注意:多语言主要对 Google、Bing 有效,百度对 hreflang 的识别有限。做英文站的话,推广重心直接放 Google 和 Bing,别在百度上耗时间。
第七步:验收
curl -I https://你的域名/en/返回 200,不是 302 跳回首页。- 页面源码里能看到英文文案和三条 hreflang。
- Google Search Console 的"国际定位"报告里能看到两个语言版本被分别识别。
小结
- 苹果CMS 多语言没有现成开关,要分 URL、模板、数据三层做。
- 优先选子目录方案:权重集中、配置简单。
- 语言切换必须是固定链接,不能只靠 Cookie 自动跳转。
- 模板文案用语言包文件替换,数据内容单独加字段或建对照表。
- 改数据库前先备份,改 Nginx 前先备份并
nginx -t验证。 - 收尾三件事:hreflang、sitemap、robots,一样不能少。
原文链接:https://www.gj0.com/thread-11.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。