Sukka 写前端、网络和基础设施时,习惯先把边界和代价摊开。把「记录「Suka」文档主题的多语言的坑 | Sukka's Blog」整理成可落地的中文笔记:问题在哪、默认做法会踩什么坑、该怎么选。原站导航和广告已去掉。

问题从哪来

Hexo 本身支持同时生成不同语言版本的站点(可见 Hexo 官方文档中关于 国际化(i18n) 的配置样例),这样我只要做好文档主题的 i18n,然后只需要一套主题就可以生成不同语言的文档。

所以我选择把侧边栏里的条目写死在 layout 里,然后侧边栏里条目的文字通过 Hexo 的 i18n 解决。简体中文的文档就放在根目录下面,然后把英文版本的文档放在 en 子目录下面,只要每篇文档的 markdown 文件带上一个 permalink 的 Front-Matter 就行。

常见做法为什么不够

文档的渲染以后的 HTML 文件目录结构大概像这样: . ├── config | └── index.html ├── dev | └── index.html ├── en | ├── dev | | └── index.html | ├── config | | └── index.html | └── index.html └──index.html 然后就侧边栏文档目录的问题了。由于有文档的内容是放在文档的根目录的,而且中文和英语下的路径不一样,所以不能简单的使用相对路径问题解决。

当然可以写两套主题、甚至生成两次文档组合多语言也是可以的,但是这样不仅不方便、过于 Dirty,而且不适合交给持续集成来做。 我刚开始想法是,写两个侧边栏的组件分别用于中文和英文,通过判断当前页面语言决定用哪一个渲染,后来回过头来想,如果都能判断当前页面的语言了,为啥不直接通过判断决定输出路径呢?

更稳的做法

不论怎么样,至少需要一个能判断当前页面语言的 API。在 Hexo 文档里翻来覆去去找有没有判断当前页面是以何种语言渲染的 API,但是没有找到;如果直接调用 config.language 会直接返回站点配置文件中设置的数组。

好吧,官方没有给这个 API,我就去 Hexo 的官方文档其它地方看看,找找有没有类似的能用的 API。然后看到一个 page.path ,可以输出当前页面相对于 config.root 的相对路径,霎时灵光一闪——我只需要判断当前页面的路径中有没有 /en/ ,就可以判断当前页面的语言是不是英语了。

落地检查

const en = page . path . indexOf ( 'en' ) == – 1 ? '' : 'en/' ; 然后为了像 url_for() 一样自动生成相对路径,我定义了一个 i18n_url_for() 的 function,调用这个 function 就可以生成路径,最终代码就像这样:

<% const en = page . path . indexOf ( 'en' ) == – 1 ? '' : 'en/' ; function i18n_url_for ( uri ) { return config . root + en + uri } %> 用同样的思路,可以解决文档的语言切换问题。 首先还是定义一个 en 常量用来判断,然后通过判断 en 的值是 false 还是 true 决定是输出 跳转到简体中文 还是输出 跳转到英语 的按钮。至于按钮的 href 属性,也依赖 page.path 的方法,通过 replace() 方法替换 URL 中的字符串添加、去掉语言路径前缀。

落地时建议先做的 5 件事

  1. 用自己的流量和设备测,不要只抄厂商推荐最小配置。
  2. DNS、CDN、代理分流先画清 Fake IP 和 Real IP 的边界。
  3. 前端性能看 CLS、白屏和重复渲染,而不是只看打包体积。
  4. 基础设施变更走 Git,能复现、能回滚。
  5. 结论写成可检查的清单:接口、超时、失败样本、回滚版本。

和智能体产品怎么接

龙虾PRO做 OpenClaw 落地时,网络、DNS 和前端性能笔记最有用的是「边界」:哪一层该加速、哪一层不该假装智能。数字员工调用外部能力前,先把超时和失败路径写死。

本文侧重全链路风控方法论。落地时请用自身业务单据做回放验证,不要把示例阈值直接当生产策略。 相关:风控体检 · 方案资源

常见问题 FAQ

什么是AI智能系统?

「AI智能系统」可概括为:Hexo 本身支持同时生成不同语言版本的站点(可见 Hexo 官方文档中关于 国际化(i18n) 的配置样例),这样我只要做好文档主题的 i18n,然后只需要一套主题就可以生成不同语言的文档。 本文从定义、方法与实践要点展开说明。

为什么要关注AI智能系统?

关注AI智能系统,是因为它直接影响效率、风险与可复制性。文中指出:Hexo 本身支持同时生成不同语言版本的站点(可见 Hexo 官方文档中关于 国际化(i18n) 的配置样例),这样我只要做好文档主题的 i18n,然后只需要一套主题就可以生成不同语言的文档。

如何落地AI智能系统?有哪些关键步骤?

建议按以下路径推进AI智能系统:1) 用自己的流量和设备测,不要只抄厂商推荐最小配置。;2) DNS、CDN、代理分流先画清 Fake IP 和 Real IP 的边界。;3) 前端性能看 CLS、白屏和重复渲染,而不是只看打包体积。;4) 基础设施变更走 Git,能复现、能回滚。;5) 结论写成可检查的清单:接口、超时、失败样本、回滚版本。。细节见正文对应章节。

AI智能系统适合哪些人或团队?

AI智能系统更适合:产品/技术负责人、运营与增长团队、需要落地智能体或自动化的中小团队、关注「AI智能系统」方向的读者。若你只需要单次聊天式问答,可先读概念;若要上生产,请重点看步骤、权限与风控相关段落。

关于「问题从哪来」,本文给出了什么结论?

在「问题从哪来」部分,要点是:后把英文版本的文档放在 en 子目录下面,只要每篇文档的 markdown 文件带上一个 permalink 的 Front-Matter 就行。 常见做法为什么不够 文档的渲染以后的 HTML 文件目录结构大概像这样: . ├── config | └── index.html ├── dev | └── index.html ├── en | ├── dev | | └── index.html | ├── config | | └

关于「常见做法为什么不够」,本文给出了什么结论?

在「常见做法为什么不够」部分,要点是:e 会直接返回站点配置文件中设置的数组。 好吧,官方没有给这个 API,我就去 Hexo 的官方文档其它地方看看,找找有没有类似的能用的 API。然后看到一个 page.path ,可以输出当前页面相对于 config.root 的相对路径,霎时灵光一闪——我只需要判断当前页面的路径中有没有 /en/ ,就可以判断当前页面的语言是不是英语了。 落地检查 const en = page . path . indexOf ( 'en' )