Magento 2 多语言通常通过 Store View 实现。同一个 Website 和 Store 下创建多个 Store View,可以共享商品与库存,同时分别维护商品名称、CMS 内容、Locale 和界面翻译。
1. 规划层级
- Website:价格、客户账户和结账范围的重要边界。
- Store:通常对应根分类。
- Store View:最适合语言和展示差异。
如果只是中文和英文版本,不需要为了语言新建两个 Website。错误的层级会增加价格、库存和客户数据维护成本。
2. 创建 Store View
在后台进入商店管理,选择现有 Store,新建中文或英文 Store View,设置唯一 Code、名称、排序和启用状态。上线前可保持禁用,内容准备完成后再开启。
3. 设置 Locale
切换配置范围到目标 Store View,在常规区域设置 Locale、时区、重量单位和周起始日。取消“使用网站”继承后再保存。
bin/magento config:show general/locale/code
bin/magento cache:clean config translate
CLI 默认输出可能是默认范围值,核验时应同时在后台确认具体 Store View 范围。
4. 安装语言包
语言包必须与 Magento 版本和目标 Locale 匹配。安装后执行依赖安装和静态内容部署:
bin/magento setup:static-content:deploy -f zh_Hans_CN en_US
bin/magento cache:clean translate full_page
生产模式应通过正式发布流程执行,不能在访问高峰随意清理静态目录。
5. 配置 URL
可通过 URL 中的 Store Code 区分语言,也可以给每个 Store View 配置独立域名。选择后要保持一致,并正确设置 Base URL、Cookie 域和 HTTPS。避免同一内容同时通过多个可索引 URL 访问。
6. 翻译内容
商品名称、描述、分类名称和 CMS 页面要切换到对应 Store View 后填写。先取消继承,再保存翻译值。URL Key、Meta Title 和 Meta Description 也应按语言单独优化。
7. 验证
- 切换语言后页面和 URL 正确。
- 购物车在语言切换后按预期保留。
- 货币、价格和税额没有被语言设置意外改变。
- 邮件模板使用订单所属 Store View 的语言。
- 搜索、Sitemap 和 canonical 指向正确语言版本。
多语言上线前应逐个 Store View 检查首页、分类、商品、结账、客户账户和邮件,不能只验证首页翻译。

