Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Thomas Schulte am 13.08.04 - 12:56:00
-
Domino/Notes hat uns ja in den letzten Versionen mit vielen schönen neuen Sachen beglückt. Unter anderem auch mit diesem "@languagePreference" Befehl in der Formelsprache.
Hat jemand von euch schon einmal versucht den Befehl in einer View zu verwenden? Also in einer Spalte einfach
@languagePreference([Region])
eingetragen?
Das funktioniert ohne Probleme. Er zeigt mir die gewählte Sprache an.
Will man jetzt aber abhängig von diesem Befehl z.B. Sprachspezifischen Content darstellen dann kommt dabei nichts raus, weil:
DasistdieBenutzersprache := @LanguagePreference([Region]);
DasistdieBenutzersprache;
in der Spalte in der es eingetragen ist keinen Wert anzeigt.
Das bedeutet natürlich das diese Formel hier:
IntKeylist := @Explode(fldSaveKeywordswithLanguage;"~~");
intUserslanguage := @languagePreference([Region]);
@For(i := 1;i<=@Count(intKeyList);i:=i+1;
@If(@Word(intkeylist;"##";2) = intUserslanguage;
resultlist :=resultlist:@Word(intkeylist;"##";1);
"")
);
@Explode(@Implode(resultlist;"~");"~")
auch keine Werte ausgibt, weil er ja keinen Vergleichswert hat. Trägt man z.B. "de" oder "en" direkt ein funktioniert dieses Konstrukt, was aber in diesem Zusammenhang nicht Zielführend ist.
Der Rückgabewert der Formel ist laut Online Hilfe ein Text oder Textliste und bei Notes.net steht diesbezüglch auch nichts was weiterhilft.
Hat irgendjemand von euch einen Würgaround oder eine Idee wie man das Problem angehen könnte?
Achja: Server Win2000, Domino 6.5.2, Client WinXP, Domino 6.5.1
Thomas
-
... aber so etwas geht in einer Spalte:
@If (@LanguagePreference([Region]) = "de"; "HH";"XX")
-
Richtig, das geht . Aber ich wollte eigentlich beliebigen Content (Klartext von ausgewählten Schlüsselwörtern) in der jeweiligen Ladessprache ausgeben ohne jedesmal wenn eine neue Sprache dazukommt wieder programmieren zu müssen.
Was mich daran irritiert, ist, das der Vergleich in dieser Form funktioniert, das aber eine Zuweisung auf eine interne Variable nicht möglich ist.
Also @if(@languagePreference([Region]) = "de";xmachen;ymachen) liefert ein korrektes Ergebnis,
Das selbe in der @for Schleife eingesetzt, was ich ursprünglich auch hatte, funktioniert aber nicht.
IntKeylist := @Explode(fldSaveKeywordswithLanguage;"~~");
@For(i := 1;i<=@Count(intKeyList);i:=i+1;
@If(@languagePreference([Region]) = @Word(intkeylist;"##";1);
resultlist :=resultlist:@Word(intkeylist;"##";1);
"")
);
@Explode(@Implode(resultlist;"~");"~")
Thomas
-
Und es wird noch viel besser:
Das hier in einer Spalte eingetragen:
@If(@LanguagePreference([Region]) = "en";"Ätsch";"Bätsch");
liefert Ätsch zürück, was in diesem Fall richtig ist, da die Region auf en steht.
Wenn ich aber das hier:
Schaudochmal := @If(@LanguagePreference([Region]) = "en";"Ätsch";"Bätsch");
Schaudochmal;
eintrage kommt Bätsch zurück. Was wieder mit hey der findet das dann nicht mehr zu erklären ist.
Thomas