国际化
基于路由前缀的多语言支持。
Raypx 包含两套独立的 i18n 系统:一套用于应用(@raypx/i18n),一套用于文档(Fumadocs 内置)。两者都使用基于 URL 路径前缀的语言检测策略。
支持的语言
| 代码 | 语言 | 时区 |
|---|---|---|
en-US | English | America/New_York |
zh-CN | 简体中文 | Asia/Shanghai |
en-US 为默认语言。
应用 i18n
应用 i18n 由 @raypx/i18n 包驱动,基于 use-intl 构建。
- 路由前缀:所有页面 URL 以语言代码开头,如
/zh-CN/docs - 中间件:服务端中间件自动检测语言并处理重定向
- 消息文件:位于
packages/i18n/src/messages/目录
详细文档:
文档 i18n
文档站点使用 Fumadocs 的内置 i18n 功能,文档内容按语言目录组织:
content/docs/
en-US/ # 英文文档
zh-CN/ # 中文文档Locale 路由结构
应用和文档都使用相同的 URL 模式:
/{locale}/{path}示例:
| URL | 语言 | 路径 |
|---|---|---|
/en-US/docs | English | /docs |
/zh-CN/docs | 简体中文 | /docs |
/en-US/dashboard | English | /dashboard |
/zh-CN/dashboard | 简体中文 | /dashboard |
检测优先级
语言检测按以下优先级进行:
- URL 路径前缀 ——
/zh-CN/...直接指定语言 - Cookie ——
raypx-localeCookie 存储用户偏好 - 默认语言 —— 回退到
en-US
Cookie
语言偏好存储在 raypx-locale Cookie 中:
| 属性 | 值 |
|---|---|
| 名称 | raypx-locale |
| 路径 | / |
| 最大年龄 | 365 天 |
| SameSite | Lax |
当用户访问带有语言前缀的页面时,中间件会自动设置此 Cookie。