Shopware 6自定义CMS Block左侧文本槽多语言翻译实现问询
Shopware自定义CMS Block文本槽多语言实现方案
你已经基于官方教程开发了自定义CMS Block,要实现名为left的文本槽多语言翻译、前台随用户语言展示对应内容,完全有可行方案,具体步骤如下:
确认Slot类型的多语言兼容性
你当前配置的left: 'text'类型Slot本身就支持多语言,Shopware后台默认允许针对不同语言配置Slot内容,只需在编辑CMS页面时切换顶部的语言标签页,即可为left槽设置对应语言的文本。调整前台模板,优先渲染多语言内容
修改你的Twig模板,通过Shopware的translated字段获取当前语言的译文,确保前台正确展示:{% block sw_cms_block_my_image_text_reversed %} <div class="sw-cms-block-my-image-text-reversed"> {% set leftSlotElement = element.slots.get('left') %} {# 优先使用当前语言的译文,无译文则回退默认文本 #} {% if leftSlotElement.data.translated.text %} {{ leftSlotElement.data.translated.text|raw }} {% else %} {{ leftSlotElement.data.text|raw }} {% endif %} <slot name="right">{% block sw_cms_block_my_image_text_reversed_slot_right %}{% endblock %}</slot> </div> {% endblock %}这里通过
element.slots.get('left')拿到左侧文本槽的元素实例,translated.text会自动匹配当前用户的语言环境,返回对应的翻译内容。验证后台配置与数据存储
在后台CMS编辑器中,切换不同语言标签页为left槽设置不同文本后,Shopware会自动将多语言内容存储到cms_element表的config字段中,以多语言结构保存,无需额外配置数据库表。
内容的提问来源于stack exchange,提问作者Claudiu Stoica
相关产品推荐
相关产品推荐

