Personalizzazione del testo nel plugin di autenticazione al di fuori di after_initialize

Sto cercando di rendere configurabile il testo del pulsante di autenticazione per un provider di autenticazione esterno.

Tuttavia, poiché la chiamata auth_provider deve essere esterna a after_initialize (perché deve essere caricata prima che OmniAuth venga inizializzato), sto riscontrando alcuni impedimenti.

I18n non funziona.
SiteSetting non è ancora disponibile.

Ho scoperto che GlobalSetting è utilizzabile in questa fase, ma preferirei utilizzare uno dei metodi sopra indicati, poiché questi possono essere modificati dall’interfaccia web di amministrazione, cosa che un GlobalSetting non può fare.

C’è qualcosa che posso fare per poter utilizzare SiteSetting o I18n qui?

Quindi ho

auth_provider title: 'con provider'

Posso usare
auth_provider title: GlobalSetting.try(:name_of_setting)

Ma vorrei usare
auth_provider title: SiteSetting.name_of_setting
o
auth_provider title: I18n.t('button_text_slug')

3 Mi Piace

Qualcuno ha qualche suggerimento a riguardo? @sam? @david?

1 Mi Piace

Se ometti il parametro title, Discourse cercherà una stringa di traduzione al runtime. Le persone potranno quindi personalizzarla tramite l’interfaccia utente “personalizza testo”. Questo è l’approccio che adottiamo sui nostri moderni plugin di autenticazione (anche se alcuni utilizzano ancora il vecchio metodo per compatibilità con le versioni precedenti)

5 Mi Piace

Ha funzionato a meraviglia!! Grazie!

2 Mi Piace