# Настройка текста в плагине аутентификации вне after\_initialize

**URL:** https://meta.discourse.org/t/customizing-text-in-auth-plugin-outside-of-after-initialize/217638
**Category:** Development
**Created:** [09.Февраль.2022 10:04:46 UTC](https://meta.discourse.org/t/customizing-text-in-auth-plugin-outside-of-after-initialize/217638 "2022-02-09T10:04:46Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)
#### Post date: [09.Февраль.2022 10:04:46 UTC](https://meta.discourse.org/t/customizing-text-in-auth-plugin-outside-of-after-initialize/217638/1 "2022-02-09T10:04:46Z")

</div>

Я пытаюсь сделать текст кнопки авторизации для внешнего провайдера аутентификации настраиваемым.

Однако, поскольку вызов `auth_provider` должен находиться вне блока `after_initialize` (так как он должен быть загружен до инициализации OmniAuth), я сталкиваюсь с некоторыми трудностями.

`I18n` не работает.  
`SiteSetting` ещё недоступен.

Я выяснил, что на этом этапе можно использовать `GlobalSetting`, но я предпочёл бы воспользоваться одним из вышеупомянутых методов, так как их можно изменять через веб-интерфейс администратора, в то время как `GlobalSetting` — нет.

Есть ли способ использовать `SiteSetting` или `I18n` в данном случае?

Итак, у меня есть:

`auth_provider title: 'с провайдером'`

Я _могу_ использовать:  
`auth_provider title: GlobalSetting.try(:name_of_setting)`

Но я хотел бы использовать:  
`auth_provider title: SiteSetting.name_of_setting`  
или  
`auth_provider title: I18n.t('button_text_slug')`

---

<div class="post-metadata">

### Author: ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)
#### Post date: [21.Февраль.2022 08:15:21 UTC](https://meta.discourse.org/t/customizing-text-in-auth-plugin-outside-of-after-initialize/217638/2 "2022-02-21T08:15:21Z")

</div>

У кого-нибудь есть советы по этому поводу? @sam? @david?

---

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [21.Февраль.2022 09:41:02 UTC](https://meta.discourse.org/t/customizing-text-in-auth-plugin-outside-of-after-initialize/217638/3 "2022-02-21T09:41:02Z")

</div>

Если вы не укажете параметр `title`, Discourse обратится к строке перевода во время выполнения. После этого пользователи смогут настроить её через интерфейс «Настройка текста». Именно такой подход мы используем в наших современных плагинах аутентификации (хотя некоторые из них всё ещё применяют старый метод для обратной совместимости).

> <https://github.com/discourse/discourse-apple-auth/blob/486ce761aa44ba9b56056963b693644efc07a72f/plugin.rb#L47-L48>

> <https://github.com/discourse/discourse-apple-auth/blob/486ce761aa44ba9b56056963b693644efc07a72f/config/locales/client.en.yml#L3-L8>

---

<div class="post-metadata">

### Author: ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)
#### Post date: [21.Февраль.2022 10:17:10 UTC](https://meta.discourse.org/t/customizing-text-in-auth-plugin-outside-of-after-initialize/217638/4 "2022-02-21T10:17:10Z")

</div>

Это сработало как по волшебству!! Спасибо!
