ESPuino nun auch (endlich) mit Lokalisierung

@laszloh hat sich mit einem PR dem Thema Lokalisierung angenommen. Damit ist es nun nicht mehr notwendig, zwei html-Files zu editieren. Vielen Dank an dieser Stelle!

Unterhalb von html/locales gibt es nun die Files de.json und en.json. Auf dessen Inhalte wird dann in den html-Files referenziert - das gilt auch für den Access Point.

Die Sprache kann man dann direkt in der GUI „on the fly“ umstellen.

Weiterhin gibt es einen neuen Ordner „dist“, in dem zur Kompilierzeit die html-Files „minimized“ werden - das Gleiche gilt für die json-Files. Das ist dann letztlich das, was geflasht wird.

Aus meiner Sicht müsste jetzt alles funktionieren, das Design sein wie vorher und alles übersetzt sein. Testet mal.

4 „Gefällt mir“

endlich Sprachenumstellung , toll.

Auf dem iPhone sind die Buttons der Kopfzeile etwas verschoben

Kommt der Webserver bei euch jetzt auch nicht mehr mit „Ä“ und „Ö“ usw. zurecht?
@laszloh ist das nur ein Problem bei mir?
grafik

Hallo,
Bezüglich dem Layout schaue ich, ob ich da auf die Kürze etwas zusammenschustern kann.

Nein, bei mir funktionieren Sonderzeichen. Die Zeichen deuten auf ein Problem bei der Kodierung der Datei hin (entweder beim Einbetten in den Source oder bei der Übertragung an den Browser).
Kannst du mal schauen, welche Kodierung die Datei html\locales\de.json hat (zB mit Notepad++ )? Sollte utf8 sein.

Wenn es utf8 ist, bräuchte ich, welchen Browser (am Besten mit Version) du verwendest.

Jo, ist auch UTF-8 bei mir. Hatte das immer mal wieder beim Lesen von Dateien in Python 3, dass man die mit den entsprechenden Paramtern (encoding=„utf-8“) lesen sollte da sonst das Encoding zuschlägt.
Mein Browser ist der Firefox (109.0.1 (64-Bit)). In Chrome über das Handy sieht es identisch aus.
Ich verwende aktuell Arduino 2. Keine Ahnung ob da eine andere Pyhton-Version dahinter steckt, werde das aber mal noch bisschen weiter testen und analysieren… Vermutlich reicht es schon im python script beim open das hinzuzufügen.
Komme vermutlich erst morgen voll dazu das auszuprobieren.
Vielen Dank schonmal für deine Antwort und die Ansätzte!

Gerade ganz kurz getestet und tatsächlich löst es mein problem wenn ich im python-Script bein den open(„r“) noch das encoding auf utf-8 festlege.
Habe das testweise einfach an allen drei Stellen eingebaut.
Müsste man nur noch herausfinden ob das allgemeingültig über die verschiedenen Versionen hinweg valide ist auf diese Art oder nicht…

Habe jetzt noch folgende Probleme (die mir beim Testen des PR zuvor nicht aufgefallen waren oder neu sind):

Kontextmenu hat noch UTF-8 Encoding Problem:

OK, könnte das gleiche Problem sein wie zuvor beschrieben, also schon in Arbeit?:

Dateiupload ist nicht vollständig übersetzt:

und auch der Text „few seconds remaining…“ fehlt noch in der Übersetzung.

Anzeige hier mit Win11 MS-Edge Browser.

Edit:
Ändern des Phyton-Skript in open("r", encoding='utf8') an allen Stellen behebt die Umlautprobleme bei mir auch!

1 „Gefällt mir“

Sehr interessant, der default encoding scheint bei uns unterschiedlich zu sein. Könnt ihr die Ausgabe von python -c 'import sys; print(sys.getdefaultencoding())' und python --version von einem platformio terminal posten (und welche Windows Version ihr habt)?
Nur interessenshalber, bei mir ist es unter Windows 11 und pyhton 3.9.10: utf-8 (was auch erklärt, wieso es nicht auftritt).

Ich schreibe morgen ein Patch dafür und für die fehlende Übersetzung.

1 „Gefällt mir“

Unter Mac OS 13.2 auch.
Python 3.9.6

python -c "import sys; print(sys.getdefaultencoding())"
utf-8

python --version
Python 3.10.8

Win 10. Habe trozdem die ecnoding-probleme wenn ich nicht das encoding beim open manuell festlege.

Ich habe ein bugfix für beide Probleme (Encoding & Übersetzung) fertig gestellt: GitHub - laszloh/ESPuino at i18n_bugfix gepusht. Könnt ihr die branch testen, ob der Fehler bei euch auch gefixt ist?

lg,
Laszlo

1 „Gefällt mir“

Funktioniert bei mir mit dem Bugfix. Vielen Dank!

Sorry, wenn ich mich gleich nochmal melde :slight_smile: . Ich hoffe du bekommst noch nit die Krise ^^.
habe nochmal einen (kleinen) Bug entdeckt und bei mir auf meinem Text-To-Speech-Branch gefixed:
Die Mod-Zuweisung im html und in der englishen json-Datei haben den Modus „Bluetooth Source“ vergessen. Dadurch ist die Mod-Zuweisung im unteren Berech bei deutscher Webserver-Sprache ungültig.
Hier siehst du vielleicht besser was ich damit meine:

Lässt sich so vermutlich wegen meines neuen Modus nicht 1:1 übernehmen, aber sollte recht schnell korrigiert sein.

Kein Problem, ich kriege nur langsam die Krise wegen Python und FastLED (templates sind „lustig“). Da kommen einige tief hängende Früchte gerade recht :smiley:

Stimmt, da fehlt der ganze Befehl 141 in der englischen Management. Hab es eingefügt und die Struktur im json an der Stelle (und bei den Playmodi) geändert. Jetzt nutze ich statt einem Array ein Object mit den Befehl-Kodes als Key.

Ist eine größere Änderung, sollte es aber in Zukunft einfacher machen neue Übersetzungen und Befehle einzubauen.

1 „Gefällt mir“