Translate liefert keine Übersetzung

Bei einem Anwender (Doctor Snuggles) kommt es beim Modul iCal von mir zu einem Fehler, den ich mir nicht erklären kann.

Da wird eine Übersetzung nicht gefunden. Das Problem tritt aber nur bei ihm (Raspi) auf.

Der Text wird in der Form bei onClick über die Funktion Translate() geholt. Eigentlich ein gewöhnliches Vorgehen.

Auch ein Testprogramm liefert bei ihm keine Übersetzungen:

$firstCalID = IPS_GetInstanceListByModuleID('{5127CDDC-2859-4223-A870-4D26AC83622C}')[0];

$module = new IPSModule($firstCalID);

echo $module->Translate("In this instance, the parameters for a single calendar access are set.") . PHP_EOL;
echo $module->Translate("The following dates are read:") . PHP_EOL;

Wieso schlägt Translate fehl, aber die Texte der Form selber sind übersetzt? Da bräuchte ich einmal Hilfe.

Burkhard

Falsche Sprache auf dem Server eingestellt?
Imho übersetzt die Konsole die ausgelieferte Form. Das translate benötigt man ja nur für bestimmte Rahmenbedingungen, wie printf o.ä.
Michael

Das vermute ich auch, kenne mich aber mit Raspi nicht so aus. Kann ich das mit einer PHP Funktion überprüfen?

Verstehe, du meinst, sie nimmt dann die Spracheinstellung des Clients oder des WebBrowser. Das würde es erklären.

Burkhard

Logfile von Symcon protokolliert beim starten die Sprache.
Wie man es auf der Shell prüfen kann… Vergessen. Steht aber hier irgendwo im Forum [emoji28]
Michael

Da die Konsole die Übersetzung übernimmt, ist hier nicht die Serversprache, sondern die Browser-/Systemsprache zur Konsole relevant. Wenn also der Rest der Konsole deutsch angezeigt wird, dann sollten auch die Modulseiten auf Deutsch übersetzt werden. Vielleicht ist da einfach was beim Kopieren kaputt gegangen? Ich würde einfach mal probieren das Modul neu zu installieren.

Hallo Niels,

Bei der Funktion Translate() gilt nicht die Browsersprache sondern die Serversprache. Das war mir nicht bewusst. Nun weiß ich es :slight_smile:

In der Doku könnte es etwas deutlicher stehen. Dort ist nur von eingestellter Systemsprache die Rede, aber nicht davon, welches System gemeint ist (Server/Client).

Aber im nachhinein ist es eigentlich logisch:rolleyes:

Habe ich teilweise auch gemacht, ist aber eigentlich Quark.
Wenn der String so in der local.json steht, sollte die Konsole das übersetzen.
Imho braucht man translate nur, wenn man Übersetzungen außerhalb der Konsole benötigt. Oder halt fertig übersetzt an die Konsole übergeben muss, weil der endgültige String eine dynamische Komponente hat.
Michael