So zeigen Sie site_texts-Strings für Themes und Theme-Komponenten an?

Ich habe „Tocic Share“ erstellt, möchte aber das Standardbeispiel js.share.facebook verwenden. Laut diesem Artikel habe ich es jedoch falsch geschrieben, sodass es nicht angezeigt wird.

Könntest du mir zeigen, wie man es richtig anzeigt, anstatt neue Wörter zum Thema hinzuzufügen?

Ich habe versucht: I18n.t(themePrefix("my_translation_key"))

Fügen Sie dies an den Anfang Ihrer Komponente ein

const I18n = require("I18n").default;

Anschließend können Sie bei Bedarf den Standardtext von Discourse wie folgt verwenden:

I18n.t("ÜBERSetzungSSCHLÜSSEL")

Zum Beispiel wird dies

h('span', 'Teilen über Facebook')

zu

h("span", I18n.t("share.facebook"))

Vielen Dank. :smile:

Ohne diese Zeile funktioniert die i18n-Funktionalität einwandfrei. Andernfalls tritt ein Fehler auf: „Das Modul I18n konnte nicht gefunden werden".

Das hängt von Ihrer Discourse-Version ab. I18n wurde früher global definiert, sodass Sie es bei älteren Discourse-Versionen nicht importieren mussten.

Wenn Ihre Site auf einem aktuellen Commit wie im ursprünglichen Beitrag liegt, müssen Sie es importieren/anfordern.

Ist es automatisch oder hast du 352 geänderte Dateien manuell bearbeitet? :roll_eyes:

@wyudong Ich habe h("span", I18n.t("share.facebook")) verwendet. Es ist nicht nötig, const I18n = require ("I18n"). default; hinzuzufügen.

Ich bin mir nicht sicher, ob ich das verstehe. Könntest du bitte näher erläutern, was du damit meinst?

Ich frage mich, ob man jede Datei einzeln ändern und dann committen muss. Oder ob es automatisch geht (mehrere Dateien auf einmal ändern)?
Diese Frage ist nicht wichtig. Wenn es nur mit persönlichem Wissen geht, werde ich vielleicht jede Datei einzeln ändern, und das wird den ganzen Tag dauern :frowning:
GIT, ich habe nicht viel Erfahrung.

Danke für die Klärung :+1:

Ja, das manuelle Aktualisieren von über 300 Dateien würde sehr viel Zeit in Anspruch nehmen. Die Dateien wurden mit einem Skript aktualisiert, das Mark erstellt hat.