Panel Translation - Where have I gone wrong?

I have started to add in panel translations, but they don’t seem to be working. Where might I have gone wrong?

pages/notes.yml

# title
title:
  en: Blog
  de: Bläg

# icon
icon: đź“–

# options
options:
  delete: false
  status: false
  url: false

# tabs
tabs:

  # content tab
  content:
    label:
      en: Content
      de: Inhalt
    icon: text

    columns:
      - width: 1/2
        sections:
          drafts:
            status: draft
            extends: sections/notes
            headline:
              en: Work In Progress
              de: Work In Progress

          unlisted:
            status: unlisted
            extends: sections/notes
            headline:
              en: Ready For Review
              de: Ready For Review

      - width: 1/2
        sections:
          page:
            type: fields
            fields:
              headline:
                type: text
                label:
                  en: Headline
                  de: Headline
              intro:
                type: markdown
                label:
                  en: Intro
                  de: Intro
                buttons: false
                size: small
                validate:
                  maxLength: 120
          listed:
            status: listed
            extends: sections/notes
            headline:
              en: Published
              de: Published

  # seo tab
  seo:
    extends: tabs/seo

tabs/seo.yml

label:
  en: SEO
  de: SEO
icon: search

sections:
  meta:
    type: fields
    fields:
      seoTitle:
        type: text
        label:
          en: Page Title
          de: Page Title
        validate:
          maxLength: 60
      seoDescription:
        type: text
        label:
          en: Description
          de: DescriptionZZ
        validate:
          maxLength: 150

I know almost everything is still english, but if you look inside the seo tab I have just added in a couple extra ZZ on the end of one word and translated content tab name.

Panel translations are intended to work when the user language is changed, not when you change your translation language.

That wasn’t the case in kirby 2 was it?

Yes, it was the same in Kirby 2, and is the only thing that makes sense, because the labels should be in line with the Panel language.

I’m going to high-jack this a little bit even though I got my original answer.

Are we expecting this to work?

        info:
          en: "{{ page.images.count }} image(s)"
          de: "{{ page.images.count }} image(s)"

I currently get Invalid value for "info"

# title
title:
  en: Post
  de: Post

# icon
icon: đź“ť

# options
num: date

# status
status:

  # draft
  draft:
    label:
      en: Draft
      de: Draft
    text:
      en: Post can only be seen by editors in the panel.
      de: Post can only be seen by editors in the panel.

  # review
  unlisted:
    label:
      en: In Review
      de: In Review
    text:
      en: Post is online but can only be visited with the direct URL.
      de: Post is online but can only be visited with the direct URL.

  # published
  listed:
    label:
      en: Published
      de: Published
    text:
      en: Post is published, online and can be viewed by all.
      de: Post is published, online and can be viewed by all.

# tabs
tabs:

  # content tab
  content:
    label:
      en: Content
      de: Inhalt
    icon: text

    columns:
      - width: 2/3
        fields:
          headline:
            type: text
            label:
              en: Headline
              de: Headline
          editor:
            type: markdown
            label:
              en: Post Content
              de: Post Content
            size: huge

      - width: 1/3
        fields:
          date:
            type: date
            label:
              en: Date
              de: Date
            default: now
            time: true
          author:
            type: users
            label:
              en: Author
              de: Author
          tags: true
          categories:
            type: select
            label:
              en: Categories
              de: Categories
            required: true
            options:
              3d:
                en: 3D
                de: 3D
              architecture:
                en: Architecture
                de: Architecture
              design:
                en: Design
                de: Design
              photography:
                en: Photography
                de: Photography
              web:
                en: Web
                de: Web
          cover:
            type: files
            label:
              en: Cover
              de: Cover
            min: 1
            multiple: false
            uploads: image
          gallery:
            type: pages
            label:
              en: Gallery
              de: Gallery
            empty:
              en: "No gallery selected"
              de: "No gallery selected"
            info:
              en: "{{ page.images.count }} image(s)"
              de: "{{ page.images.count }} image(s)"
            multiple: false
            query: kirby.page("photography").children
            image:
              cover: true
            help:
              en: Place the {{ gallery }} tag anywhere in your text to add the selected gallery
              de: Place the {{ gallery }} tag anywhere in your text to add the selected gallery

  # seo tab
  seo:
    extends: tabs/seo

According to the docs, info can only be a string, not an array of translations.

So isn’t the title of this section misleading?

https://getkirby.com/docs/guide/blueprints/translations#text-of-headline-info-or-help-text

I don’t even know what that example is supposed to be, a headline field? :woman_shrugging:

Looks like you can translate the text of an info field: https://getkirby.com/docs/reference/panel/sections/info#text

I would have to take a closer look, but later…

Well help text is define further up the page, so not sure why this last section also talks about help text. Headlines is also defined further up the page. It’s the fact it has the word info in it, that makes me think it could/should be able to be translated.

You can see my use case for wanting it translated - I have the word images in english inside my info string. I want the word images translated to german for example.

Don’t get too hung up on “info field” it’s not an info field. It’s an option within a type of pages. It works as a single string, but the moment I try to translate it, it says invalid value. Even if I try to change this info option into a type of info and use the text option it won’t work.

Anyway, it is currently not supported for some properties. For example, if I add these lines in the pages field, it works:

       'info' => function($info = null) {
            return I18n::translate($info, $info);
        }

Have to look if we already have an issue anywhere, otherwise, this should be on the list (or you would have to create some custom fields that override the default ones).