Zum Inhalt

Mehrsprachigkeit und Übersetzungen#

Do you speak IT documentation? Englisch ist und bleibt die Standard-Sprache in der Informationstechnologie, doch Vielfalt belebt: Daher unterstützt i-doit mehrere Sprachen. In diesem Artikel zeigen wir unter anderem, wie sich bestehende Übersetzungen anpassen lassen.

Unterstützte Sprachen#

Sprache i-doit open i-doit pro
Englisch ja ja
Deutsch nein ja

Die Mehrsprachigkeit bezieht sich auf die Web GUI von i-doit. In Englisch gehalten sind der Login, das Admin Center, das Setup, der Update-Assistent und das Kommandozeilen-Tool Controller.

Neue Sprachen unterstützen

Wie Sie andere Sprachen hinzufügen können finden Sie unter Benutzerdefinierte Übersetzungen

Automatische Sprache je nach Browser-Einstellung#

Webbrowser senden bei Anfragen an einen Webserver in der Regel die präferierten Sprachen des Benutzers mit. Diese werden von i-doit beim Login ausgewertet, sodass sich i-doit dem Benutzer automatisch in der passenden Sprache präsentiert. Dieses Verhalten kann unter Verwaltung → Benutzereinstellungen → Benutzersprache beeinflusst werden.

Sprachwechsel#

Jeder Benutzer ist in der Lage, während der Arbeit mit i-doit die Sprache zu wechseln. Dies geschieht in der Web GUI über die Länderflaggen, die oben rechts angezeigt werden.

Sprachwechsel

Sprache pro Benutzer#

Beim ersten Anmelden in i-doit erhält der Benutzer automatisch die englische Oberfläche. Jeder Benutzer kann individuell einstellen, welche Sprache als Standard gesetzt werden soll. Dies geschieht unter Verwaltung → Benutzereinstellungen → Benutzersprache. Hier den richtigen Wert einzustellen ist wichtig, um beispielsweise E-Mail-Benachrichtigungen in der gewünschten Sprache zu erhalten, da die E-Mail-Vorlagen mehrsprachig sind.

Sprachkonstanten#

Innerhalb des Quellcodes und der Datenbanken werden zu übersetzende Texte durch sogenannte Sprachkonstanten repräsentiert. Beispiel für den Objekttyp Raum:

Sprachkonstante Englisch Deutsch
LC__CMDB__OBJTYPE__ROOM Room Raum

Im Quellcode bzw. den Datenbanken steht lediglich die Sprachkonstante LC__CMDB__OBJTYPE__ROOM. Der Benutzer erhält allerdings in der Web GUI von i-doit die passende Übersetzung ("Room" oder "Raum"). Sprachkonstanten erkennt man daran, dass diese lediglich Großbuchstaben (A-Z), Unterstriche (_) und ggf. Zahlen (0-9) enthalten. Sie beginnen immer mit dem Prefix LC__.

Bei einem Server-Aufruf im Browser zieht i-doit Übersetzungstabellen heran. Diese befinden sich im Installationsverzeichnis von i-doit unter src/lang. Für jede Sprache existiert ein Kürzel (de für Deutsch, en für Englisch).

Datei Bemerkung Update-sicher?
de_custom.example.inc.php Beispiel-Datei für benutzerdefinierte Anpassungen an der deutschen Sprache (wird für die Web GUI ignoriert) nein
de_custom.inc.php Benutzerdefinierte Anpassungen an der deutschen Sprache (optional) ja
de.inc.php Deutsche Sprache nein
en_custom.inc.php Benutzerdefinierte Anpassungen an der englischen Sprache (optional) ja
en.inc.php Englisch Sprache nein

Achtung: Die Änderungen an den Dateien src/lang/<Sprache>.inc.php werden bei einem Update überschrieben und sollten daher nicht angepasst werden. Stattdessen sollten die entsprechenden Übersetzungen HIER verwenden oder die custom-Dateien angepasst werden. Alle Dateien enthalten PHP-Quellcode, der sich leicht anpassen lässt. Für jede Übersetzung schreibt man eine neue Zeile nach demselben Schema:

1
$g_langcache['LC__EXAMPLE'] = 'Beispiel-Übersetzung';

Aus der Sprachkonstante LC__EXAMPLE wird somit Beispiel-Übersetzung.

Die custom-Dateien eignen sich nicht nur dafür neue Übersetzungen einzuführen, sondern auch bestehende zu überschreiben.

Sprachen ausschließen

Damit i-doit lediglich in einer Sprache den Benutzern zur Verfügung steht, hilft es, die nicht benötigten Sprachdateien zu ersetzen. Um beispielsweise i-doit lediglich in Englisch anzubieten führt man folgende Aktionen auf der Kommandozeile aus:

1
2
3
4
5
6
7
cd /var/www/html/i-doit # Wechsel in das Installationsverzeichnis von i-doit (ggf. anpassen)
cd src/lang/ # Wechsel in das Verzeichnis mit den Sprachdateien
cp de.inc.php de.inc.php.bak # Man weiß ja nie ;-)
cp en.inc.php de.inc.php # Deutsche durch englische Sprache ersetzen
# Optional, wenn bereits Anpassungen vorgenommen wurden:
#cp de_custom.inc.php de_custom.inc.php.bak
#cp en_custom.inc.php de_custom.inc.php
Da diese Vorgehensweise nicht Update-sicher ist, sollte dies nach jedem Update wiederholt werden.

Beispiele#

Prinzipiell lässt sich jeder Text in der Web GUI übersetzen. Um herauszufinden, welche Sprachkonstante verwendet wird, hilft es in vielen Fällen, in den Sprachkonstanten nach den Übersetzungen zu suchen.

Mehrsprachige Objekttyp gruppen#

In der Mandanten-Datenbank stehen in der Tabelle isys_obj_type_group in der Spalte isys_obj_type_group__title die Sprachkonstanten. Wird eine neue Objekttyp gruppe erstellt, kann hier in der Datenbank der Wert in eine Sprachkonstante umgewandelt werden. Eine bestehende Objekttypgruppe sollte nicht in der Datenbank anders benannt werden. Stattdessen sollte in den custom-Dateien die jeweilige Sprachkonstante neu übersetzt werden.

Mehrsprachige Objekttypen#

Unter Verwaltung → Datenstruktur → Objekttypen → [Objekttyp gruppe] → [Objekttyp] → Sprachkonstante / Bezeichnung kann ein Objekttyp mehrsprachig angegeben werden. Dies gilt sowohl für Standard-, als auch für benutzerdefinierte Objekttypen.

Mehrsprachige Objekt-Titel#

Mehrsprachige Objekt-Titel sind nicht möglich. Dies würde eine eindeutige Referenzierung behindern.

Mehrsprachige Kategorien#

Handelt es sich um eine Standard-Kategorie, kann die Sprachkonstante in den custom-Dateien überschrieben werden.

Bei benutzerdefinierten Kategorien wird der Kategorie-Titel mit einer Sprachkonstante belegt und diese in den custom-Dateien übersetzt.

Mehrsprachige Attribute#

Die Standard-Attribute werden über die Sprachdateien übersetzt. Die Sprachkonstanten befinden sich im Quellcode und sollten daher nicht angepasst werden.

Attribute in benutzerdefinierten Kategorien können mit einer Sprachkonstante übersetzt werden.