Lokalisierung#
i-doit unterstützt Mehrsprachigkeit - diese beschränkt sich aktuell auf Deutsch und Englisch und wird mit Hilfe von "Übersetzungsdateien" abgebildet. Diese Dateien befinden sich im Add-on-Verzeichnis unterhalb des "lang"-Ordners und folgen dem Namensschema "
Globale Übersetzungen#
In i-doit gibt es viele (>400) "universelle" Übersetzungen, wie z.B. "Bezeichnung", "Ja", "Nein" und viele weitere. Diese befinden sich in den i-doit-eigenen Übersetzungsdateien (z.B. "
Eigene Übersetzungen#
Wir verwenden sogenannte "Sprachkonstanten", die immer mit dem String "LC_" beginnen und den Identifier des Add-ons im Namen tragen, um die Einzigartigkeit zu garantieren und eventuelle Kollisionen zu verhindern. Eine weitere "Gruppierung" der Konstanten geschieht über die Wort-Trennung durch zwei Unterstriche ("__"). Diese Gruppierung wird benutzt, um beispielsweise Konstanten für die Navigation, Rechtesystem oder Fehlermeldungen voneinander zu trennen.
Der Inhalt einer Übersetzungsdatei sieht folgendermaßen aus ("
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
Seit i-doit 1.10.2 müssen Übersetzungen nicht mehr händisch in der init.php registriert werden. i-doit wird die nötigen Übersetzungen selbstständig einbinden.
Verwendung im PHP-Code#
Um Übersetzungen im PHP-Code zu nutzen, muss der "language"-Service innerhalb des Dependency-Injection-Containers benutzt werden:
1 2 3 4 5 6 7 |
|
Verwendung in Smarty-Templates#
Wir liefern ein Smarty-Plugin aus, um auch im Template-Kontext auf übersetzte Sprachkonstanten zuzugreifen:
1 |
|
Verwendung in Javascript#
Für die Verwendung in Javascript muss ein kleiner Umweg über ein Smarty-Template gegangen werden. Hier muss unter Umständen mit einem Parameter gearbeitet werden, damit keine HTML-Entities im Javascript ausgegeben werden:
1 2 3 4 5 6 7 8 9 10 11 |
|
Alternativ ist es möglich, Übersetzungen mittels Ajax-Request oder Javascript-Dateien mittels Smarty "include" zu laden, um dann innerhalb der Javascript-Datei mit Smarty zu arbeiten - davon raten wir allerdings ab!
Smarty in Javascript
Wir empfehlen, jeglichen Smarty-Code aus Javascript-Dateien fernzuhalten!