Personnalisation du texte dans le plugin d'authentification en dehors de after_initialize

Je cherche à rendre le texte du bouton d’authentification pour un fournisseur d’authentification externe configurable.

Cependant, comme l’appel auth_provider doit être en dehors de after_initialize (car il doit être chargé avant l’initialisation d’OmniAuth), je rencontre des obstacles.

I18n ne fonctionne pas.
SiteSetting n’est pas encore disponible.

J’ai découvert que GlobalSetting est utilisable à ce stade, mais je préférerais utiliser l’une des méthodes ci-dessus, car celles-ci peuvent être modifiées depuis l’interface web d’administration, ce qu’un GlobalSetting ne peut pas faire.

Y a-t-il quelque chose que je puisse faire pour pouvoir utiliser SiteSetting ou I18n ici ?

Donc, j’ai :

auth_provider title: 'avec le fournisseur'

Je peux utiliser :
auth_provider title: GlobalSetting.try(:name_of_setting)

Mais j’aimerais utiliser :
auth_provider title: SiteSetting.name_of_setting
ou
auth_provider title: I18n.t('button_text_slug')

3 « J'aime »

Quelqu’un a-t-il des conseils à ce sujet ? @sam ? @david ?

1 « J'aime »

Si vous omettez le paramètre title, Discourse recherchera une chaîne de traduction à l’exécution. Les utilisateurs pourront alors la personnaliser via l’interface utilisateur « personnaliser le texte ». C’est l’approche que nous adoptons sur nos plugins d’authentification modernes (bien que certains utilisent encore l’ancienne méthode pour la compatibilité ascendante)

5 « J'aime »

Ça a marché à merveille !! Merci !

2 « J'aime »