はい、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
これを試す場合は、慎重に行ってください。変更を加える前に、必ずサイトのデータベースのバックアップを作成してください。