From 9c6a08cd2033d241818634e5a376c11507807049 Mon Sep 17 00:00:00 2001 From: Jack Adamson Date: Sat, 21 Mar 2026 16:18:13 -0500 Subject: [PATCH 1/4] feat: update language setting code to prioritize session language when available --- docassemble/AssemblyLine/data/questions/al_language.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docassemble/AssemblyLine/data/questions/al_language.yml b/docassemble/AssemblyLine/data/questions/al_language.yml index 79d23a8c..e5fa441b 100644 --- a/docassemble/AssemblyLine/data/questions/al_language.yml +++ b/docassemble/AssemblyLine/data/questions/al_language.yml @@ -25,7 +25,10 @@ default screen parts: initial: True code: | if enable_al_language: - set_language(al_user_language) + if session_local.attr("al_user_language"): + set_language(session_local.attr("al_user_language")) + else: + set_language(al_user_language) process_action() --- code: | From 73d3eaecfb3bcfacba45deaaef8024aef0577a0e Mon Sep 17 00:00:00 2001 From: Jack Adamson Date: Sat, 21 Mar 2026 16:24:20 -0500 Subject: [PATCH 2/4] fix: store selected language in session_local for al_change_language event --- docassemble/AssemblyLine/data/questions/al_language.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docassemble/AssemblyLine/data/questions/al_language.yml b/docassemble/AssemblyLine/data/questions/al_language.yml index e5fa441b..ed2d8fa5 100644 --- a/docassemble/AssemblyLine/data/questions/al_language.yml +++ b/docassemble/AssemblyLine/data/questions/al_language.yml @@ -41,5 +41,5 @@ code: | event: al_change_language code: | if "lang" in action_arguments(): - al_user_language = action_argument("lang") + session_local.al_user_language = action_argument("lang") set_language(al_user_language) \ No newline at end of file From 06be8fe328b7efa2537f3e92161fab770675ee48 Mon Sep 17 00:00:00 2001 From: Jack Adamson Date: Mon, 23 Mar 2026 10:09:33 -0500 Subject: [PATCH 3/4] fix: set correct language in event and update language dropdown to use session-local language setting --- docassemble/AssemblyLine/data/questions/al_language.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docassemble/AssemblyLine/data/questions/al_language.yml b/docassemble/AssemblyLine/data/questions/al_language.yml index ed2d8fa5..bd352af4 100644 --- a/docassemble/AssemblyLine/data/questions/al_language.yml +++ b/docassemble/AssemblyLine/data/questions/al_language.yml @@ -19,7 +19,7 @@ code: | default screen parts: navigation bar html: | % if enable_al_language and len(al_interview_languages) > 1: - ${ get_language_list_dropdown(al_interview_languages,current=al_user_language ) } + ${ get_language_list_dropdown(al_interview_languages, current=session_local.attr("al_user_language") or al_user_language ) } % endif --- initial: True @@ -42,4 +42,4 @@ event: al_change_language code: | if "lang" in action_arguments(): session_local.al_user_language = action_argument("lang") - set_language(al_user_language) \ No newline at end of file + set_language(session_local.al_user_language) From 9501a53f26c6d16fdd32e4dd0e9e88e1bb377f18 Mon Sep 17 00:00:00 2001 From: Quinten Steenhuis Date: Mon, 23 Mar 2026 16:32:45 -0400 Subject: [PATCH 4/4] Separate out behavior of clickable language selector commonly used on front page from drop-down language picker --- docassemble/AssemblyLine/data/questions/al_language.yml | 8 ++++++++ docassemble/AssemblyLine/language.py | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/docassemble/AssemblyLine/data/questions/al_language.yml b/docassemble/AssemblyLine/data/questions/al_language.yml index bd352af4..4c7b09a6 100644 --- a/docassemble/AssemblyLine/data/questions/al_language.yml +++ b/docassemble/AssemblyLine/data/questions/al_language.yml @@ -40,6 +40,14 @@ code: | --- event: al_change_language code: | + # Set browser-specific language for this interview session if "lang" in action_arguments(): session_local.al_user_language = action_argument("lang") set_language(session_local.al_user_language) +--- +event: al_get_language_list_change_language +code: | + # Set "global" language for this interview session instead of user-specific + if "lang" in action_arguments(): + al_user_language = action_argument("lang") + set_language(al_user_language) \ No newline at end of file diff --git a/docassemble/AssemblyLine/language.py b/docassemble/AssemblyLine/language.py index e7a94c78..611526e9 100644 --- a/docassemble/AssemblyLine/language.py +++ b/docassemble/AssemblyLine/language.py @@ -173,7 +173,7 @@ def get_language_list( current="", lang_codes: Optional[List[str]] = None, languages_path: Optional[str] = None, - event_name="al_change_language", + event_name="al_get_language_list_change_language", ) -> str: """ Given a list of language codes, returns