Auswahloptionen sortieren

Frage

In einem Formular habe ich eine Liste von Begriffen in einem Drop-down-Menü. Warum sind sie nicht richtig sortiert, wenn ich die Listenpunkte übersetze?

Antwort

Viele Programmiersprachen enthalten Elemente wie Drop-down-Listen, die als Teil ihrer Funktionalität auch die Möglichkeit bieten, die Listenpunkte automatisch sortiert auszugeben. Das HTML-Element <select> bietet diese Möglichkeit nicht. Es zeigt die <option>-Elemente in der angegebenen Reihenfolge an. Man muss die übersetzten Optionen selbst sortieren, bevor man sie ausgibt. Das kann per Hand geschehen oder durch einen programmierten Prozess (z.B. eine XSLT-Transformation).

Nehmen wir an, wir haben eine Pull-down-Liste mit Haustieren. Darin haben wir folgende alphabetische Reihenfolge:

<form .....>
    <select size="1" name="pet">
       <option value='cat'>cat</option>
       <option value='dog'>dog</option>
       <option value='mouse'>mouse</option>
    </select>
...
...
</form>

Ins Niederländische übersetzt sieht die Liste so aus:

<form .....>
    <select size="1" name="pet">
       <option value='cat'>kat</option>
       <option value='dog'>hond</option>
       <option value='mouse'>muis</option>
    </select>
...
...
</form>

Damit die alphabetische Reihenfolge im Niederländischen stimmt, müssen wir die Liste umsortieren:

<form .....>
    <select size="1" name="pet">
       <option value='dog'>hond</option>
       <option value='cat'>kat</option>
       <option value='mouse'>muis</option>
    </select>
...
...
</form>

Das muss für jede anzuzeigende Sprache gesondert getan werden.

Übrigens

Die value-Parameter sind in den obigen Beispielen nicht übersetzt. Durch die Trennung von dem, was dem Nutzer angezeigt wird, und den Daten, die vom Backend verarbeitet werden, muss der Entwickler am Backend-Prozess nichts ändern. Das heißt, es ändert sich nichts an den vom Nutzer empfangenen Daten, wenn eine neue Sprache hinzugefügt wird.