Personalizando texto no plugin de autenticação fora do after_initialize

Estou tentando tornar o texto do botão de autenticação para um provedor de autenticação externo configurável.

No entanto, como a chamada auth_provider deve estar fora de after_initialize (porque ela deve ser carregada antes que o OmniAuth seja inicializado), estou encontrando alguns impedimentos.

I18n não está funcionando.
SiteSetting ainda não está disponível.

Descobri que GlobalSetting pode ser usado neste estágio, mas eu prefiro usar um dos métodos acima, pois eles podem ser alterados a partir da interface web de administração e um GlobalSetting não pode.

Há algo que eu possa fazer para poder usar SiteSetting ou I18n aqui?

Então eu tenho

auth_provider title: 'com provedor'

Eu posso usar
auth_provider title: GlobalSetting.try(:name_of_setting)

Mas eu gostaria de usar
auth_provider title: SiteSetting.name_of_setting
ou
auth_provider title: I18n.t('button_text_slug')

3 curtidas

Alguém tem alguma dica sobre isso? @sam? @david?

1 curtida

Se você omitir o parâmetro title, o Discourse buscará uma string de tradução em tempo de execução. Assim, as pessoas podem personalizá-la através da interface “personalizar texto”. Essa é a abordagem que adotamos em nossos plugins de autenticação modernos (embora alguns ainda usem o método antigo para compatibilidade retroativa)

5 curtidas

Funcionou perfeitamente!! Obrigado!

2 curtidas