Inhaltsverzeichnis

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

Sprachei-doit openi-doit pro
Englischjaja
Deutschneinja

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

i-doit lässt sich nicht ohne Eingriff in den Quellcode durch weitere Sprachen erweitern. Gibt es Bestrebungen, i-doit in eine weitere Sprache zu übersetzen, freuen wir uns über eine Nachricht.

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 → Darstellung → Sprache durch Browser wählen 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.

Sprache pro Benutzer

Beim ersten Anmelden in i-doit erhält der Benutzer automatisch die deutsche Oberfläche. Jeder Benutzer kann individuell einstellen, welche Sprache als Standard gesetzt werden soll. Dies geschieht unter Verwaltung → Benutzereinstellungen → Darstellung → Sprache. 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:

SprachkonstanteEnglischDeutsch
LC__CMDB__OBJTYPE__ROOMRoomRaum

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).

DateiBemerkungUpdate-sicher?
de_custom.example.inc.phpBeispiel-Datei für benutzerdefinierte Anpassungen an der deutschen Sprache (wird für die Web GUI ignoriert)nein
de_custom.inc.phpBenutzerdefinierte Anpassungen an der deutschen Sprache (optional)ja
de.inc.phpDeutsche Sprachenein
en_custom.inc.phpBenutzerdefinierte Anpassungen an der englischen Sprache (optional)ja
en.inc.phpEnglisch Sprachenein

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 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:

$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:

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 Objekttypgruppen

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 Objekttypgruppe 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 → CMDB Einstellungen → Objekttyp Konfiguration → [Objekttypgruppe] → [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.