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.
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
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.
Bei der Funktion Translate() gilt nicht die Browsersprache sondern die Serversprache. Das war mir nicht bewusst. Nun weiß ich es
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