Skip to content

Commit 8f70377

Browse files
author
Rensvm
authored
Fix: Becoming member on english browser defaults language setting to english (#1203)
* fix: english wordlid page if browser not dutch, if signing up on english page the user settings will be set to english
1 parent c125c04 commit 8f70377

1 file changed

Lines changed: 18 additions & 0 deletions

File tree

app/controllers/public/home_controller.rb

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#:nodoc:
22
class Public::HomeController < PublicController
33
layout false
4+
before_action :redirect_to_locale, only: [:index]
45

56
def index
67
@member = Member.new
@@ -13,6 +14,21 @@ def index
1314
@participate = @activities.map(&:id)
1415
end
1516

17+
def redirect_to_locale
18+
# Check if the URL already contains a locale
19+
return if params[:l].in?(%w[nl en])
20+
21+
# Get the language from the Accept-Language header
22+
locale = request.env['HTTP_ACCEPT_LANGUAGE'].to_s.start_with?('nl') ? 'nl' : 'en'
23+
24+
# Redirect to /?l=nl/... or /?l=en/...
25+
new_params = request.query_parameters.merge(l: locale)
26+
redirect_to(
27+
url_for(params: new_params),
28+
allow_other_host: false
29+
)
30+
end
31+
1632
def create
1733
@member = Member.new(public_post_params.except(:participant_attributes))
1834
@member.require_student_id = true
@@ -25,6 +41,8 @@ def create
2541
if flash[:error].nil? && @member.save
2642
# create account and send welcome email
2743
user = User.create_on_member_enrollment!(@member)
44+
user.language = { 'nl' => 0, 'en' => 1 }[params[:l]] if params[:l].present?
45+
user.save
2846
user.resend_confirmation!(:activation_instructions)
2947

3048
impressionist(@member)

0 commit comments

Comments
 (0)