多语言建站
语言变量、切换器、hreflang 标注,以及「地址前缀不要自己拼」这条最容易踩的规矩。
适用范围:页头页脚(切换器、hreflang)、全站地址。
语言变量
{lang.html}lang 属性的值(zh-CN / en){lang.dir}文字方向(ltr / rtl){lang.name} {lang.code}当前语言名 / 代码{lang.prefix}地址前缀(如 /en){lang.on}是否开了多语言('1'/'0'){lang.list}语言列表,配 {naicha:loop} 用页头:声明语言 + hreflang
<html lang="{lang.html}" dir="{lang.dir}">
<head>
{lang.hreflang html="1"}
</head>
⚠️ html="1" 不能省:它会输出一整串 <link rel="alternate">,
不带的话会被转义成文本显示在页面上,页头直接烂掉。
切换器
{naicha:if var="lang.on" eq="1"}
<div class="lang-switch">
{naicha:loop from="lang.list" as="L"}
<a href="{L.url}" hreflang="{L.code}"
class="{naicha:if var="L.current" eq="1"}on{/naicha:if}">{L.name}</a>
{/naicha:loop}
</div>
{/naicha:if}
⚠️ 站内地址一律用
{naicha:url} 生成,不要自己拼 /en/。
它会自动带上当前语言前缀 —— 手工再拼一次就会变成 /en/en/…,
而这种错不会报错,只是所有链接都 404。
