Personalización de texto en el plugin de autenticación fuera de after_initialize

Estoy intentando hacer que el texto del botón de autenticación para un proveedor de autenticación externo sea configurable.

Sin embargo, dado que la llamada a auth_provider debe estar fuera de after_initialize (porque debe cargarse antes de que se inicialice OmniAuth), me encuentro con algunos impedimentos.

I18n no está funcionando.
SiteSetting aún no está disponible.

Descubrí que GlobalSetting se puede usar en esta etapa, pero preferiría usar uno de los métodos anteriores, ya que estos se pueden cambiar desde la interfaz web de administración y un GlobalSetting no puede.

¿Hay algo que pueda hacer para poder usar SiteSetting o I18n aquí?

Entonces tengo

auth_provider title: 'con proveedor'

Puedo usar
auth_provider title: GlobalSetting.try(:name_of_setting)

Pero me gustaría usar
auth_provider title: SiteSetting.name_of_setting
o
auth_provider title: I18n.t('button_text_slug')

3 Me gusta

¿Alguien tiene alguna indicación sobre esto? ¿@sam? ¿@david?

1 me gusta

Si omites el parámetro title, Discourse buscará una cadena de traducción en tiempo de ejecución. Luego, las personas podrán personalizarla a través de la interfaz de usuario de ‘personalizar texto’. Ese es el enfoque que adoptamos en nuestros plugins de autenticación modernos (aunque algunos todavía usan el método antiguo por compatibilidad con versiones anteriores)

5 Me gusta

¡Eso funcionó a la perfección! ¡Gracias!

2 Me gusta