You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shopware Admin模块创建产品时无法传入translations多语言翻译如何解决

问题原因
  • Shopware Admin Module的实体变更生成器处理translations一对多关联字段时,会调用forEach遍历传入值,你当前为translations赋值的是键为语言ID的对象,对象本身不支持forEach方法,因此触发类型错误。
  • Admin API原生HTTP接口确实支持传入键为语言ID的翻译对象,但前端Admin Module的repository层做了封装,要求translations必须传入数组格式。
translations正确结构

translations需要为数组格式,每个数组元素为对应语言的翻译对象,必须包含languageId字段指定目标语言,再传入对应要翻译的字段即可,正确写法示例:

// 替换你原来的translations对象赋值部分即可
newProduct.translations = [
    {
        languageId: '2fbb5fe2e29a4d70aa5854ce7ce3e20b',
        name: 'Das TestProdukt ' + randomProductHash,
        description: 'deutscher Beschreibungstext'
    },
    {
        languageId: '2d7d7d698f634a04b5796e49aa846ae6',
        name: 'The testProduct ' + randomProductHash,
        description: 'english description content'
    }
];
补充说明
  • 无需手动修改context.systemLanguageId,只要每个翻译项的languageId配置正确,保存时会自动关联对应语言的翻译值。
  • 直接赋值给产品实例的基础字段(比如newProduct.name)会默认作为当前上下文语言的翻译值,优先级低于translations中对应语言的配置内容。

内容的提问来源于stack exchange,提问作者Paul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 18:54:03