authプラグインのテキストをafter_initializeの外でカスタマイズする

外部認証プロバイダーの認証ボタンのテキストを設定可能にしようとしています。

ただし、auth_provider の呼び出しは after_initialize の外部で行う必要があります(OmniAuth が初期化される前にロードする必要があるため)、いくつかの障害に直面しています。

I18n が機能しません。
SiteSetting はまだ存在しません。

この段階では GlobalSetting が使用可能であることを発見しましたが、これらの方法(管理Webインターフェースから変更可能)のいずれかを使用したいと考えています。GlobalSetting は変更できません。

ここで SiteSetting または I18n を使用できるように何かできますか?

つまり、次のようになります。

auth_provider title: 'with provider'

次を使用することはできます。
auth_provider title: GlobalSetting.try(:name_of_setting)

しかし、次を使用したいです。
auth_provider title: SiteSetting.name_of_setting
または
auth_provider title: I18n.t('button_text_slug')

「いいね!」 3

これについて何かヒントを持っている人はいますか? @sam@david

「いいね!」 1

title パラメータを省略すると、Discourse は実行時に翻訳文字列を取得します。その後、人々は「テキストのカスタマイズ」UI を介してそれをカスタマイズできます。これは、最新の認証プラグインで採用しているアプローチです(ただし、後方互換性のために古い方法を使用しているものもあります)。

「いいね!」 5

うまくいきました!ありがとうございます!

「いいね!」 2