Hei
Ja, det beste hadde vært om språkfunksjonen slo igjennom hele veien, som du skriver. Jeg har forsøkt ulike varianter, og også hørt med kolleger her i ACOS, men vi finner ikke noen måte å få det til.
Alternativene som virker å være aktuelle, er å bruke “lang”-attributtet i URL i kombinasjon med “GET”-koden inne i skjemaet, eller å la brukeren velge språk manuelt i skjemaet.
"lang"-attributtet i URL i kombinasjon med “GET”-kode
Dersom du gjør dette, vil hver språkversjon av skjemaet få en unik URL. Hver URL vil ende på en eller annen kode som angir språk, for eksempel “?lang=3”, “?lang=en” eller “?lang=English”, for å vise skjemaet på engelsk.
Da må brukeren få tak i akkurat den URL’en som gjelder for sitt språk, og det oppstår også en mulighet for feilvalg, siden det jo ville finnes flere URL’er til det samme skjemaet å velge blant. Jeg synes det virker som en litt lite robust løsning.
La brukeren velge språk manuelt i skjemaet
Jeg har valgt å gå for denne løsningen.
Det fungerer, men er jo ikke helt brukervennlig. Bruker må jo først velge språk oppe til høyre på siden (vanlig språkvalg), som kun styrer oversettelse av ledetekstene i skjemaet. Så må bruker gjøre et nytt språkvalg i selve skjemaet for at nedtrekkslistene for fakultet og institutt skal populeres med fakultets- og instituttnavn på riktig språk. Se skjermdump under:

Til det du skriver om å velge én, felles datakilde med alle språk, eller én datakilde for hvert språk, så har jeg her valgt én felles datakilde. Men det blir smak og behag. Begge deler bør fungere. (Hvis du har en kjempestor datakilde kan du kanskje få problemer med ytelse, men vi har erfaring for at datakilder i hvert fall opp til 2 000 rader fungerer greit.)
Script brukt for å populere nedtrekksliste for "Fakultet"
var datakilde = datatabeller.Sprak__fakultet_og_insti;
var sprak = Sprak2;
var fakulteter = [];
loop (datakilde)
{
if(val[“Sprak”] == sprak)
{
fakulteter += val[“Fakultet”]
};
};
return fakulteter;
Script brukt for å populere nedtrekksliste for "Institutt"
var datakilde = datatabeller.Sprak__fakultet_og_insti;
var fakultet = Fakultet;
var institutter = [];
loop (datakilde)
{
if(val[“Fakultet”] == fakultet)
{
institutter += val[“Institutt”]
};
};
return institutter;
Slik ser datakilden min ut
