Skip to content

[Bug]: German translation: formatjs MISSING_VALUE error for deduplicate_key description (curly braces interpreted as variables) #147

@meiersmarkus

Description

@meiersmarkus

The problem

The German translation for the deduplicate_key field description in the integration's options and config flow contains literal curly-brace placeholders like {line}, {journeyID}, {journeyId}, {id}, {key} and {trainNumber} which are meant to be shown as example text to the user.

However, formatjs (the translation engine used by the Home Assistant frontend) interprets curly braces as variable placeholders and tries to substitute them with runtime values. Since no such variables are passed, it logs a MISSING_VALUE error in the browser/frontend log every time the options page or config flow is opened.

The integration itself works fine — this is purely a translation/rendering issue.

How to fix

The curly braces need to be escaped by wrapping them in single quotes. In the German translation file (translations/de.json), the string:

Eigener Deduplizierungs-Key (z.B. {line} - Leer für Standard: {journeyID}{journeyId}{id}{key}{trainNumber})

should become:

Eigener Deduplizierungs-Key (z.B. '{line}' - Leer für Standard: '{journeyID}{journeyId}{id}{key}{trainNumber}')

(or alternatively '{'line'}' if you want the curly braces themselves visible.)

This affects both keys:

  • component.db_infoscreen.options.step.advanced_options.data.deduplicate_key
  • component.db_infoscreen.config.step.advanced.data.deduplicate_key

Other language files (en.json etc.) should be checked for the same issue.

What version of Home Assistant Core has the issue?

2026.5.2

What type of installation are you running?

Home Assistant OS

What version of this Integration has the issue?

2026.5.1

If possible, please provide the station name you were using.

No response

What data source are you using (usually IRIS-TTS)?

IRIS-TTS

Example YAML snippet

Anything in the logs that might be useful for us?

Failed to format translation for key 'component.db_infoscreen.options.step.advanced_options.data.deduplicate_key' in language 'de'. [formatjs Error: MISSING_VALUE] The intl string context variable "line" was not provided to the string "Eigener Deduplizierungs-Key (z.B. {line} - Leer für Standard: {journeyID}{journeyId}{id}{key}{trainNumber})"
Failed to format translation for key 'component.db_infoscreen.config.step.advanced.data.deduplicate_key' in language 'de'. [formatjs Error: MISSING_VALUE] The intl string context variable "line" was not provided to the string "Eigener Deduplizierungs-Key (z.B. {line} - Leer für Standard: {journeyID}{journeyId}{id}{key}{trainNumber})"

Additional information

The integration functions normally — this is a cosmetic/translation issue only. Reference for the curly-brace escaping in ICU MessageFormat (which formatjs implements): https://formatjs.io/docs/core-concepts/icu-syntax/#quoting--escaping

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions