0 votes
in SoSci Survey (English) by s243157 (150 points)

Thank you for your response!

I have one question remaining: if I intend to make a monolingual split survey, how can I do that?

The sampling material would be too large to include in one survey (40 questions with 3 or 4 sentences each) and I have decided to split the survey in half, so either group of respondents would only have to answer 20 questions. A further problem is that in addition to these split surveys, translated versions have already been created, although here I am not sure how this would influence the above problem, if it does at all.

Is it possible to add another "translated version" but in the same language to the project? Or should I be starting a new project to do this?

Here I have given the link of the project with some of the surveys ready - the one missing is the second Danish survey which ideally should appear next to these versions.

https://www.soscisurvey.de/da2023survey/?act=auyNda6ERYiGCQQxUcTOfgeq

Thank you for your help in advance.

1 Answer

0 votes
by SoSci Survey (304k points)

One option would be to randomly draw 20 out of the 40 questions.

Please follow the manual Rotate Questions, but draw only 20 instead of all questions per interview (setting in the random generator).

This should work well with multilingual survey projects. However, if you need to make sure that each question is asked euqally often in each language, then you would have to go a step further: Randomization per Block

by s243157 (150 points)
Okay, so as I understand, I would have either of the two options as detailed above, and the former is seemingly a bit easier.

I have inserted the filter the following way:

if (getLanguage() == 'dan') {
$questions = valueList('SP81', NULL, 'label');
 
foreach ($questions as $idList) {
  $questions = explode('+', $idList);
  question($questions);
}}

One thing that seems to be missing is the instruction which concerns the other language versions; in the user guide I see that when applying /if/ it should be followed by /else/ with the instruction for the other versions.

What should be inserted here?
by SoSci Survey (304k points)
Your IF filter is a bit incomplete. First, you need to embed the random generator there via question. And then you need the ELSE part:

if (getLanguage() == 'dan') {
  question('SP81');
  $questions = valueList('SP81', NULL, 'label');
} else {
  question('SP82');
  $questions = valueList('SP82', NULL, 'label');
}

I guessed the ID of the other random generator. And make sure to drag neither SP81 nor the other one into the page.
by s243157 (150 points)
Okay, this is what the PHP code looks like now at this point:

if (getLanguage() == 'dan') {
  question('SP81');
  $questions = valueList('SP81', NULL, 'label');
 
foreach ($questions as $idList) {
  $questions = explode('+', $idList);
  question($questions);}
} else {
  question('SP82');
  $questions = valueList('SP82', NULL, 'label');
}

I have pulled out the two random generators from the page (but they are still shown to be on page no. 3 - I assume because of being mentioned in the PHP code.)

The Danish survey is functioning without any issues but the other versions do not show anything neither an error message nor questions. The debug information in the Swedish version for example shows this [Content]    Create question SP81
So the code should be correct as it chooses questions from SP82, the second random generator. Which should consequently mean that I made a mistake in what I put in SP82.

This is the content of the second random generator:

01 = SP03+SP23
02 = SP04+SP39
03 = SP05+SP32
04 = SP06+SP35
05 = SP07+SP40
06 = SP09+SP24
07 = SP10+SP27
08 = SP11+SP36
09 = SP12+SP29
10 = SP13+SP37
11 = SP14+SP26
12 = SP15+SP28
13 = SP16+SP33
14 = SP08+SP30
15 = SP17+SP25
16 = SP18+SP31
17 = SP19+SP34
18 = SP20+SP41
19 = SP21+SP38
20 = SP22+SP42
21 = SP43+SP44
22 = SP45+SP46
23 = SP47+SP48
24 = SP49+SP50
25 = SP51+SP52

Codes drawn per interview: 25

Type of drawing: equally distributed (draw without returning)
by SoSci Survey (304k points)
Well, no ... the else belongs to the IF, not to the foreach.

if (getLanguage() == 'dan') {
  question('SP81');
  $questions = valueList('SP81', NULL, 'label');
} else {
  question('SP82');
  $questions = valueList('SP82', NULL, 'label');
}
 
foreach ($questions as $idList) {
  $questions = explode('+', $idList);
  question($questions);
}
by s243157 (150 points)
All is working! And I think I get it now - a huge thank you for bearing with me, I am beyond grateful!

Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

...