ruby-on-rails 如何在Rails中定制JSON响应的语言?

7qhs6swi  于 2023-02-20  发布在  Ruby
关注(0)|答案(2)|浏览(168)

我有一个控制器,有一个移动客户端。响应目前是英文的;然而,我怀疑是否有一种方法可以定制回应的语言。
例如:
中文:{"成功":假,"消息":"登录名或密码错误"}
西班牙语:{"成功":假,"消息":"错误与你的习惯或对比"}
当然,"消息"的内容将位于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
mzsu5hc0

mzsu5hc01#

你试过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
py49o6xq

py49o6xq2#

为Rails设置国际化(I18n)对于HTML和JSON响应应该是相同的。

相关问题