🌐 多语言建站
最后更新:2026-10-02
⚠️ 版本要求(务必先看)
多语言功能需 专业版及以上授权。基础版客户即使按本章步骤添加了多语言站点,前台也不会输出语言切换按钮与 hreflang 标签(系统自动降级为单语言)。
判定依据是「是否购买过专业版 / 企业版」,与服务是否在有效期内无关——客户买了专业版后即使未续费,多语言站点依然正常。详见 🔑 授权与邮件服务。
📋 多语言相关字段
{{.LangSwitcher}}多语言切换器数据(数组)NEW数组
{{.SiteCode}}当前站点代码(如 zh、en)文本
{{.SiteLanguage}}站点语言(如 zh-CN、en)文本
{{.SiteID}}当前站点ID数字
每条 LangSwitcher 对象含 Code(站点代码)、Name(显示名称)、URL(跳转地址)、IsCurrent(是否当前)。
🔗 hreflang 互链标签(SEO 用)
{{.LangSwitcher}} 是给访客看的「语言切换按钮」数据;{{.HrefLangs}} 则是专门给搜索引擎看的 <link rel="alternate" hreflang> 互链数据,两者用途不同,但常配合使用。系统会为每个启用的站点自动生成对应语言版本的绝对 URL,并附带一条 x-default(指向默认站点同路径)。
{{.HrefLangs}}hreflang 互链数组(仅多站点时非空;单站点为 nil)NEW数组
每件 HrefLangs 元素含两个字段:Lang(语言代码,如 zh-CN / en / x-default)与 Href(该语言版本的绝对 URL)。
<!-- 放在 <head> 的 canonical 之后 -->
{{range .HrefLangs}}<link rel="alternate" hreflang="{{.Lang}}" href="{{.Href}}">
{{end}}
⚠️ 只有多于一个启用站点时 {{.HrefLangs}} 才非空,单语言站点无需输出(搜索引擎只看 canonical 即可)。输出顺序不影响 SEO 效果。
💻 使用示例
<!-- 语言切换按钮 -->
{{if .LangSwitcher}}
<div class="lang-switch">
{{range .LangSwitcher}}
<a href="{{.URL}}" class="lang-item{{if .IsCurrent}} active{{end}}">{{if .Name}}{{.Name}}{{else}}{{.Code}}{{end}}</a>
{{end}}
</div>
{{end}}
<!-- 判断当前语言 -->
{{if eq .SiteCode "en"}}
<span>当前为英文站</span>
{{else}}
<span>当前为中文站</span>
{{end}}
<!-- 多语言头部(导航 + 切换) -->
<nav>
{{range .Navigations}}
{{if eq .Location "header"}}
<!-- 导航高亮见 05-navigation.html:用 CurrentNav 映射首段路径加 is-current -->
<a href="{{.Link}}" target="{{.Target}}" class="nav-link {{if eq .CurrentNav "news"}}is-current{{end}}">{{.Name}}</a>
{{end}}
{{end}}
</nav>
{{if .LangSwitcher}}
<div class="lang-switch">
{{range .LangSwitcher}}<a href="{{.URL}}" class="lang-item{{if .IsCurrent}} active{{end}}">{{.Name}}</a>{{end}}
</div>
{{end}}
⚙️ 多语言建站步骤
- 后台「站点管理 → 添加站点」
- 填写:名称(如 英文站)、站点代码(en)、模板目录(en)、语言(en)
- 保存后系统自动在
templates/下创建en/目录(复制index/骨架) - 切换到英文站后台,开始录入英文内容(按 site_id 自动隔离)
- 前台
/en/访问英文站,/zh/或/访问中文站 - 头部加入
{{range .LangSwitcher}}代码,自动显示切换按钮
Gitl.cn云建站 SaaS