Shopify 多语言 JSON 文件的工作原理:
文件结构
项目里通常有几个 locale 文件:
locales/en.default.json — 英文(默认语言)
locales/zh-CN.json — 中文(如果有的话)
其他语言...
如何使用
在 Liquid 模板里通过 | t filter 调用:
{{ 'products.product.from_lowest_price_html' | t: lowest_price: money_price }}
这里的 key products.product.from_lowest_price_html 对应 JSON 文件里的嵌套路径:
{
"products": {
"product": {
"from_lowest_price_html": "from {{ lowest_price }}"
}
}
}
| t 就是 translate 的缩写,Shopify 会根据当前店铺语言去对应的 JSON 文件里取值。
带变量的翻译
翻译值里可以嵌入变量(用 {{ }} 包裹),调用时用命名参数传入:
{{ 'general.pagination.next' | t }}
{{- 结果: "Next" -}}
{{ 'products.product.from_lowest_price_html' | t: lowest_price: "$1,008.00" }}
{{- 结果: "from $1,008.00" -}}
带 HTML 的翻译
key 名里带 _html 后缀的(如 from_lowest_price_html),翻译值可以包含 HTML 标签,Shopify 会直接输出原始 HTML 而不转义:
"from_lowest_price_html": "from <strong>{{ lowest_price }}</strong>"
多语言切换
当店铺切换语言时,| t 自动去对应语言的 JSON 文件取值,找不到 key 时降级到 en.default.json。这就是为什么改硬编码文本要改 locale 文件而不是直接写死在 Liquid 里。