Hilfe bei der Übersetzung/Display von Labels korrekt

Ich versuche, eine Theme-Komponente zu erstellen, die die Textformatierung in der Composer-Symbolleiste hervorhebt.

Ich kann es zum Laufen bringen, die Schaltflächenbeschriftung funktioniert, aber wenn sie verwendet wird, gibt sie Folgendes zurück:

[en.composer.underline_text]

nicht das erwartete

Beispieltext

Ich habe mich im Kreis gedreht, konnte aber nicht herausfinden, warum. Hat jemand eine Idee, was ich übersehe?

Danke


api-setup.js

import { apiInitializer } from "discourse/lib/api";
import I18n from "I18n";
import { iconNode } from "discourse-common/lib/icon-library";

export default apiInitializer("0.11.1", (api) => {
  const currentLocale = I18n.currentLocale();

  I18n.translations[currentLocale].js.underline_button_title = settings.underline_button;
  I18n.translations[currentLocale].js.underline_text = settings.underline_text;

  api.onToolbarCreate((toolbar) => {
    const buttons = [
      {
        id: "underline_button",
        group: "fontStyles",
        icon: "underline",
        shortcut: "U",
        title: "underline_button_title",
        perform: (e) => e.applySurround("[u]", "[/u]", "underline_text"),
      },
    ];

    buttons.forEach((button) => toolbar.addButton(button));
  });

  api.decorateCookedElement(
    async (elem, helper) => {
      const id = helper ? `post_${helper.getModel().id}` : "composer";
      applyHighlight(elem, id);
    },
    { id: "wrap-mark" }
  );
});

settings.yml

underline_button:
  default: "Underline"
  description:
    en: Enter the text for the title of the button in the composer.
underline_text:
  default: "Example Text"
  description:
    en: Enter the placeholder text that appears in the composer after the user clicks the button.

Svg_icons:
  type: 'list'
  list_type: 'compact'
  default: 'underline'
  description:
    en: "Include FontAwesome 6 icon classes for each icon used in the list."

en.yml

en:
  js:
    underline_button_title: settings.underline_button
    underline_text: settings.underline_text

Warum erstellen Sie die Texte als Einstellungen, anstatt sie direkt in en.yml einzufügen?

Ich denke, Composer Footnote Button ist ein hilfreiches Beispiel.

Danke, dass Sie mich in die richtige Richtung gewiesen haben

Es stellte sich heraus, dass
I18n.translations[currentLocale].js.underline_text = settings.underline_text;
I18n.translations[currentLocale].js.composer.underline_text = settings.underline_text;
sein sollte.