如何在Shopify API的translatableResources中获取其他语言内容?
问题
我正在使用Shopify API进行翻译开发,已将英语设为默认语言,且添加并发布了葡萄牙语(尚未添加任何翻译内容)。但调用GraphQL的translateResources查询时,仅返回英语的可翻译内容。
我使用Postman发起请求,查询语句如下:
query getTranslatableResources { translatableResource(resourceId: "gid://shopify/Product/7276207800399") { resourceId translatableContent { key value translatableContentDigest: digest locale } } }
返回的translatableContent内容如下:
"translatableContent": [ { "key": "title", "value": "Cartridge Medium Taper Gauge 10 Tight Liner 5 needles (More than 10 month validity)", "translatableContentDigest": "a73b0b1ad55fc98ab46fb1d41dcb10f7877747c4dc8ed5798129cce398cf0f30", "locale": "en" }, { "key": "body_html", "value": "test", "translatableContentDigest": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08", "locale": "en" }, { "key": "handle", "value": "needle-3", "translatableContentDigest": "deff7e9e149736d4e3ab2e3a1e8268c2015a9a4f54f42b67224dbd0e0f73b91c", "locale": "en" }, { "key": "product_type", "value": "", "translatableContentDigest": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "locale": "en" } ]
我已确认葡萄牙语已添加并发布,请问遗漏了什么配置?
解决方案
- 显式指定目标locale参数:默认情况下
translatableResource查询仅返回默认语言内容,需在查询中添加目标语言的locale参数(如pt或pt-BR),修改后的查询示例:
query getTranslatableResources { translatableResource(resourceId: "gid://shopify/Product/7276207800399", locale: "pt") { resourceId translatableContent { key value translatableContentDigest: digest locale } } }
即便未添加翻译内容,查询也会返回对应locale的条目,此时value会与默认语言一致,locale字段将显示为葡萄牙语代码。
确认产品的多语言支持状态:进入Shopify后台的产品编辑页面,检查是否为该产品启用了葡萄牙语翻译选项,部分店铺或主题需要单独开启特定资源的多语言支持。
验证API权限:确保你的API访问令牌拥有
read_translations权限,缺少该权限会导致无法获取非默认语言的翻译资源信息。
内容的提问来源于Stack Exchange,提问作者Sergio
相关产品推荐
相关产品推荐

