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

0 votes

Hallo,

ich habe folgenden Code:

if ((value('A011') == 1) or (value('A012_01') == 1)) {  // 1 Kind
  replace('%fn_kind_hh%', 'Wie alt ist das Kind?');
} else {
  replace('%fn_kind_hh%', 'Wie alt sind die Kinder?');
}

Jetzt würde ich gerne die Platzhalter in einer anderen Sprache befüllen, wenn eine andere Sprache wie deutsch ausgewählt ist. Meine Plan war der folgende:

if ( isset( $_POST['SubmitLangGer'] ) ) { 
if ((value('A011') == 1) or (value('A012_01') == 1)) {  // 1 Kind
  replace('%fn_kind_hh%', 'Wie alt ist das Kind?');
} else {
  replace('%fn_kind_hh%', 'Wie alt sind die Kinder?');
}
}

Und diesen Code dann für die verschiedenen Sprachen multiplizieren.
Aber: Post wird von SoSci nicht verwendet, und ich kenne leider keine Alternative zum überprüfen.

Gibt es einen anderen Weg das zu verwirklichen?

Beste Grüße

in SoSci Survey (dt.) by s109993 (1.7k points)

1 Answer

0 votes
 
Best answer

Post wird von SoSci nicht verwendet, und ich kenne leider keine Alternative zum überprüfen

Mit $_POST hätten Sie auch keine Freude, denn der Wert liegt (wenn überhaupt) nur einmalig nach dem Kick auf "Weiter" vor. Nicht aber, wenn die Seite z.B. aufgrund einer fehlenden Frage erneut geladen wird oder wenn der Teilnehmer den Zurück-Knopf verwendet.

Prinzipiell hätten sie mit readGET() Zugriff auf die rohen Formulardaten - aber wie gesagt: Ich rate davon ab, damit zu arbeiten.

Ich gehe einmal davon aus, dass Sie ein mehrsprachiges Befragungsprojekt angelegt habe und dass Sie für die Sprachauswahl die Standard-Knöpfe von SoSci Survey verwenden. Dann können Sie die aktive Sprache einfach mit getLanguage() abfragen.

$oneChild = ((value('A011') == 1) or (value('A012_01') == 1));
if (getLanguage() == 'ger') { 
  if ($oneChild) {
    replace('%fn_kind_hh%', 'Wie alt ist das Kind?');
  } else {
    replace('%fn_kind_hh%', 'Wie alt sind die Kinder?');
  }
} else {
  if ($oneChild) {
    replace('%fn_kind_hh%', 'How old is your child?');
  } else {
    replace('%fn_kind_hh%', 'How old are your children?');
  }
}

Mit Arrays könnte man das noch ein wenig hübscher programmieren (v.a., wenn es mehr als 2 Sprachen sind), aber ich denke, das würde hier jetzt in die falsche Richtung führen.

by SoSci Survey (85.2k points)
selected by s109993
...