Mehrsprachigkeit

*.svg-Dateien können mehrsprachig sein. Dabei können auch mehrere Übersetzungen in einer Datei vorhanden sein. Eine solche Datei hat mehrere Vorteile:

  • Die Speichergröße und die Anzahl der Dateien für mehrsprachige Visualisierungen verringert sich.

  • Bei einer Aktualisierung erfolgt die Änderung für alle Sprachen in nur einer Datei.

Hierfür wird das <switch>-Element von SVG verwendet, z. B.:

<svg xmlns="http://www.w3.org/2000/svg" font-family="cusy Text, sans-serif" viewBox="-6 -20 300 30">
<switch fill="rgb(117,59,189)">
    <text systemLanguage="de">cusy  Lösen komplexer IT-Probleme!</text>
    <text systemLanguage="en">cusy  Solving complex IT problems!</text>
    <text>cusy  Solving complex IT problems!</text>
</switch>
</svg>
../../_images/cusy.svg

SVG-Dateien verwenden IETF-Sprachkennzeichnungen.

Tipp

Die Reihenfolge der <text>-Elemente ist wichtig!

SVG betrachtet die <text>-Elemente nacheinander. Nur wenn das systemLanguage-Attribut nicht übereinstimmt, wird zum nächsten Element gewechselt. Das letzte <text>-Element ohne systemLanguage-Attribut wird verwendet, wenn keines der systemLanguage-Attribute in den vorigen <text>-Elementen zutreffend war.

Warnung

Verschiedene Übersetzungen haben unterschiedliche Längen, daher sollte der Ankerpunkt sorgfältig ausgewählt werden. Ggf. kann mit CSS auch der Text global skaliert werden, z. B.:

<style type="text/css">
    text[systemLanguage="de" i] { font-size: 97%; }
</style>

i macht den Sprachcode unabhängig von der Groß-/Kleinschreibung.

Für Sprachen, die von rechts nach links laufen, sollte das anchor-Attribut voraussichtlich auf end geetzt werden.

In der Datei Annexation of Southern and Eastern Ukraine.svg findet ihr ein komplexes Beispiel für eine mehrsprachige SVG-Karte, die auch Schriften von rechts nach links enthält. Dabei werden Symbole und Sprachumschalter der Beschriftungen im <defs>-Abschnitt definiert, wobei jedes davon in einem <g>-Element gruppiert wird. Anschließend werden beide in den Legende einer weiteren <switch>-Konstruktion eingesetzt.