Rails Json 多语言响应

Rails Json with Multilanguage response

我有一个带有移动客户端的控制器,目前的响应是英文的,但是我想知道是否有办法自定义响应的语言。

例如:

English: { "success": false, "message": "Error with your login or password" }

Spanish:{ "success": false, "message": "Error con tu usuario o contraseña" }

当然 "message" 的内容将位于 rails 具有的语言配置文件中:

en.yml

es.yml

这是生成响应的函数。

def invalid_login_attempt
    warden.custom_failure!
    render :json => { :success => false, :message=> "Error with your login or password" }, :status => 401
  end

谢谢。

你试过了吗I18n.t

render :json => { :success => false, :message=> I18n.t('your_key') }, :status => 401

并且您可以根据某些条件为 ApplicationController 中的每个请求设置语言环境,例如

before_action :set_locale

def set_locale
  I18n.locale = request.headers["X-Lang"] || I18n.default_locale
end

为 Rails 设置国际化 (I18n) 应该与 HTML 和 JSON 响应几乎相同。看看 official tutorial.