填写调查时获取当前语言会话

Get current language session when filling a survey

我有一个法语和英语的多语言调查,有些问题只与讲法语的人相关。问题是我不确定用户选择的语言是否提前。

目前我在导入参与者时使用 language 属性,并根据此参数过滤英文问题。

当我设置为英语的参与者最终想用法语填写问卷时效果很好:所有问题都会出现。

问题出现在相反的情况下:当我最初用法语设置的参与者决定用英语填写问卷时,法语问题并没有消失。

我想要的解决方案是检测用户在会话中选择的语言并因此隐藏问题。

我找到了这个文档:https://manual.limesurvey.org/Workarounds:_Manipulating_a_survey_at_runtime_using_Javascript#Language-specific_Javascript_code

但是 alert 函数只适用于调查的默认语言(在我的例子中只有法语)

您可以使用 LANG ,它是为所有调查添加的核心变量。 参见 https://github.com/LimeSurvey/LimeSurvey/blob/2f7345fb31768e872618831e6b7ce47c8b42b23f/application/helpers/replacements_helper.php#L690

然后 LANG == 'fr' 在仅针对法国用户的问题的相关方程中。

LANG 可以在管理中显示为红色,但始终适用于 public。