Да, это можно сделать через консоль Rails. Чтобы открыть консоль Rails, выполните ./launcher enter app, затем введите rails c в приглашении, чтобы запустить консоль.
Я бы рекомендовал быть осторожным при переборе всех пользователей, пока вы не уверены, что именно произойдёт. Вот как я тестировал это для отдельного пользователя на своём сайте:
Сначала получите список локалей, используемых Discourse:
I18n.available_locales
Это выведет длинный список символов, которые Discourse использует для локалей. Например: :be, :bg, :bs_BA, :ca...
Эти символы можно использовать для установки локали. Например, чтобы изменить язык пользователя на французский:
u = User.find(1)
u.update(locale: :fr)
Если вы хотите перебрать всех пользователей, вам нужно будет найти способ получить массивы пользователей для каждой локали, чтобы можно было перебирать их. Если у вас есть списки имён пользователей для каждой локали, их можно использовать для поиска пользователей. Простой способ сделать это из консоли — преобразовать список имён пользователей в массив. Например:
fr_users = ['bob', 'sally', 'john']
fr_users.each do |username|
u = User.find_by(username: username)
u.update(locale: :fr)
end
Если вы решите попробовать это, действуйте осторожно. Обязательно создайте резервную копию базы данных вашего сайта перед внесением изменений.