« Zurück zu Produkt

Dokumentation

IPS_Translate

 string IPS_Translate (int $InstanzID, string $Text) 

Parameterliste

InstanzID

ID der Instanz, deren Modul die Übersetzungen liefert

Text

Zu übersetzender Text (in der Regel der englische Originaltext)

Rückgabewert

Übersetzter Text oder Text unverändert, falls keine Übersetzung existiert

Beschreibung

Die Funktion übersetzt Text mit den Übersetzungen des Moduls der Instanz mit der ID InstanzID in die Systemsprache (IPS_GetSystemLanguage). Sie entspricht damit dem Aufruf von Translate innerhalb eines Moduls, kann aber von außerhalb genutzt werden, z.B. um Texte eines Moduls in einem Skript in der gleichen Sprache auszugeben.

Gesucht wird ein Eintrag, dessen Schlüssel exakt Text entspricht. Bei PHP-Modulen stammen die Übersetzungen aus der locale.json des Moduls, bei eingebauten Modulen aus den mitgelieferten Übersetzungen des Moduls. Für die Systemsprache wird zuerst die vollständige Sprachangabe (z.B. de_AT), dann die Sprache mit gleichlautendem Ländercode (de_DE) und zuletzt nur der Sprachcode (de) gesucht.

Existiert keine locale.json, keine Übersetzung für die Systemsprache oder kein passender Eintrag, wird Text unverändert zurückgegeben. Ist die locale.json eines PHP-Moduls kein gültiges JSON, schlägt die Funktion mit "Cannot parse locale.json" fehl. Platzhalter wie %s werden nicht ersetzt; dies kann nach der Übersetzung z.B. mit sprintf erfolgen.

Beispiel

echo IPS_Translate(12345, "Users");
// liefert z.B.: Benutzer
// (ohne passende Übersetzung wird "Users" unverändert zurückgegeben)

printf(IPS_Translate(12345, "The current time is %s"), date("H:i"));
Haben Sie noch Fragen?