大猫OPC

多语言路由与 RTL 的实现

阅读 0 更新于 2026-10-27

先说结论

多语言路由的核心不是"加前缀",是让每个语种成为一个完整闭环:URL、导航、内链、sitemap 全部自洽。

路由设计

/                     默认语言首页
/products/door        默认语言内页
/ja/products/door     日语
/ru/products/door     俄语

三种实现方式:

方式 例子 评价
语言前缀 /ja/... 推荐:清晰、利于收录
子域名 ja.example.com 可行,但要独立配置证书与 GSC
参数 ?lang=ja 不推荐:爬虫视为同页

语言识别顺序

  1. URL 前缀(最高优先级)
  2. 用户手动选择(存 Cookie)
  3. 浏览器 Accept-Language(仅用于首次提示,不做强制跳转)
  4. 默认语言

不要按 IP 强制跳转——爬虫只用一个 IP,会把你的站当成单语站。

RTL 怎么处理

阿拉伯语、希伯来语、波斯语、乌尔都语是 RTL(从右到左)。

最小实现:

<html lang="ar" dir="rtl">

CSS 用逻辑属性代替方向属性:

/* 不要 */ margin-left: 16px;
/* 要 */   margin-inline-start: 16px;

这样同一套样式在 LTR / RTL 下都正确。

常见坑

  • 图标方向:返回箭头在 RTL 下要翻转
  • 数字与型号:RTL 段落里的英文型号要用 dir="ltr" 包裹
  • 表单对齐:标签与输入框的位置要跟随方向

SEO 联动

每个语种页面输出:

  • 自身 canonical
  • 全语种 hreflang(含 x-default)
  • 当前语种的 sitemap 分片

选择是:默认语言挂在根路径,其他语种加前缀。RTL 适配改了三处:图标方向(返回箭头)、表单标签对齐、表格首列。数字与型号在 RTL 段落里用 dir="ltr" 单独包裹,否则 -25℃ 会显示成 25℃-。

本页内容对你有帮助吗? 感谢反馈(演示按钮,暂未接入后端)