Abschnittsübersicht

  • Standardeinstellung: Aktiviert

    Wenn Sie eine Kurs in mehreren Sprachen anbieten möchten, steht der Multilang-Filter für mehrsprachigen Inhalt zur Verfügung. Das können Sie hier einmal testen:

    Hallo!
    Dieser Absatz ist momentan auf Deutsch geschrieben. Wenn Sie nun einmal die Sprache umschalten (wenn eingeloggt: > Benutzendenmenü > Sprache, wenn als Gast hier: oben rechts auf klicken), sollte dieser Abschnitt in der ausgewählten Sprache angezeigt werden. Zauberei!

    Momentan kann Moodle lediglich zwei Sprachen anzeigen, Deutsch und Englisch. Die installierten so genannten Sprachpakete beziehen sich vor allem auf die automatischen Texte, also Dinge wie "Startseite" ("Home"), "Meine Kurse" ("My courses"), "Einstellungen" ("Settings"), "Abschnitt" ("Topic"), usw.

    Wenn auch die von Ihnen eingegebenen Kurstexte in mehreren Sprachen vorgehalten werden sollen, ist das zwar möglich, aber leider nicht übermäßig benutzendenfreundlich und ein bischen kompliziert. Denn dafür ist ein Eingriff in den Quelltext notwendig. Ein kurzer Exkurs:


    • HTML, ...

      Moodle ist am Ende des Tages auch nur eine Webseite, die in HTML (HyperText Markup Language, Info) notiert ist. Dabei handelt es sich um eine Auszeichnungssprache, also eine Art der Dokumentengestaltung, in der sowohl der eigentliche Inhalt als auch Eigenschaften, Relationen und Formate innerhalb des gleichen Dokumentes beschrieben werden.

      Ein Beispiel:

      <h3>&Uuml;berschrift</h3>
      <p>Dies ist der Text, mache Worte sind <string>speziell formatiert</strong>.

      In dem obigen HTML-Schnipsel wird ein Element der Art Headline mit Hierarchiestufe 3 (=h3) erzeugt, ihr Beginn wird mit einem öffnenden Tag (<h3>) gekennzeichnet und am Ende mit dem Pendant (</h3>) geschlossen. Der Elementinhalt ist "Überschrift", wobei dt. Umlaute - je nach Zeichencodierung des Dokuments - hier durch die (veraltete) Entity-Schreibweise ersetzt sind (Ü = &Uuml;).

      Danach folgt ein Paragraph (<p>...</p>), in dem noch einmal eine weitere Zeichenkette als Fettschrift (<strong>) formatiert ist.

      Alle Webseiten, die Sie in Ihrem Browser sehen, funktionieren genau so, allerdings ist Ihr Browser so nett, den HTML-Code zu rendern, also eben nicht das reine HTML anzuzeigen, sondern die - in diesem Beispiel - Überschriften, die Absätze und die Fettschrift als eben solche darzustellen.

      Vergleich des letzten Absatzes in gerendertem HTML (links) und Quelltext (rechts).

      WYSIWYG ...

      Wenn Sie nun den Moodle-eigenen Editor nutzen, um einen Text zu schreiben, sehen Sie direkt das Endergebnis (What You See Is What You Get, Info), der Editor schreibt aber im Hintergrund Ihre Eingaben und Formatierungen in HTML um. Wenn Sie also auf den Button klicken, erzeugt der Editor von Ihnen unbemerkt die entsprechenden HTML-Elemente, hier eine unodered list (<ul>) mit ihren list items (<li>):

      <ul>
      <li>Listenpunkt 1</li>
      <li>Listenpunkt 2</li> <li>Listenpunkt 3</li>
      </ul>

      ... und der Zusammenhang mit Mehrsprachigkeit

      Um ein Textfeld mehrsprachig zu befüllen, müssen also nun zwei Varianten des HTML-Codes vorhanden sein, einmal die HTML-Elemente mit z.B. deutschsprachigem Inhalt und ein weiteres Mal ein zweiter Satz der Elemente mit englischsprachigem Inhalt. Da Moodle dafür (noch) keine komfortable Möglichkeit bietet, muss dafür der Quelltext angepasst werden 🙄.

      Dafür stellen die Editoren eine Möglichkeit zur Verfügung, direkt Quelltext in Form des HTML-Codes zu editieren: Im Editor "Atto" gibt es in der unteren Editorzeile (erst aufklappen: ) den Button , im TinyMCE-Editor navigieren Sie über > Ansicht > Quellcode.

    • Um also textliche Inhalte mehrsprachig anzulegen, muss der Quelltext wie folgt geändert werden:

      Jede Sprache muss in ein <span>-Element einfeasst werden, in dem angegeben wird, dass (a) der "multilang"-Filter greifen soll und welche Sprache in dem Element steht. Ein englischer Text müsste also als

      <span class="multilang" lang="en">
      ... hier englischer Text
      </span>

      notiert werden, der deutsche als

      <span class="multilang" lang="de">
      ... hier deutscher Text
      </span>

      Der obige, blau hinterlegte Absatz sieht in HTML incl. Formatierung für die blaue Infobox, Fett- und Kursivschrift und Icon also so aus:

      <span class="multilang" lang="de">
         <div class="custombluebox">
      <strong>Hallo!</strong><br>
      Dieser Absatz ist momentan auf <strong>Deutsch</strong> geschrieben.
      Wenn Sie nun einmal die Sprache umschalten (wenn eingeloggt: <em>&gt; Benutzendenmenü &gt; Sprache</em>,
      wenn als Gast hier: oben rechts auf <i class="fa-solid fa-language" style="font-size:1.2rem;"></i> klicken),
      sollte dieser Abschnitt in der ausgewählten Sprache angezeigt werden. Zauberei!
      </div>
      </span>

      <span class="multilang" lang="en">
         <div class="custombluebox">
      <strong>Hello!</strong><br>
      This paragraph is currently written in <strong>english</strong>.
      If you now switch the language (if already logged in: <em>&gt; User menu &gt; Language</em>,
      if you are a guest: click on <i class="fa-solid fa-language" style="font-size:1.2rem;"></i> at the top right of the page),
      this section should then be displayed in the selected language. It's magic!
      </div>
      </span

      Der Filter "versteht" die Angaben zu "multilang"-Inhalten und die Sprachangabe, so dass bei Betätigung des Sprachumschalters die gewählte Sprache ein- und alle anderen ausgeblendet werden.

      Es scheint sinnvoll,
      1. erst den gesamten (Quell- oder WYSIWYG-) Text zu formulieren, dann
      2. zu kopieren und mit genügend Abstand (Leerzeilen) erneut einzufügen und
      3. erst abschließend (im Quelltext) die <span>s einzufügen.
      Wie gesagt: Nicht gerade benutzendenfreundlich, aber funktional 😏
    • Mehrsprachige Benennung von Abschnitten Kursbestandteilen

      Gleiches Vorgehen gilt übrigens auch für alle Abschnittsnamen und Kursbestandteile: Auch hier können mittles <span class="multilang" lang="xy"> mehrere Sprachen eingegeben werden, hier am Beispiel eines Abschnittsnamens: