Aneamal-Version 28

Auf dieser Seite stelle ich ausgewählte Neuerungen der Version 28 des Aneamal-Übersetzers vor. Die beiden Schwerpunkte liegen auf neuen Möglichkeiten bei Zuordnungslisten (tagged lists), die als Tabellen dargestellt werden, sowie mehr Möglichkeiten für Module, die Aneamal um verschiedenste Funktionen erweitern können. Eine komplette Liste der Änderungen gibt es an anderer Stelle. Version 28 des Aneamal-Übersetzers steht zum Herunterladen bereit.

So aktualisierst du von Version 27

Die Aktualisierung wird allen Nutzern empfohlen. Vergewissere dich, dass PHP mindestens in der Version 7.3 auf deinem Webspace läuft. Lege eine Sicherheitskopie deines aneamal-Ordners an. Lade die folgenden drei Dateien hoch:

Übernehme bei Bedarf die auf dieser Seite beschriebenen CSS-Angaben in deine Datei @look.css. Vielleicht musst deine bestehenden CSS-Angaben für Tabellen dort auch etwas anpassen.

Zuordnungslisten

Zwei Tags

Zuordnungslisten mit zwei Tags pro Eintrag werden in Aneamal seit jeher unterstützt. Beispiel:

<Fußball><Spieler> 22
<Fußball><Bälle> 1
<Snooker><Spieler> 2
<Snooker><Bälle> 22
<Tischfußball><Spieler> 2
<Tischfußball><Bälle> 1

Dargestellt wird das als Tabelle:

SpielerBälle
Fußball221
Snooker222
Tischfußball21

Der für die obige Tabelle vom Aneamal-Übersetzer erstellte HTML-Code sieht nun so aus:

<table>
  <colgroup>
  <colgroup span='2'>
  <thead>
    <tr>
      <td></td>
      <th scope='col'>Spieler</th>
      <th scope='col'>Bälle</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th scope='row'>Fußball</th>
      <td>22</td>
      <td>1</td>
    </tr>
    <tr>
      <th scope='row'>Snooker</th>
      <td>2</td>
      <td>22</td>
    </tr>
    <tr>
      <th scope='row'>Tischfußball</th>
      <td>2</td>
      <td>1</td>
    </tr>
  </tbody>
</table>

Neu ist die Unterteilung in <thead> und <tbody> sowie die Verwendung der <colgroup>-Elemente und scope-Attribute. Diese Anreicherung des HTML-Codes war wichtig, um mit den im Folgenden präsentierten komplexeren Tabellen konsistent zu sein und eine einfache, gezielte Gestaltung mit CSS zu ermöglichen. Bestehender CSS-Code zu älteren Aneamal-Versionen muss ggf. angepasst werden.

Drei Tags

Neuerdings werden auch Listen mit drei Tags pro Eintrag unterstützt, zum Beispiel:

<🧒><🏿><♀> 👧🏿
<🧒><🏿><♂> 👦🏿
<🧒><🏾><♀> 👧🏾
<🧒><🏾><♂> 👦🏾
<🧒><🏽><♀> 👧🏽
<🧒><🏽><♂> 👦🏽
<🧒><🏼><♀> 👧🏼
<🧒><🏼><♂> 👦🏼
<🧒><🏻><♀> 👧🏻
<🧒><🏻><♂> 👦🏻
<🧑><🏿><♀> 👩🏿
<🧑><🏿><♂> 👨🏿
<🧑><🏾><♀> 👩🏾
<🧑><🏾><♂> 👨🏾
<🧑><🏽><♀> 👩🏽
<🧑><🏽><♂> 👨🏽
<🧑><🏼><♀> 👩🏼
<🧑><🏼><♂> 👨🏼
<🧑><🏻><♀> 👩🏻
<🧑><🏻><♂> 👨🏻

Dargestellt wird sie als Tabelle mit zwei Zeilen- und einer Spaltenüberschrift:

🏿🏾🏽🏼🏻
🧒👧🏿👧🏾👧🏽👧🏼👧🏻
👦🏿👦🏾👦🏽👦🏼👦🏻
🧑👩🏿👩🏾👩🏽👩🏼👩🏻
👨🏿👨🏾👨🏽👨🏼👨🏻

Vier Tags

