我有一个带有移动客户端的Controller,响应当前为英语,但是我质疑是否有一种自定义响应语言的方法。
例如:
英语:{“成功”:否,“消息”:“您的登录名或 密码”}
西班牙文:{“成功”:false,“消息”:“错误的用法 对比”“}
并且诅咒“消息”的内容将位于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
谢谢。
答案 0 :(得分:1)
您尝试过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
答案 1 :(得分:1)
为Rails设置国际化(I18n)对于HTML和JSON响应应该几乎相同。看看official tutorial。