Da die Konfiguration von Klaro durchaus umfangreich werden kann, haben wir die einzelnen Komponenten in verschiedene
Konfigurationsbereiche eingeordnet. Das soll die Konfiguration übersichtlicher machen und Euch dabei unterstützen, die
entsprechenden Parameter schneller zu finden.
Das bedeutet, dass die in der KlaroConfig-Datei angelegten Parameter jetzt in vier Bereichen zu finden sind.
Diese vier Bereiche sind:
In der nachfolgenden Erklärung wird oft auf die annotated configuration Bezug genommen. Das ist eine kommentierte Beispiel-Konfigurationsdatei, die die EntwicklerInnen von Klaro den AnwenderInnen zur Orientierung an die Hand gegeben haben. Ihr findet die annotated configuration hier. Manchmal nehmen wir auch auf die API-Dokumentation Bezug. Diese findet ihr hier.
Durch einige Rückfragen haben wir bemerkt, dass die Konfiguration von Klaro nicht so leicht durchzuführen ist, wie das vielleicht wünschenswert wäre. Daher stellen wir der Dokumentation hier einen Abschnitt zur Schnellkonfiguration voran. Damit sollte es möglich sein, nach der Installation des Bundles innerhalb von ca. 5min eine lauffähige Konfiguration zu erstellen. Folgende drei Schritte sind nötig: 1. Erstellen einer Konfiguration 2. Erstellen von zwei Übersetzungen und 3. Zuweisen der Konfiguration zum Startpunkt der Website (Root-Page).
Für den Start benötigt Klaro die Übersetzung für die aktuelle Landessprache (wir gehen hier mal von de aus) und eine Fallback-Sprache. Die nennt sich in Klaro zz. Im Screenshot seht ihr zwei Vorschläge zur Benennung.
Erstellt nun (z.B.) eine deutsche Übersetzung mit dem Namen Deutsch-Deutschland (de-DE) mit dem Sprachkennzeichen de, sowie eine zweite Fallback-Übersetzung mit dem Namen Klaro Default (zz-ZZ) (oder Klaro Fallback (zz-ZZ)) und dem Sprachkennzeichen zz. Die beiden Warnungen könnt ihr hier übergehen.
Wenn dies soweit erledigt ist, wechselt ihr zur root Page (wir setzen hier voraus, dass eine Root-Page bereits existiert) und aktiviert dort die gerade bereitgestellte Klaro-Konfiguration. Die Root-Page erkennt ihr am Typ Startpunkt einer Website. Nur dieser Seiten-Typ verfügt über die Option Klaro-Einstellungen. Aktiviert hier Eure Klaro-Konfiguration und weist sie dem Startpunkt zu.
Wenn ihr jetzt am Frontend die Seite aktualisiert, so solltet ihr den Klaro Consent Manager bereits rechts unten bemerken. Er sieht so aus: Da bis jetzt noch keine Zwecke und Dienste konfiguriert wurden, bleibt nach dem Klick auf Lassen Sie mich wählen der modale Dialog mit den Diensten leer. Das Konfigurieren von Diensten und Zwecken wäre jetzt also der nächste Schritt.
Wir empfehlen, zuerst Zwecke zu definieren und danach Dienste anzulegen. Grundlegende Zwecke wären: analytics, statistics, video-streaming, audio-streaming, security etc. Grundlegende Dienste wären: google-analytics => analytics (Zweck), matomo => statistics, youtub-video => video-streaming, vimeo => video-streaming, soundcloud => audio-streaming etc.
Die Konfiguration von Klaro wird durch das Contao Klaro Modul flexibler, weil die KlaroConfig zur Laufzeit immer neu aus dem
Parameter-Set erstellt wird. Dadurch sind Änderungen an der Konfiguration schnell und einfach möglich.
Außerdem erlaubt dieses Konzept das Vorhalten vieler Konfigurationen, die nach Bedarf einem Startpunkt (Root-Page)
zugeordnet werden können. Es kann aber immer nur eine gültige Konfiguration pro Root-Page geben. Auf diese Weise könnt
ihr für eure Seite verschiedene Privacy-Profile definieren und bei Bedarf das passende Profil aktivieren.
Das Modul beachtet den Ländercode des Startpunktes (Root-Page), so dass hier nichts weiter konfiguriert werden muss.
Selbstverständlich müsst ihr aber eine Übersetzung definieren, andernfalls zeigt Klaro nur die default-Sprache an.
Wenn ihr nun Klaro auf eurer Site verwenden wollt, so empfehlen wir, zuerst einmal eure Seitenstruktur zu überprüfen und gegebenenfalls anzupassen. Vielleicht entspricht eure Site ja auch bereits den nachfolgend beschriebenen Empfehlungen?
Für mehrsprachige Sites sollte es für jede Sprache einen Startpunkt (Root-Page) geben (siehe Screenshot). Unterhalb jeder dieser Startpunkte sollte eine Seite für die sprachspezifische Datenschutzerklärung vorhanden sein. Diese Seite könnt ihr später in der Konfiguratione auswählen, um in freundlicher Weise auf eine Datenschutzerklärung in der jeweiligen Landessprache zu verlinken.
Wenn diese Struktur vorhanden ist, könntet ihr einfach unter Seitenstruktur den gewünschten Startpunkt aufrufen und bearbeiten. Dort findet ihr (aber nur wenn es sich um einen Startpunkt der Website, eine sog. Root-Page handelt), die zusätzliche Legende Klaro-Einstellungen.
Eine Klaro-Konfiguration ist immer an eine Root-Page (Startpunkt) einer Website gebunden!
Die Klaro-Konfigurationen könnt ihr über das Menü Klaro Konfiguration verwalten. Jede Konfiguration bietet die unten stehenden Konfigurationsmöglichkeiten. Wir werden sie hier der Reihe nach erläutern…
In den Basis Einstellungen könnt ihr der Konfiguration einen Namen geben. Wie bereits eingangs erwähnt, unterstützt Contao Klaro viele Konfigurationen, von denen Klaro zur Laufzeit aber immer nur eine verwendet. Da es viele Konfigurationen geben kann, müsst ihr jeder einen Namen geben.
Hier könnt ihr die Dienste Konfigurieren, die Klaro verwalten soll. Klaro kann beliebig viele (benutzerdefinierte) Dienste verwalten. Dabei wird jeder Dienst kategorisiert. Die entsprechende Kategorie ist der Verwendungszweck des Dienstes. Das Konzept lässt sich vielleicht am einfachsten anhand der beiden Komponenten Klaro-Hinweis (auch manchmal Einwilligungsbox genannt) und Klaro-Manager (auch Modal-Window genannt) erklären. Es folgt jetzt wieder ein kleiner Umweg…
Klaro tritt auf deiner Website im Wesentlichen durch zwei sichtbare Elemente in Erscheinung. Das sind der Klaro-Hinweis
(Einwilligungsbox) und der Klaro-Manager (Modal-Window). Der Klaro-Hinweis wird den BesucherInnen bei jedem Aufruf
der Website angezeigt, solange Klaro keine Zustimmungsinformationen in seinem Speicher findet.
Der Klaro-Hinweis sieht so aus:
Der Klaro-Manager wird den BesucherInnen angezeigt, wenn sie auf den Link ‘Lassen Sie mich wählen’ klicken. Er
kann auch explizit durch einen Aufruf klaro.show() über die API aufgerufen werden.
Der Klaro-Manager zeigt die Zwecke (Kategorien) untereinander, wobei jedem Zweck ein oder
mehrere Dienste zugeordnet sein können. Das sieht ungefähr so aus…
Zwecke können also beispielsweise sein: Analyse, Sicherheit, Chat, Werbung oder Streaming - etc.
Die Zwecke könnt ihr selbst definieren.
Unter Diensten versteht Klaro im Grund die Websites (oder auch API-Endpunkte), an die zustimmungspflichtige
Nutzerdaten übertragen werden. Auch die Dienste könnt ihr selbst definieren.
Daher werden also die BenutzerInnen um ihre Zustimmung für einen Dienst oder einen Zweck gebeten.
Ein Zweck kann also vielen Diensten und ein Dienst vielen Zwecken zugordnet sein. Diese Zuordnungen könnt ihr selbst festlegen.
Nach dieser kurzen Definition der Begriffe Zweck und Dienst wollen wir mit der Konfiguration fortfahren. Wir waren also bei den Diensten stehen geblieben. Die Dienste, die eine Konfiguration verwenden soll, können im folgenden Abschnitt ausgewählt werden. Hier eine Beispielansicht:
Wenn ihr Klaro das erste Mal konfiguriert, so werden euch hier wahrscheinlich keine Dienste zur Auswahl angeboten. Ihr müsst also zuerst eure Dienste definieren, bevor ihr die Konfiguration abschließen könnt. Ihr könnt unter 2. Klaro Dienste konfigurieren mehr über die Konfiguration von Diensten lesen.
Ihr könnt diesen Punkt auch überspringen. Er ist nur für die erfahrenen BenutzerInnen von Bedeutung!
Klaro ist in Javascript geschrieben. Hier könnt ihr zwei Parameter bezüglich des Skriptes selbst definieren. Der erste Parameter ist der Lademodus und der zweite der Name der Konfigurationsvariable.
Was den Lademodus des Scripts angeht, so könnt ihr hier einstellen, auf welche Weise das Skript geladen werden soll. Die Art un Weise des Ladevorganges ist nicht gerade unerheblich, soll aber hier nicht weiter erläutert werden. Klaro unterstützt die Modi synchron, verzögert (defer) und asynchron (async). Es wird der Modus defer (verzögert) empfohlen. Er ist voreingestellt.
Der Name der Konfigurationsvariable kann hier abweichend definiert werden. Das ist in der Regel nicht nötig. Sollten sich im aktuellen Namensraum jedoch zufällig eine Variable mit gleichem Namen befinden, so kann eine abweichende Definition nötig werden.
Wenn die Seite geladen wird und die Einwilligungsbox rechts unten angezeigt werden soll, so könnt ihr manche Parameter für diese Anzeige festlegen. Dazu wieder eine kurze Anmerkung:
Klaro startet in der Regel nicht mit dem Klaro-Manager (Modal-Window), sondern nur mit der Einwilligungsbox, einem kleinen Hinweis rechts unten im Browser-Fenster. Das sieht (ungefähr) so aus: Der hier dargestellte Text ‘Consent Notice Text 4096 Zeichen und HTML Text’ ist nur ein Beispieltext, den ihr selbst festlegen könnt und wir erklären ihn später noch genauer.
Folgende Parameter sind konfigurierbar:
Der erste Schalter HTML-Modus ermöglichst es euch, statt bloßem Text auch HTML als Hinweis auszugeben. Das eröffnet eine große Menge weiterer Möglichkeiten zur Gestaltung von Hinweis-Texten in Klaro. Sogar Tabellen und Grafiken können dargestellt werden. Theoretisch wäre sogar SVG möglich. Wir haben es aber noch nicht ausprobiert…
Der Schalter Klaro als Modal-Dialog starten führt dazu, dass der Klaro-Manager sofort beim Start angezeigt wird und nicht die Einwilligungsbox. Der Klaro-Manager überlagert dabei den Inhalt der Website, so dass der Besucher / die Besucherin ihre Zustimmungen ändern können. Klickt man neben das Modal-Window, so wird der Manager geschlossen, ohne das die Änderungen übernommen werden. Erst nach dem Klick auf Speichern werden die Zustimmungsinformationen lokal gespeichert (siehe dazu auch den nächsten Abschnitt Cookies konfigurieren).
Der Schalter Modal erzwingen führt dazu, dass der zuvor genannte Klaro-Manager solange nicht geschlossen werden kann, bis der Benutzer / die Benutzerin explizit mit Speichern bestätigt hat. Damit könnt ihr erzwingen, dass bestimmte Zustimmungen gegeben werden müssen, bevor die Site verwendet wird, denn diese lässt sich nicht benutzen, solange der Klaro-Manager modal geöffnet ist.
Der Schalter Standard-Zustimmung für alle Dienste ist selbsterklärend. Ist er aktiviert, so werden alle Dienste bereits beim Start von Klaro oder beim ersten Aufruf der Site auf zugestimmt gesetzt. Die Entwickler von Klaro raten von der Verwendung ab, da es dem Konzept der selbstbestimmten Privatsphäre widerspricht.
Der Schalter Alle akzeptieren zeigt eine zusätzliche Schaltfläche im Klaro-Manager, mit deren Hilfe der Benutzer / die Benutzerin allen Diensten mit einem Klick zustimmen kann. Ist diese Option nicht aktiviert, so muss man jedem Dienst einzeln zustimmen.
Ist die Option »Ich lehne ab« ausblenden aktiviert, so wird die zugehörige Schaltfläche im Klaro-Hinweis ausgeblendet. Das hat zur Folge, dass der Benutzer / die Benutzerin den Manager aufrufen muss, um die Zustimmung zu widerrufen. Die Entwickler von Klaro raten von der Verwendung ab, da es dem Konzept der selbstbestimmten Privatsphäre widerspricht.
Ist die Option »Lassen Sie mich wählen« ausblenden aktiviert, so wird die zugehörige Schaltfläche in der Einwilligungsbox (Hinweis) angezeigt. Dies erlaubt dem Benutzer / der Benutzerin der Website, den Manager aufzurufen und seine Zustimmungen einzeln zu konfigurieren.
Als letzte Option in diesem Abschnitt findet ihr die Möglichkeit, Seiten in eurem Seitenbaum auszuwählen, auf denen der Klaro-Manager und der Klaro-Hinweis nicht aktiv werden sollen. Klaro.js selbst wird aber dennoch auf allen Seiten geladen. Das ist nötig, um gegebenenfalls den Manager erneut aufrufen zu können und die Zustimmungen zu ändern.
In diesem Abschnitt könnt ihr das Speicherverhalten von Klaro konfigurieren. Eine weitere Konfigurationsmöglichkeit für Cookies findet ihr noch einmal im Abschnitt Cookie-Regeln bei den Diensten. Dort könnt ihr für jeden Dienst eine extra Liste von Cookie-Regeln definieren.
Folgende Parameter sind konfigurierbar:
Die DIV-Id entspricht dem Attribut »ID« des Klaro-DIV-Tags. Dies ist genau genommen kein Parameter, der mit dem Speicherverhalten etwas zu tun hat. Hier könnt ihr einfach eine eigene ID definieren, wenn die voreingestellte bereits verwendet wird. Die Voreinstellung lautet ‘klaro’.
Unter Speicherschlüssel könnt ihr den Schlüssel (key) für den browser local storage ändern. Klaro schreibt die Zustimmungsinformationen client-seitig in einen Speicher (siehe auch den nachfolgenden Parameter). Um diese Information wiederzufinden benötigt Klaro ein Kennzeichen. Das ist dieser Speicherschlüssel. Er hat nichts mit Verschlüsselung zu tun. Die Voreinstellung lautet ‘klaro’.
Unter Speichermethode könnt ihr auswählen, in welchem Speicher Klaro.js die Zustimmungsinformationen speichern soll. Klaro bietet zurzeit die beiden Optionen Cookie Storage und Browser Loacl Storage. Zu- vor und Nachteilen dieser beiden Speicherorte könnt ihr gern mal googeln. Die Voreinstellung lautet Cookie Storage.
Im Feld Cookie Domain könnt ihr die Domain konfigurieren. Das solltet ihr nicht vergessen! Ohne angabe der Domain, auf der eure Root-Page gerade läuft, ist Klaro nämlich nicht korrekt funktionsfähig. Daher konfiguriert bitte die Cookie Domain!
Als letztes könnt ihr hier noch die Cookie Verfallszeit einstellen. Die Voreinstellung lautet 30 (Tage).
Ihr könnt diesen Punkt auch überspringen. Er ist nur für die erfahrenen BenutzerInnen von Bedeutung!
Klaro.js unterstützt (rudimentär) Callbacks. Grundsätzlich sind zwei Callback-Definitionen möglich (nicht zu verwechseln mit den in der Klaro-API kurz erwähnten watchern !). Ein Callback kann in der KlaroConfig definiert werden und je ein weiterer für jeden Dienst. Da die KlaroConfig verschiedene Dienste definieren kann, sind auch viele Dienst-Callbacks, aber nur ein einziger config.callback möglich. Die Callbacks haben eine einheitliche Signatur der Form: function(consent,service) {}, wobei consent bool = true/false, der Zustimmungsstatus, und service das interne Klaro-service-Objekt repräsentiert. consent gibt den aktuellen Zustimmungsstatus zum übergebenen Service zurück. Ihr könnt die Signatur der Funktion im Contao Klaro Modul nicht ändern, sondern nur den function body selbst schreiben. Für korrekten Script-Code seid ihr verantwortlich!
Wir waren mit einer sinnvollen Anwendung der Callbacks nicht erfolgreich. Zumindest verhalten sich diese nicht so, wie in der annotated configuration beschrieben. Wir haben jedoch auch nicht viel Zeit in die Analyse des Klaro-Codes gesteckt, da das nicht unser Arbeitsziel war. Eine kleine Übersicht zu den Problemen findet ihr auf Github
Hier könnt ihr einen sog. Test-Modus aktivieren. Einen kurzen Hinweis dazu findet ihr in der annotated config.
Über das Menü Klaro Dienste könnt ihr Dienste verwalten. Ein Dienst bietet folgende Konfigurationsmöglichkeiten:
Im Abschnitt Name könnt ihr der Dienst-Konfiguration einen Namen geben. Dieser Name ist dazu gedacht, die Dienst-Konfiguration leicht wiederzufinden bzw. von anderen Konfigurationen zu unterscheiden.
Im zweiten Abschnitt könnt ihr den Dienst-Namen, die Zuordnung der Zwecke und Cookie-Regeln definieren.
Bitte beachtet, dass sich diese Parameter immer nur auf einen Dienst beziehen. Bitte beachtet auch, dass der Name der Dienst-Konfiguration und der Dienst-Name zwei verschiedene Dinge sind! Der Name der Dienst-Konfiguration ist dafür gedacht, dass ihr selbst viele Konfigurationen ordnen und unterscheiden könnt, der Dienst-Name hingegen wird von Klaro.js intern verwendet und ist wichtig. Wird der Dienst-Name also falsch definiert, so funktioniert Klaro nicht korrekt! Da wir nicht genau wissen, wie Klaro intern mit dieser Zeichenkette umgeht, empfehlen wir, hier nur Kleinbuchstaben oder den Bindestrich zu verwenden. Unser Contao Klaro Modul lässt hier zwar alle Zeichen zu, wir wissen aber nicht, ob Klaro.js das auch akzeptiert. Ihr könnt es aber gern ausprobieren.
Ihr müsst also im Feld Name des Dienstes eine Zeichenkette für den Dienst eingeben! Eine Eingabe ist zwingend erforderlich! Im Beispiel seht ihr ‘google-analytics’. Wir empfehlen diese Schreibweise. Sie wird auch von der annotated configuration so vorgeschlagen.
Als nächstes könnt ihr hier den Dienst verschiedenen Zwecken zuordnen. Sind noch keine Zwecke definiert, so ist diese Liste leer. Ihr müsst dann erst unter dem Menü Klaro Zwecke neue Zwecke anlegen. Mehr dazu findet ihr weiter unten im Abschnitt 3. Klaro Zwecke konfigurieren.
Im obigen Bild seht ihr auch einen Zweck [contaoce] translation missing, dessen Name etwas seltsam aussieht. Diese Darstellung findet ihr immer dann, wenn unter Klaro Übersetzungen eine Übersetzung für diesen Zweck fehlt. Mehr dazu findet ihr weiter unten im Abschnitt 4. Klaro Übersetzungen. Ihr könnt hier auch gut erkennen, dass es innerhalb der Klaro-Konfiguration viele Abhängigkeiten gibt.
Als letztes könnt ihr hier noch sog. Cookie-Regeln definieren. Wir haben die Beispiele aus der annotated configuration verwendet. Wenn ihr die Funktionsweise dieser Regeln ergründen wollt, so empfehlen wir einen Blick in die annotated configuration.
Hier könnt ihr konfigurieren, wie der Dienst vorkonfiguriert soll, wenn die Seite erstmalig von Klaro geladen wird. Die Optionen sind weitgehend selbsterklärend.
Mit der Option zugestimmt könnt ihr festlegen, ob dieser Dienst beim Aufruf der Site bereits mit zugestimmt voreingestellt ist.
Mit erforderlich wird erreicht, dass dieser Dienst vom Benutzer / der Benutzerin nicht deaktiviert werden kann. Verwendet also diese Option für Dienste, die nötig sind, damit eure Website grundsätzlich funktioniert (z.B. Einkaufswagen-Cookies etc.).
Ist die Option erzwingen aktiviert, so lädt Klaro den Dienst auch dann, wenn der Besucher / die Besucherin der Website diesem Dienst noch gar nicht zugestimmt hat. Die Entwickler von Klaro raten von der Verwendung ab, da es dem Konzept der selbstbestimmten Privatsphäre widerspricht.
Wenn die Option einmalig aktiviert ist, wird der Dienst nur einmal von Klaro angefragt, unabhängig davon, wie oft der Benutzer ihn ein- und ausschaltet. Dies ist z.B. bei Tracking-Skripten von Bedeutung, die jedes Mal eine neue Anfrage (Request) erzeugen, wenn Klaro eine Änderung der Zustimmung durch den Benutzer bemerkt.
Wenn die Option kontextabhängig aktiviert ist, wird der Dienst von Klaro als »kontextabhängig« betrachtet. Das bedeutet, dass an den entsprechenden Positionen im Layout, eine gesonderte Zustimmung erfragt wird, bevor der Inhalt des Elements angezeigt wird.
Ihr könnt diesen Punkt auch überspringen. Er ist nur für die erfahrenen BenutzerInnen von Bedeutung!
Wie bereits im Abschnitt 1. Klaro Konfiguration angemerkt wurde, unterstützt Klaro gewisse Callbacks. An dieser Stelle könnt ihr einen Callback (genauer den function body) für den Dienst definieren.
Zu den Klaro-Zwecken gibt es nicht viel zu sagen. Klaro verwendet sie, um intern eine Zuordnung zu den Diensten herzustellen. In umgekehrter Weise können auch jedem Dienst ein oder mehrere Zwecke zugeordnet werden.
Beim Name des Zwecks muss man eine beliebige Zeichenkette eingeben.
Beim Klaro-Schlüssel ist es wichtig, dass nur Kleinbuchstaben und der Bindestrich verwendet werden sollten. Klaro verwendet diese Zeichenkette intern als Javascript Object Key und dieser darf - etwas vereinfacht gesagt - keine anderen Zeichen enthalten.
Als letztes kommen wir zu den Klaro Übersetzungen. Klaro ist umfassend auf Mehrsprachigkeit ausgelegt. Das eröffnet (auch leider) sehr viele Konfigurationsmöglichkeiten. Da nicht alle Elemente für den Benutzer / die Benutzerin konfigurierbar sein müssen und das schnell unübersichtlich werden kann, haben wir nur ausgewählte Übersetzungen zugänglich gemacht. Bei der Auswahl haben wir uns an der alltäglichen Verwendung orientiert.
Da Klaro sich relativ tolerant verhält (was heißen soll, dass es die Website, auf der es eingesetzt wird im Fehlerfall möglichst nicht blockiert oder behindert), sind wir bei den Übersetzungen diesem Konzept gefolgt. Das bedeutet, dass ihr Übersetzungen fehlerhaft oder gar nicht eintragen könnt. Selbstverständlich fehlen dann die Texte oder ihr erhaltet seltsame Ausgaben. Aber das steht euch frei…
Die Klaro Übersetzungen bieten also folgende Konfigurationsmöglichkeiten:
Da es viele Übersetzungen geben kann, folgen wir hier unserer Gewohnheit und bieten einen Namen für die Übersetzung an. Dieser besteht aus einer Zeichenkette, die ihr frei festlegen könnt, wobei eine Eingabe zwingend erforderlich ist. Wir empfehlen bei der Benennung eine Orientierung an der Klaro annotated configuration. Dort werden die Sprachen nach den sog. Sprachkennzeichen/Ländercodes gemäß ISO 639-1 definiert. Wir empfehlen also eine Benennung wie im nachfolgenden Bild:
Als nächstes muss das Sprachkennzeichen (der Ländercode) festgelegt werden. Klaro verwendet ISO 639-1 Codes.
Unterhalb des Sprachkennzeichens könnt ihr einen Link auswählen, der auf eine Seite mit eurer Datenschutzerklärung in der jeweiligen Landessprache verweist.
Hier zwei wichtige Hinweise:
Da das Contao Klaro Modul seine Sprache aus dem Startpunkt (Root-Page) bezieht, sind für den Benutzer / die Benutzerin keine weiteren Konfigurationen nötig. Sollte aber auf eurer Website die Sprache in Klaro einmal nicht korrekt angezeigt werden, so überprüft bitte zuerst, ob das Sprachkennzeichen (der Ländercode) eurer Klaro Übersetzung mit dem aktuell gewählten Ländercode der Root-Page überein stimmt. Das Contao Klaro Mudul konfiguriert nämlich die KlaroConfig mit Hilfe des Ländercodes aus der Root-Page. Das Contao-eigene Sprachen-Fallback wird in unserem Modul nicht berücksichtigt, da Klaro sein eigenes Konzept des Fallbacks mitbringt. Vielleicht wird das später einmal realisiert…
Klaro verwendet intern auch noch einen sog. Sprach-Fallback-Code. Der lautet zz. Ihr solltet also (laut annotated configuration) auch eine Übersetzung für die Sprache zz definieren. Wir haben damit keine eindeutig reproduzierbaren Ergebnisse erreicht. Laut annotated configuration sollten Elemente aus zz dann zur Anzeige kommen, wenn andere Sprachen nicht definiert sind. Wir haben aber beobachtet, dass Klaro die Übersetzungen der Fallback-Sprache mit dem Ländercode zz, den korrekt definierten Übersetzungen anderer Ländercodes vorzieht, so dass die eigentliche (aktuelle/gewünschte) Landessprache nicht angezeigt wird. Daher kann es nötig werden, den Code zz nicht, oder auch in der gewünschten Landessprache zu definieren. Probiert es einfach aus…
Hier könnt ihr einen Text oder auch beliebiges (na nicht ganz - aber probiert es aus!) HTML eingeben. Der TinyMCE-Editor unterstützt euch dabei. Hier findet ihr auch den Beispieltext aus dieser Erklärung wieder: “Consent Notice Text 4096 Zeichen und HTML Text”. Wenn ihr genau hinschaut, so seht ihr, dass diese sog. consent notice Fett und Kursiv dargestellt wird. Das ist bereits einfaches HTML. Seht ihr stattdessen die Tags selbst also <b>Consent</b> (o.ä.) dann kann es daran liegen, dass ihr die Option HTML-Modus unter Klaro Konfiguration -> Einwilligungserklärung konfigurieren -> HTML-Modus noch nicht aktiviert habt. Wir haben die Anzahl der Zeichen hier auf 4096 Zeichen begrenzt.
Klaro erlaubt es, zwei unterschiedliche Texte zu definieren. Den gerade zuvor genannten für die Einwilligungsbox (den Klaro Hinweis) und einen abweichenden Text für das Modal-Window. Hier könnt ihr den Text für das Modal-Window festlegen. Diese Ausgabe unterstützt auch HTML-Code, wie zuvor beschrieben. Die Anzahl der Zeichen ist auf 4096 Zeichen begrenzt.
Jetzt folgen zwei Tabellen für die Übersetzungen. Wir beginnen mit der Übersetzung der Zwecke. Alle Übersetzungstabellen arbeiten in ähnlicher Weise. Daher sei hier etwas grundlegend vorausgeschickt.
Für Contao Insider: Weil eine Übersetzung im einfachsten Fall eine Schlüssel-Wert-Zuordnung darstellt, haben wir diese Funktion mit dem KeyValueWizard realisiert. Das ist ein Kompromiss zwischen Leistung und Bedienbarkeit, denn der KeyValueWizard ist für diese Anwendung leider nicht ganz optimal ausgestattet. Ihr könnt hier also den zuvor definierten Zwecken (Schlüsseln) je eine Übersetzung zuweisen. Unter Schlüssel muss der korrekte Schlüssel eingetragen werden. Habt ihr einen unbekannten Schlüssel eingetragen oder einen Tippfehler gemacht, so könnt ihr den Datensatz nicht speichern. Da ihr aber auch nicht zugleich alle Schlüssel im Kopf haben könnt, hilft euch die Fehlermeldung und ein Helferlein, das wir eingebaut haben. Diese sollen das Arbeiten erleichtern. Anhand der Fehlermeldung könnt ihr sehen, welche Schlüssel zulässig sind und wo der Tippfehler liegen könnte.
Ein Helferlein haben wir eingebaut, durch das ihr euch die bereits registrierten Schlüssel automatisch neu eintragen lassen könnt. Wenn also alles schief gegangen ist, so löscht einfach alle Elemente aus der Tabelle. Als letztes bleibt dann noch ein Schlüssel-Wert-Paar übrig. Löscht auch die Inhalte dieser Felder und speichert dann den Datensatz mit dem Button Speichern. In dieser Situation ermittelt das Widget alle registrierten Schlüssel neu und trägt die Tabelle vor. Ihr müsst dann nur noch die Übersetzungen ergänzen (siehe Bild in der vorgehenden Anmerkung).
Im Grund gibt es hier nicht viel hinzuzufügen. In dieser Tabelle könnt ihr die Übersetzung für registrierte Dienste festlegen. Ansonsten gilt das, was für die vorhergehende Tabelle bereits gesagt wurde.
Bei der Arbeit mit Klaro ist uns aufgefallen, daß manche Texte und Beschriftungen nicht so ganz zum Problem passen, das gerade gelöst werden soll. Das fiel uns z.B. bei der Anzeige von Elementen auf, für die noch keine Zustimmung gegeben wurde. Daher dachten wir uns, es wäre nicht schlecht, wenn man die Texte dort auch noch anpassen könnte. Die Standard-Konfiguration sieht z.B. so aus: Ja oder Immer? Das ist etwas unverständlich. Besonders dann, wenn man bedenkt, dass wir auch fremdsprachige BesucherInnen auf unserer Website begrüßen wollen. Daher haben wir noch eine Möglichkeit eingebaut, diesen Platzhalter anzupassen.
Im Feld Fragetext könnt ihr die Frage nun etwas ausführlicher formulieren. Dabei bietet Klaro.js hier die Variable {title} an, die durch den Namen des zugeordneten Dienstes ersetzt wird. (fragt nicht, warum service.name hier title heißt). Ihr könnt aber im Bild erkennen, dass an dieser Position nach der Zustimmung für den Dienst »YouTube« gefragt wird. Der linke Button erteilt eine einmalige (bis zum nächsten Request / Reload der Seite) Zustimmung, daher haben wir ihn mit »einmalig« beschriftet.
Der rechte Button erteilt die Zustimmung bis auf Widerruf (über den Klaro-Manager alias Modal-Window), daher diese Beschriftung.