Rails Json с многоязычным откликом - PullRequest
0 голосов
/ 28 мая 2019

У меня есть контроллер с мобильным клиентом, ответ в настоящее время на английском языке, но я не знаю, есть ли способ настроить язык ответа.

Ex:

Английский: {"success": false, "message": "Ошибка при входе в систему или пароль "}

Испанский: {"success": false, "message": "Error con tu usuario o контрасена "}

и, конечно же, содержимое "сообщения" будет находиться в файле конфигурации языка, который имеет 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

Спасибо.

Ответы [ 2 ]

2 голосов
/ 28 мая 2019

Вы пробовали 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 голос
/ 28 мая 2019

Настройка интернационализации (I18n) для Rails должна быть примерно одинаковой для ответов HTML и JSON.Взгляните на официальный учебник .

...