Ebenfalls werden Listen mit vier Tags pro Eintrag unterstützt, zum Beispiel:

<><> sein
<Singular><Präsens><ich><Indikativ> bin
<Singular><Präsens><du><Indikativ> bist
<Singular><Präsens><er/sie/es><Indikativ> ist
<Plural><Präsens><wir><Indikativ> sind
<Plural><Präsens><ihr><Indikativ> seid
<Plural><Präsens><sie><Indikativ> sind
<Singular><Präteritum><ich><Indikativ> war
<Singular><Präteritum><du><Indikativ> warst
<Singular><Präteritum><er/sie/es><Indikativ> war
<Plural><Präteritum><wir><Indikativ> waren
<Plural><Präteritum><ihr><Indikativ> wart
<Plural><Präteritum><sie><Indikativ> waren
<Singular><Präsens><ich><Konjunktiv> sei
<Singular><Präsens><du><Konjunktiv> sei(e)st
<Singular><Präsens><er/sie/es><Konjunktiv> sei
<Plural><Präsens><wir><Konjunktiv> seien
<Plural><Präsens><ihr><Konjunktiv> seiet
<Plural><Präsens><sie><Konjunktiv> seien
<Singular><Präteritum><ich><Konjunktiv> wäre
<Singular><Präteritum><du><Konjunktiv> wär(e)st
<Singular><Präteritum><er/sie/es><Konjunktiv> wäre
<Plural><Präteritum><wir><Konjunktiv> wären
<Plural><Präteritum><ihr><Konjunktiv> wär(e)t
<Plural><Präteritum><sie><Konjunktiv> wären

Sie wird als Tabelle mit je zwei Zeilen- und Spaltenüberschriften für jeden Eintrag dargestellt:

seinPräsensPräteritum
IndikativKonjunktivIndikativKonjunktiv
Singularichbinseiwarwäre
dubistsei(e)stwarstwär(e)st
er/sie/esistseiwarwäre
Pluralwirsindseienwarenwären
ihrseidseietwartwär(e)t
siesindseienwarenwären

In diesem Beispiel wurde auch das Tabellenfeld links oben (mit dem Infinitiv des Verbs „sein“) belegt. Dies geschieht immer mit zwei leeren Tags <><> unabhängig davon, ob Einträge ansonsten zwei, drei oder vier Tags haben.

Gemischte Zahl an Tags

Die Anzahl der Tags kann sogar innerhalb einer Liste von Stichpunkt zu Stichpunkt variieren. Das folgende Beispiel enthält sowohl Stichpunkte mit einem Tag als auch mit zwei, drei und vier Tags:

<👶><🏿> 👶🏿
<👶><🏾> 👶🏾
<👶><🏽> 👶🏽
<👶><🏼> 👶🏼
<👶><🏻> 👶🏻
<🧑><🏿><♀> 👩🏿
<🧑><🏿><♂> 👨🏿
<🧑><🏾><♀><☰> 👩🏾
<🧑><🏾><♂><☰> 👨🏾
<🧑><🏾><♀><꩜> 👩🏾‍🦱
<🧑><🏾><♂><꩜> 👨🏾‍🦱
<🧑><🏽> 🧑🏽
<🧑><🏼> 🧑🏼
<🧑><🏻><♀><☰> 👩🏻
<🧑><🏻><♂><☰> 👨🏻
<🧑><🏻><♀><🦊> 👩🏻‍🦰
<🧑><🏻><♂><🦊> 👨🏻‍🦰
<🧓><🏿><♀> 👵🏿
<🧓><🏿><♂> 👴🏿
<🧓><🏾> 🧓🏾
<🧓><🏽> 🧓🏽
<🧓><🏼><♀> 👵🏼
<🧓><🏼><♂> 👴🏼
<🧓><🏻><♀> 👵🏻
<🧓><🏻><♂> 👴🏻
<💀> 💀

Auch dies wird automatisch in einer passenden Tabelle dargestellt:

🏿🏾🏽🏼🏻
🦊
👶👶🏿👶🏾👶🏽👶🏼👶🏻
🧑👩🏿👩🏾👩🏾‍🦱🧑🏽🧑🏼👩🏻👩🏻‍🦰
👨🏿👨🏾👨🏾‍🦱👨🏻👨🏻‍🦰
🧓👵🏿🧓🏾🧓🏽👵🏼👵🏻
👴🏿👴🏼👴🏻
💀💀

