跳到主要内容
博客
2025年12月 1 分钟阅读

做三语站点而不抓狂

关于基于 URL 的语言、编译期文案,以及为什么 document 的 lang 属性不可省略。

i18nSvelteKit

i18n 最大的错误是把语言当作运行时状态。把它放进 URL。每种语言都有一个真实、可抓取、可分享的地址,hreflang 也不再靠猜。

编译期的文案目录会把「缺翻译」变成构建错误,而不是线上的空白。一个带类型的文案函数长这样:

import * as m from '$lib/paraglide/messages';

// 在构建时求值——缺 key 会让构建失败,而不是页面空白
const title = m.site_title();
const read = m.min_read({ minutes: 6 });

还有——给每个页面设置 html 的 lang 属性。屏幕阅读器据此选择语音,搜索引擎据此信任你。一个声明为英文的日文页面就是 bug,哪怕每个可见的词都正确。

评论

正在加载评论…