beatovich: Mehrsprachigkeit, Beurteilung

Beitrag lesen

hallo

Aufgabe: Erstelle eine Mehrsprachigkeit für die Kissthemes, die berücksichtigt, dass jede Seite mehr oder minder vollständige Übersetzungen beinhaltet mit jeweils eigenen Sprachoptionen.

Lösungsnsatz:

Syntaxguideline

html lang=de

Übersetzungstätigkeit: Konvertiere

<p>Deutsch</p>

nach

<p lang="multi">
<span lang="it">Italiano</span>
<span lang="fr">Francais</span>
<span lang="de">Deutsch</span>
</p>

Elementtypen spielen keine Rolle.

Falls eine Sprachwahl vorliegt, wird diese im html-Element in data-lang gspeichert.

Das zugehörige CSS.

In _.lang ist der Wert von html lang gespeichert. Dieser Wert bleibt konstant.

	html[lang="'+_.lang+'"] [lang="multi"] > :not([lang="'+_.lang+'"]){display:none}\
	html[data-lang="en"] [lang="multi"] > [lang="en"],\
	html[data-lang="es"] [lang="multi"] > [lang="es"],\
	html[data-lang="de"] [lang="multi"] > [lang="de"],\
	html[data-lang="fr"] [lang="multi"] > [lang="fr"],\
	html[data-lang="it"] [lang="multi"] > [lang="it"]{display:initial}\
	html[data-lang] [lang="multi"] > [lang]:last-of-type{display:initial}\
	html[data-lang="en"] [lang="multi"] > [lang="en"] ~ [lang="'+_.lang+'"],\
	html[data-lang="es"] [lang="multi"] > [lang="es"] ~ [lang="'+_.lang+'"],\
	html[data-lang="de"] [lang="multi"] > [lang="de"] ~ [lag="'+_.lang+'"],\
	html[data-lang="fr"] [lang="multi"] > [lang="fr"] ~ [lang="'+_.lang+'"],\
	html[data-lang="it"] [lang="multi"] > [lang="it"] ~ [lang="'+_.lang+'"]{display:none}\

Das funktioniert, sollte aber rationeller notiert werden.

Allgemeine Mechanik

  • WENN COOKIE -> data-lang = Cookie Wert
  • SONST WENN QUERSTRING -> data-lang = QS Wert
  • SONST keine spezifische Usersprache.

Es ist zu erwarten, dass das Dokument-html von Autoren erstellt wird, die sehr wenig über html wissen. Die Syntax muss entsprechend einfach bleiben.

Das hiessige Konzept stellt eine unnötige Schrierigkeit. Die Fallback-Sprachversion muss die letzte notierte Version sein (CSS kann anders nicht greifen.) Sprachversionen müssen unmittelbare Kinder des Elements mit lang="multi" sein.

Einschränkung: Diese Form von Mehrsprachigkeit manipuliert keine einzelnen Attributwerte. Betroffen sind Attribute wie aria-label, title

Eine funktionierende Implementation liegt vor.

Ich möchte jetzt eure Kritik hören.