Bei aller erfreulichen Flexibilität sei darauf hingewiesen, dass nicht jede denkbare Tabelle durch eine Zuordnungsliste erzeugt werden kann. Umgekehrt ist nicht jede denkbare Liste zulässig (keine Doppelung von Tag-Kombinationen), da ihr keine Tabelle entspricht. Bei gemischten Zahlen von Tags können dennoch verschiedene Zuordnungslisten zu optisch gleich aussehenden Tabellen führen.

CSS-Tipp

Über das HTML-Element <thead> und das erste HTML-Element <colgroup> können die vertikalen und horizontalen Tabellenüberschriften in CSS selektiert werden. Zum Beispiel können sie wie folgt durch mittelstarke Linien vom Rest der Tabelle abgegrenzt werden:

colgroup:first-child {border-right-width: medium}
thead {border-bottom-width: medium}

Module

X-Module können jetzt prinzipiell mit mehreren Links beschäftigt werden:

[x-mouse]->https://example.org/->https://example.com/

Ob ein Modul tatsächlich mehrere Links verarbeiten kann und welche Bedeutung diese jeweilig haben, hängt freilich vom Modul ab und kann von deren Entwicklern beantwortet werden. Genauso hängt vom jeweiligen Modul ab, ob dieses in Aneamal-Dateien eingetragene Metadaten verarbeitet und wie diese strukturiert sein sollen, um verstanden zu werden. Solche Metadaten anzugeben ist jetzt jedenfalls möglich. Beispiele:

@math: font=modern, zoom=1.5
@t-poetry: initials
@x-mouse: news=5

Für Modul-Entwickler

An dein Modul werden Daten jetzt in Form eines PHP-Arrays mit benannten Indizes wie 'meta' übergeben. Bitte nutze diese. Für die Kompatibilität mit alten Modulen kann trotzdem weiterhin auch mit numerischen Indizes auf die in älteren Aneamal-Versionen bereitgestellten Daten zugegriffen werden.

Als Entwickler von x-Modulen kannst du dem Aneamal-Übersetzer jetzt vorgeben, wie viele Links dein Modul mindestens und höchstens erwartet. In der Vergangenheit war das immer nur ein Link. Ein Link bleibt der Standard, wenn du keine anderen Vorgaben machst.

Wie das alles geht, also die Schnittstellen für Module, wird auf https://aneamal.org/translator/module beschrieben.

Beschreibung von Dateien

Bei Bildern und Mediendateien, die per [i], [j], [v], [w] verlinkt werden, kann man seit Langem eine kurze Beschreibung angeben, welche als Textalternative verwendet werden kann, zum Beispiel:

[i:A chow-chow/malinois mix.]->zeus.jpg

Dies ist nun ebenfalls für die Dateitypen [a-…], [b], [d], [h], [p], [q] möglich. Beispiel:

[h:Kontakt-Formular]->form.html

Auch bei Modulen [t-…] und [x-…] ist die Syntax wie gehabt gültig, wobei hierbei zu beachten ist, dass Modul-Entwickler für die Beschreibung spezielle Vorgaben machen können und der Beschreibung gegebenenfalls eine besondere Funktion beimessen. Das Suchmaschinen-x-Modul Mouse verwendet den Text, um die Absenden-Schaltfläche für Suchanfragen für blinde Nutzer zu benennen.

In der nächsten Aneamal-Version sollen Beschreibungen ebenfalls bei den Dateitypen [a] und [t] möglich sein. Dafür wird die Syntax [a:…] und [t:…] aber in dieser Aneamal-Version zunächst ungültig, da sie bisher noch der Syntax [a-…] und [t-…] entsprach.

Mindestanforderung PHP 7.3

Mit dieser Aneamal-Version springt die offizielle Mindestanforderung von PHP 7.1 auf 7.3. Aneamal mag in der Praxis auch noch mit älteren PHP-Versionen laufen. Du solltest trotzdem PHP 7.3 oder neuer einsetzen, denn PHP 7.3 ist die älteste PHP-Version, die zum Zeitpunkt der Veröffentlichung von Aneamal 28 noch Sicherheits-Aktualisierungen erhält.