Skip to content

ValidSchema check errors on nested translation keys #722

Open
@david-w-shopify

Description

@david-w-shopify

Describe the bug
When using the locales object in a section schema, Theme Check raises an error if the translation is an object rather than a string, despite being renderable on the frontend.

Image

Image

Despite this being accepted by the platform, and renderable by Liquid, in the /themes/:id/language UI the nested keys only use the last portion of the key (desktop or mobile) in this case. So whilst I'd argue this is still a valid schema, I do think it's still worth at least warning users about to discourage a poor edit experience for merchants.

Source

// section/test-section.liquid

<p>{{ 'sections.test-section.title' | t }}</p>
<p>{{ 'sections.test-section.description.desktop' | t }}</p>
<p>{{ 'sections.test-section.description.mobile' | t }}</p>

{% schema %}
{
  "name": "Section",
  "locales": {
    "en": {
      "title": "Title",
      "description": {
        "desktop": "Lorem ipsum dolor sit amet consectetur, adipisicing elit.",
        "mobile": "Lorem ipsum dolor sit amet"
      }
    }
  }
}
{% endschema %}

Expected behaviour
No errors

Actual behaviour
The description object in the schema has a ValidSchema error

Debugging information

  • OS: Mac
  • OS Version: Sequoia 15.2
  • Theme Check Version: 3.73.2

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugSomething isn't workingSEV-3Normal Severity

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions