ruby-on-rails - 具有多语言响应的 Rails Json
问题描述
我有一个具有移动客户端的控制器,当前的响应是英语,但是我质疑是否有办法自定义响应的语言。
前任:
英文:{ "success": false, "message": "您的登录名或密码错误" }
西班牙语:{ "success": false, "message": "Error con tu usuario o contraseña" }
并且诅咒“消息”的内容将位于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
推荐阅读
- jquery - 如何在多系列高图中显示工具提示中数据的多个字段
- python - 与 Python3 numpy.random.rand 计算的 C++ 中的随机数相同
- python-3.x - 分配Python3之前引用的局部变量“数据”
- python - 发送我在消息中提到的用户个人资料图片 - discord.py
- excel - VBA - 循环浏览 Onedrive 上的文件夹
- cassandra - 为什么我不能在安装了最新 Java 的 Windows 10 上运行 CassandraDB?
- c - 为什么 linux 手册页有 C 代码的描述?
- javascript - 如何编写超时的异步(基于承诺)函数?
- go - 如何配置一个简单的 Go 项目
- wordpress - 404 与 Wordpress 和 GitHub 页面