Devise - Как перевести автоматически сгенерированные ссылки
Я заканчиваю различные локализации моего сайта, и у меня возникла небольшая проблема с шаблонами электронной почты Devise.
Например, в электронном письме с подтверждением я перевел все это, но ссылка для подтверждения учетной записи автоматически создается с использованием этого фрагмента:
<%= link_to t('devise.mailer.confirmation_instructions.confirm_link'), confirmation_url(@resource, :confirmation_token => @token) %>
Эта автоматически сгенерированная ссылка всегда указывает на мою веб-версию.com, и я хочу, чтобы она была условной в зависимости от домена (.com /.es). Когда ссылка не генерируется автоматически, я могу сделать это, используя:
if request.host.split('.').last == "com"
или же
if request.host.split('.').last == "es"
Но в этом случае я не знаю, как я могу это сделать.
Любое предложение?
Благодарю.
1 ответ
Вы можете добавить параметр:host к вашему параметру translation_url(@resource,: translation_token => @token) и найти правильный хост в таблице перевода:
confirmation_url(@resource, :confirmation_token => @token, host: t('host'))
В вашем файле yaml вы "переводите" правильный хост для языка пользователя, например
en:
host: 'www.example.com'