关于设计和omniauth的通知

时间:2015-04-11 13:44:09

标签: ruby-on-rails facebook devise

我正在组合使用Facebook omniauth来创建帐户/登录用户。登录时用户收到以下消息:

translation missing: en.devise.callbacks.user.success

我有以下回调控制器,其中消息被激活

class CallbacksController < Devise::OmniauthCallbacksController
    def facebook
        @user = User.from_omniauth(request.env["omniauth.auth"])
        if @user.persisted?
        sign_in_and_redirect @user, :event => :authentication #this will throw if @user is not activated
        set_flash_message(:notice, :success) if is_navigational_format?
        else
      session["devise.facebook_data"] = request.env["omniauth.auth"]
      redirect_to new_user_registration_url
    end
  end
end

devise.en.yml中,我添加了以下几行:

 en:
  devise:
    callbacks:
      user:
        success:"You are now logged in successfully"
        failure:"Please log in with your Facebook account"
    confirmations:
      confirmed: "Your email address has been successfully confirmed."
      send_instructions: "You will receive an email with instructions for how to confirm your email address in a few minutes."
      send_paranoid_instructions: "If your email address exists in our database, you will receive an email with instructions for how to confirm your email address in a few minutes."
    failure:
      already_authenticated: "You are already signed in."
      inactive: "Your account is not activated yet."
      invalid: "Invalid %{authentication_keys} or password."
      locked: "Your account is locked."
      last_attempt: "You have one more attempt before your account is locked."
      not_found_in_database: "Invalid %{authentication_keys} or password."
      timeout: "Your session expired. Please sign in again to continue."
      unauthenticated: "Log in with your facebook account and discover the favorite restaurants of your friends."
      authenticated: "You are logged in successfully and can now start discovering new restaurants."
      unconfirmed: "You have to confirm your email address before continuing."
    mailer:
      confirmation_instructions:
        subject: "Confirmation instructions"
      reset_password_instructions:
        subject: "Reset password instructions"
      unlock_instructions:
        subject: "Unlock instructions"
    omniauth_callbacks:
      failure: "Could not authenticate you from %{kind} because \"%{reason}\"."
      success: "Successfully authenticated from %{kind} account."
    passwords:
      no_token: "You can't access this page without coming from a password reset email. If you do come from a password reset email, please make sure you used the full URL provided."
      send_instructions: "You will receive an email with instructions on how to reset your password in a few minutes."
      send_paranoid_instructions: "If your email address exists in our database, you will receive a password recovery link at your email address in a few minutes."
      updated: "Your password has been changed successfully. You are now signed in."
      updated_not_active: "Your password has been changed successfully."
    registrations:
      destroyed: "Bye! Your account has been successfully cancelled. We hope to see you again soon."
      signed_up: "Your account has been successfully created."
      signed_up_but_inactive: "You have signed up successfully. However, we could not sign you in because your account is not yet activated."
      signed_up_but_locked: "You have signed up successfully. However, we could not sign you in because your account is locked."
      signed_up_but_unconfirmed: "A message with a confirmation link has been sent to your email address. Please follow the link to activate your account."
      update_needs_confirmation: "You updated your account successfully, but we need to verify your new email address. Please check your email and follow the confirm link to confirm your new email address."
      updated: "Your account has been updated successfully."
    sessions:
      signed_in: "You are now logged in successfully."
      signed_out: "Signed out successfully."
      already_signed_out: "Signed out successfully."
    unlocks:
      send_instructions: "You will receive an email with instructions for how to unlock your account in a few minutes."
      send_paranoid_instructions: "If your account exists, you will receive an email with instructions for how to unlock it in a few minutes."
      unlocked: "Your account has been unlocked successfully. Please sign in to continue."
  errors:
    messages:
      already_confirmed: "was already confirmed, please try signing in"
      confirmation_period_expired: "needs to be confirmed within %{period}, please request a new one"
      expired: "has expired, please request a new one"
      not_found: "not found"
      not_locked: "was not locked"
      not_saved:
        one: "1 error prohibited this %{resource} from being saved:"
        other: "%{count} errors prohibited this %{resource} from being saved:"

有谁知道如何阻止用户看到此错误消息并让我自己更改消息?提前谢谢!

2 个答案:

答案 0 :(得分:0)

  

翻译缺失:en.devise.callbacks.user.success

devise.en.yml

中添加此内容
en:
  devise:
    callbacks:
      user:
        success:"You are now logged in successfully"
        failure:"Please log in with your Facebook account"

默认情况下,Devise不会为回调成功或失败事件提供translation

设计控制器继承自ApplicationController。如果您的应用使用多个语言环境,则应确保在ApplicationController中设置I18n.locale。

答案 1 :(得分:0)

假设您在devise.en.yml下方有config/locales个地方,则需要在devise.en.yml中有以下内容:

en:  
  devise:
    callbacks:
      user:
        success: "YOUR MESSAGE"
        ...
    ...
    ...