Anpassen von Text im Auth-Plugin außerhalb von after_initialize

Ich versuche, den Text der Authentifizierungsschaltfläche für einen externen Authentifizierungsanbieter konfigurierbar zu machen.

Da der auth_provider-Aufruf jedoch außerhalb von after_initialize erfolgen muss (da er geladen werden muss, bevor OmniAuth initialisiert wird), stoße ich auf einige Hindernisse.

I18n funktioniert nicht.
SiteSetting ist noch nicht vorhanden.

Ich habe herausgefunden, dass GlobalSetting in diesem Stadium verwendbar ist, aber ich würde es vorziehen, eine der oben genannten Methoden zu verwenden, da diese von der Admin-Weboberfläche aus geändert werden können und eine GlobalSetting nicht.

Gibt es etwas, das ich tun kann, um SiteSetting oder I18n hier verwenden zu können?

Also habe ich

auth_provider title: 'mit Anbieter'

Ich kann verwenden
auth_provider title: GlobalSetting.try(:name_of_setting)

Aber ich würde gerne verwenden
auth_provider title: SiteSetting.name_of_setting
oder
auth_provider title: I18n.t('button_text_slug')

3 „Gefällt mir“

Hat jemand Tipps dazu? @sam? @david?

1 „Gefällt mir“

Wenn Sie den title-Parameter weglassen, greift Discourse zur Laufzeit auf eine Übersetzungszeichenfolge zu. Dann können Benutzer sie über die Benutzeroberfläche “Text anpassen” anpassen. Diesen Ansatz verfolgen wir bei unseren modernen Authentifizierungs-Plugins (obwohl einige aus Gründen der Abwärtskompatibilität immer noch die alte Methode verwenden)

5 „Gefällt mir“

Das hat wie am Schnürchen geklappt!! Danke!

2 „Gefällt mir“