Implement led page

This commit is contained in:
feedc0de committed 2026-08-19 08:24:06 +02:00
1 parent 9461e79131
commit b60d3ea63e
10 files changed
+1910 -11

No files matched your search

+1
View File
@@ -121,6 +121,7 @@ qt_add_qml_module(evcharger-app
qml/KwhLimitPage.qml
qml/LanguageSelector.qml
qml/LedPage.qml
qml/LedRingPreview.qml
qml/LicensesPage.qml
qml/LoadBalancingPage.qml
qml/LogicModeButton.qml
+209 -1
View File
@@ -2878,10 +2878,218 @@
<context>
<name>LedPage</name>
<message>
<location filename="../qml/LedPage.qml" line="6"/>
<location filename="../qml/LedPage.qml" line="16"/>
<source>LED</source>
<translation>LED</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="23"/>
<location filename="../qml/LedPage.qml" line="60"/>
<location filename="../qml/LedPage.qml" line="72"/>
<location filename="../qml/LedPage.qml" line="85"/>
<source>Ready</source>
<translation>Klar</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="24"/>
<source>Color shown while the charger is ready and no car is connected.</source>
<translation>Farve, der vises, når laderen er klar, og ingen bil er tilsluttet.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="31"/>
<location filename="../qml/LedPage.qml" line="62"/>
<location filename="../qml/LedPage.qml" line="73"/>
<location filename="../qml/LedPage.qml" line="86"/>
<source>Waiting for car</source>
<translation>Venter på bil</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="32"/>
<source>Color shown while the charger is waiting for the vehicle.</source>
<translation>Farve, der vises, mens laderen venter på køretøjet.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="39"/>
<location filename="../qml/LedPage.qml" line="64"/>
<location filename="../qml/LedPage.qml" line="74"/>
<location filename="../qml/LedPage.qml" line="88"/>
<source>Charging</source>
<translation>Oplader</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="40"/>
<source>Color of the rotating tails while the vehicle is charging.</source>
<translation>Farven på de roterende lyshaler, mens køretøjet oplades.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="47"/>
<location filename="../qml/LedPage.qml" line="66"/>
<location filename="../qml/LedPage.qml" line="75"/>
<location filename="../qml/LedPage.qml" line="89"/>
<source>Finished</source>
<translation>Fuldført</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="48"/>
<source>Color shown when charging has finished.</source>
<translation>Farve, der vises, når opladningen er fuldført.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="58"/>
<source>Live device</source>
<translation>Direkte fra enheden</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="76"/>
<source>Live LED ring</source>
<translation>LED-ring i realtid</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="83"/>
<source>No animation data</source>
<translation>Ingen animationsdata</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="87"/>
<source>Waiting for authorization</source>
<translation>Venter på godkendelse</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="90"/>
<source>Rainbow</source>
<translation>Regnbue</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="91"/>
<source>Pulsating</source>
<translation>Pulserende</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="92"/>
<source>Firmware update</source>
<translation>Firmwareopdatering</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="93"/>
<source>Firmware update finished</source>
<translation>Firmwareopdateringen er fuldført</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="94"/>
<source>Firmware update failed</source>
<translation>Firmwareopdateringen mislykkedes</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="102"/>
<source>Configured preview</source>
<translation>Konfigureret forhåndsvisning</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="192"/>
<source>Adjust how the LED ring communicates charging states and preview the result before using it on the charger.</source>
<translation>Juster, hvordan LED-ringen viser opladningstilstande, og forhåndsvis resultatet, før du bruger det på laderen.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="198"/>
<source>LED ring preview</source>
<translation>Forhåndsvisning af LED-ring</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="207"/>
<source>Preview</source>
<translation>Forhåndsvisning</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="250"/>
<source>The live preview follows the animation reported by the charger. Select another state to preview its configured color; the charging preview includes the rotating tails.</source>
<translation>Forhåndsvisningen i realtid følger den animation, som laderen rapporterer. Vælg en anden tilstand for at forhåndsvise dens konfigurerede farve; opladningsforhåndsvisningen indeholder de roterende lyshaler.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="259"/>
<source>Brightness</source>
<translation>Lysstyrke</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="264"/>
<source>LED brightness</source>
<translation>LED-lysstyrke</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="268"/>
<location filename="../qml/LedPage.qml" line="276"/>
<source>%1%</source>
<translation>%1%</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="293"/>
<source>Lower brightness is less distracting at night. Set it to zero to turn the ring off completely.</source>
<translation>Lavere lysstyrke er mindre forstyrrende om natten. Indstil den til nul for at slukke ringen helt.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="302"/>
<source>Status colors</source>
<translation>Statusfarver</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="308"/>
<source>Tap a charging state to choose the color used by the LED ring.</source>
<translation>Tryk på en opladningstilstand for at vælge den farve, LED-ringen bruger.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="377"/>
<source>Energy saving</source>
<translation>Energibesparelse</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="383"/>
<source>Energy saving on</source>
<translation>Energibesparelse til</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="383"/>
<source>Energy saving off</source>
<translation>Energibesparelse fra</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="389"/>
<source>Energy saving turns off status lighting when it is not needed. Charging and important warnings remain visible.</source>
<translation>Energibesparelse slukker statusbelysningen, når den ikke er nødvendig. Opladning og vigtige advarsler forbliver synlige.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="397"/>
<source>Keep mode indicators on</source>
<translation>Behold tilstandsindikatorerne tændt</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="403"/>
<source>Keep the small charging-mode indicators visible while the LED ring is saving energy.</source>
<translation>Behold de små opladningstilstandsindikatorer synlige, mens LED-ringen sparer energi.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="410"/>
<source>Service diagnostics</source>
<translation>Servicediagnostik</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="416"/>
<source>These service options can replace normal status animations. Leave them off unless you are diagnosing the LED hardware.</source>
<translation>Disse serviceindstillinger kan erstatte normale statusanimationer. Lad dem være slået fra, medmindre du diagnosticerer LED-hardwaren.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="424"/>
<source>Factory LED test</source>
<translation>Fabrikkens LED-test</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="430"/>
<source>LED diagnostics</source>
<translation>LED-diagnostik</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="435"/>
<source>Choose color for %1</source>
<translation>Vælg farve til %1</translation>
</message>
</context>
<context>
<name>LicensesPage</name>
+211 -3
View File
@@ -3053,10 +3053,218 @@
<context>
<name>LedPage</name>
<message>
<location filename="../qml/LedPage.qml" line="6"/>
<location filename="../qml/LedPage.qml" line="16"/>
<source>LED</source>
<translation>LED</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="23"/>
<location filename="../qml/LedPage.qml" line="60"/>
<location filename="../qml/LedPage.qml" line="72"/>
<location filename="../qml/LedPage.qml" line="85"/>
<source>Ready</source>
<translation>Bereit</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="24"/>
<source>Color shown while the charger is ready and no car is connected.</source>
<translation>Farbe, die angezeigt wird, wenn der Charger bereit und kein Auto verbunden ist.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="31"/>
<location filename="../qml/LedPage.qml" line="62"/>
<location filename="../qml/LedPage.qml" line="73"/>
<location filename="../qml/LedPage.qml" line="86"/>
<source>Waiting for car</source>
<translation>Warte auf Auto</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="32"/>
<source>Color shown while the charger is waiting for the vehicle.</source>
<translation>Farbe, die angezeigt wird, während der Charger auf das Fahrzeug wartet.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="39"/>
<location filename="../qml/LedPage.qml" line="64"/>
<location filename="../qml/LedPage.qml" line="74"/>
<location filename="../qml/LedPage.qml" line="88"/>
<source>Charging</source>
<translation>Lädt</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="40"/>
<source>Color of the rotating tails while the vehicle is charging.</source>
<translation>Farbe der rotierenden Schweife, während das Fahrzeug lädt.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="47"/>
<location filename="../qml/LedPage.qml" line="66"/>
<location filename="../qml/LedPage.qml" line="75"/>
<location filename="../qml/LedPage.qml" line="89"/>
<source>Finished</source>
<translation>Beendet</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="48"/>
<source>Color shown when charging has finished.</source>
<translation>Farbe, die nach Abschluss des Ladevorgangs angezeigt wird.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="58"/>
<source>Live device</source>
<translation>Live-Gerät</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="76"/>
<source>Live LED ring</source>
<translation>Live-LED-Ring</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="83"/>
<source>No animation data</source>
<translation>Keine Animationsdaten</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="87"/>
<source>Waiting for authorization</source>
<translation>Warte auf Autorisierung</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="90"/>
<source>Rainbow</source>
<translation>Regenbogen</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="91"/>
<source>Pulsating</source>
<translation>Pulsierend</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="92"/>
<source>Firmware update</source>
<translation>Firmware-Update</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="93"/>
<source>Firmware update finished</source>
<translation>Firmware-Update abgeschlossen</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="94"/>
<source>Firmware update failed</source>
<translation>Firmware-Update fehlgeschlagen</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="102"/>
<source>Configured preview</source>
<translation>Konfigurierte Vorschau</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="192"/>
<source>Adjust how the LED ring communicates charging states and preview the result before using it on the charger.</source>
<translation>Passe an, wie der LED-Ring Ladezustände anzeigt, und prüfe das Ergebnis in der Vorschau, bevor du es am Charger verwendest.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="198"/>
<source>LED ring preview</source>
<translation>LED-Ring-Vorschau</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="207"/>
<source>Preview</source>
<translation>Vorschau</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="250"/>
<source>The live preview follows the animation reported by the charger. Select another state to preview its configured color; the charging preview includes the rotating tails.</source>
<translation>Die Live-Vorschau folgt der vom Charger gemeldeten Animation. Wähle einen anderen Zustand, um dessen konfigurierte Farbe zu prüfen; die Ladevorschau enthält die rotierenden Schweife.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="259"/>
<source>Brightness</source>
<translation>Helligkeit</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="264"/>
<source>LED brightness</source>
<translation>LED-Helligkeit</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="268"/>
<location filename="../qml/LedPage.qml" line="276"/>
<source>%1%</source>
<translation>%1%</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="293"/>
<source>Lower brightness is less distracting at night. Set it to zero to turn the ring off completely.</source>
<translation>Geringere Helligkeit stört nachts weniger. Stelle sie auf null, um den Ring vollständig auszuschalten.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="302"/>
<source>Status colors</source>
<translation>Statusfarben</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="308"/>
<source>Tap a charging state to choose the color used by the LED ring.</source>
<translation>Tippe auf einen Ladezustand, um die vom LED-Ring verwendete Farbe auszuwählen.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="377"/>
<source>Energy saving</source>
<translation>Energiesparen</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="383"/>
<source>Energy saving on</source>
<translation>Energiesparen ein</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="383"/>
<source>Energy saving off</source>
<translation>Energiesparen aus</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="389"/>
<source>Energy saving turns off status lighting when it is not needed. Charging and important warnings remain visible.</source>
<translation>Beim Energiesparen wird die Statusbeleuchtung ausgeschaltet, wenn sie nicht benötigt wird. Laden und wichtige Warnungen bleiben sichtbar.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="397"/>
<source>Keep mode indicators on</source>
<translation>Modusanzeigen eingeschaltet lassen</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="403"/>
<source>Keep the small charging-mode indicators visible while the LED ring is saving energy.</source>
<translation>Lasse die kleinen Lademodus-Anzeigen sichtbar, während der LED-Ring Energie spart.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="410"/>
<source>Service diagnostics</source>
<translation>Servicediagnose</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="416"/>
<source>These service options can replace normal status animations. Leave them off unless you are diagnosing the LED hardware.</source>
<translation>Diese Serviceoptionen können normale Statusanimationen ersetzen. Lasse sie ausgeschaltet, sofern du nicht die LED-Hardware diagnostizierst.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="424"/>
<source>Factory LED test</source>
<translation>Werkseitiger LED-Test</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="430"/>
<source>LED diagnostics</source>
<translation>LED-Diagnose</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="435"/>
<source>Choose color for %1</source>
<translation>Farbe für %1 wählen</translation>
</message>
</context>
<context>
<name>LicensesPage</name>
@@ -3382,7 +3590,7 @@
<message>
<location filename="../qml/OcppPage.qml" line="134"/>
<source>Charging</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Lädt</translation>
</message>
<message>
<location filename="../qml/OcppPage.qml" line="135"/>
@@ -4771,7 +4979,7 @@
<message>
<location filename="../qml/WiFiPage.qml" line="141"/>
<source>Finished</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Beendet</translation>
</message>
<message>
<location filename="../qml/WiFiPage.qml" line="142"/>
+209 -1
View File
@@ -2878,10 +2878,218 @@
<context>
<name>LedPage</name>
<message>
<location filename="../qml/LedPage.qml" line="6"/>
<location filename="../qml/LedPage.qml" line="16"/>
<source>LED</source>
<translation>LED</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="23"/>
<location filename="../qml/LedPage.qml" line="60"/>
<location filename="../qml/LedPage.qml" line="72"/>
<location filename="../qml/LedPage.qml" line="85"/>
<source>Ready</source>
<translation>Valmiina</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="24"/>
<source>Color shown while the charger is ready and no car is connected.</source>
<translation>Väri, joka näytetään, kun laturi on valmiina eikä autoa ole yhdistetty.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="31"/>
<location filename="../qml/LedPage.qml" line="62"/>
<location filename="../qml/LedPage.qml" line="73"/>
<location filename="../qml/LedPage.qml" line="86"/>
<source>Waiting for car</source>
<translation>Odottaa autoa</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="32"/>
<source>Color shown while the charger is waiting for the vehicle.</source>
<translation>Väri, joka näytetään, kun laturi odottaa ajoneuvoa.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="39"/>
<location filename="../qml/LedPage.qml" line="64"/>
<location filename="../qml/LedPage.qml" line="74"/>
<location filename="../qml/LedPage.qml" line="88"/>
<source>Charging</source>
<translation>Lataus</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="40"/>
<source>Color of the rotating tails while the vehicle is charging.</source>
<translation>Pyörivien valovanojen väri ajoneuvon latauksen aikana.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="47"/>
<location filename="../qml/LedPage.qml" line="66"/>
<location filename="../qml/LedPage.qml" line="75"/>
<location filename="../qml/LedPage.qml" line="89"/>
<source>Finished</source>
<translation>Lataus valmis</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="48"/>
<source>Color shown when charging has finished.</source>
<translation>Väri, joka näytetään latauksen valmistuttua.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="58"/>
<source>Live device</source>
<translation>Laite reaaliajassa</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="76"/>
<source>Live LED ring</source>
<translation>Reaaliaikainen LED-rengas</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="83"/>
<source>No animation data</source>
<translation>Ei animaatiotietoja</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="87"/>
<source>Waiting for authorization</source>
<translation>Odotetaan valtuutusta</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="90"/>
<source>Rainbow</source>
<translation>Sateenkaari</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="91"/>
<source>Pulsating</source>
<translation>Sykkivä</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="92"/>
<source>Firmware update</source>
<translation>Laiteohjelmistopäivitys</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="93"/>
<source>Firmware update finished</source>
<translation>Laiteohjelmistopäivitys valmis</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="94"/>
<source>Firmware update failed</source>
<translation>Laiteohjelmistopäivitys epäonnistui</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="102"/>
<source>Configured preview</source>
<translation>Määritetty esikatselu</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="192"/>
<source>Adjust how the LED ring communicates charging states and preview the result before using it on the charger.</source>
<translation>Säädä, miten LED-rengas ilmaisee lataustilat, ja esikatsele tulos ennen sen käyttämistä laturissa.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="198"/>
<source>LED ring preview</source>
<translation>LED-renkaan esikatselu</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="207"/>
<source>Preview</source>
<translation>Esikatselu</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="250"/>
<source>The live preview follows the animation reported by the charger. Select another state to preview its configured color; the charging preview includes the rotating tails.</source>
<translation>Reaaliaikainen esikatselu seuraa laturin ilmoittamaa animaatiota. Valitse toinen tila nähdäksesi sen määritetyn värin; latauksen esikatselu sisältää pyörivät valovanat.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="259"/>
<source>Brightness</source>
<translation>Kirkkaus</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="264"/>
<source>LED brightness</source>
<translation>LED-kirkkaus</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="268"/>
<location filename="../qml/LedPage.qml" line="276"/>
<source>%1%</source>
<translation>%1%</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="293"/>
<source>Lower brightness is less distracting at night. Set it to zero to turn the ring off completely.</source>
<translation>Pienempi kirkkaus häiritsee vähemmän yöllä. Aseta arvoksi nolla sammuttaaksesi renkaan kokonaan.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="302"/>
<source>Status colors</source>
<translation>Tilavärit</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="308"/>
<source>Tap a charging state to choose the color used by the LED ring.</source>
<translation>Valitse LED-renkaan käyttämä väri napauttamalla lataustilaa.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="377"/>
<source>Energy saving</source>
<translation>Energiansäästö</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="383"/>
<source>Energy saving on</source>
<translation>Energiansäästö käytössä</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="383"/>
<source>Energy saving off</source>
<translation>Energiansäästö pois käytöstä</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="389"/>
<source>Energy saving turns off status lighting when it is not needed. Charging and important warnings remain visible.</source>
<translation>Energiansäästö sammuttaa tilavalot, kun niitä ei tarvita. Lataus ja tärkeät varoitukset pysyvät näkyvissä.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="397"/>
<source>Keep mode indicators on</source>
<translation>Pidä tilan merkkivalot päällä</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="403"/>
<source>Keep the small charging-mode indicators visible while the LED ring is saving energy.</source>
<translation>Pidä pienet lataustilan merkkivalot näkyvissä, kun LED-rengas säästää energiaa.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="410"/>
<source>Service diagnostics</source>
<translation>Huoltodiagnostiikka</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="416"/>
<source>These service options can replace normal status animations. Leave them off unless you are diagnosing the LED hardware.</source>
<translation>Nämä huoltoasetukset voivat korvata normaalit tila-animaatiot. Jätä ne pois käytöstä, ellet diagnosoi LED-laitteistoa.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="424"/>
<source>Factory LED test</source>
<translation>Tehtaan LED-testi</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="430"/>
<source>LED diagnostics</source>
<translation>LED-diagnostiikka</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="435"/>
<source>Choose color for %1</source>
<translation>Valitse kohteen %1 väri</translation>
</message>
</context>
<context>
<name>LicensesPage</name>
+209 -1
View File
@@ -2878,10 +2878,218 @@
<context>
<name>LedPage</name>
<message>
<location filename="../qml/LedPage.qml" line="6"/>
<location filename="../qml/LedPage.qml" line="16"/>
<source>LED</source>
<translation>LED</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="23"/>
<location filename="../qml/LedPage.qml" line="60"/>
<location filename="../qml/LedPage.qml" line="72"/>
<location filename="../qml/LedPage.qml" line="85"/>
<source>Ready</source>
<translation>Klar</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="24"/>
<source>Color shown while the charger is ready and no car is connected.</source>
<translation>Farge som vises når laderen er klar og ingen bil er tilkoblet.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="31"/>
<location filename="../qml/LedPage.qml" line="62"/>
<location filename="../qml/LedPage.qml" line="73"/>
<location filename="../qml/LedPage.qml" line="86"/>
<source>Waiting for car</source>
<translation>Venter på bil</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="32"/>
<source>Color shown while the charger is waiting for the vehicle.</source>
<translation>Farge som vises mens laderen venter på kjøretøyet.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="39"/>
<location filename="../qml/LedPage.qml" line="64"/>
<location filename="../qml/LedPage.qml" line="74"/>
<location filename="../qml/LedPage.qml" line="88"/>
<source>Charging</source>
<translation>Lader</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="40"/>
<source>Color of the rotating tails while the vehicle is charging.</source>
<translation>Fargen på de roterende lyshalene mens kjøretøyet lades.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="47"/>
<location filename="../qml/LedPage.qml" line="66"/>
<location filename="../qml/LedPage.qml" line="75"/>
<location filename="../qml/LedPage.qml" line="89"/>
<source>Finished</source>
<translation>Fullført</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="48"/>
<source>Color shown when charging has finished.</source>
<translation>Farge som vises når ladingen er fullført.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="58"/>
<source>Live device</source>
<translation>Direkte fra enheten</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="76"/>
<source>Live LED ring</source>
<translation>LED-ring i sanntid</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="83"/>
<source>No animation data</source>
<translation>Ingen animasjonsdata</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="87"/>
<source>Waiting for authorization</source>
<translation>Venter på godkjenning</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="90"/>
<source>Rainbow</source>
<translation>Regnbue</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="91"/>
<source>Pulsating</source>
<translation>Pulserende</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="92"/>
<source>Firmware update</source>
<translation>Fastvareoppdatering</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="93"/>
<source>Firmware update finished</source>
<translation>Fastvareoppdateringen er fullført</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="94"/>
<source>Firmware update failed</source>
<translation>Fastvareoppdateringen mislyktes</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="102"/>
<source>Configured preview</source>
<translation>Konfigurert forhåndsvisning</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="192"/>
<source>Adjust how the LED ring communicates charging states and preview the result before using it on the charger.</source>
<translation>Juster hvordan LED-ringen viser ladestatus, og forhåndsvis resultatet før du bruker det på laderen.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="198"/>
<source>LED ring preview</source>
<translation>Forhåndsvisning av LED-ring</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="207"/>
<source>Preview</source>
<translation>Forhåndsvisning</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="250"/>
<source>The live preview follows the animation reported by the charger. Select another state to preview its configured color; the charging preview includes the rotating tails.</source>
<translation>Forhåndsvisningen i sanntid følger animasjonen som laderen rapporterer. Velg en annen tilstand for å forhåndsvise den konfigurerte fargen; ladeforhåndsvisningen inkluderer de roterende lyshalene.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="259"/>
<source>Brightness</source>
<translation>Lysstyrke</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="264"/>
<source>LED brightness</source>
<translation>LED-lysstyrke</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="268"/>
<location filename="../qml/LedPage.qml" line="276"/>
<source>%1%</source>
<translation>%1%</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="293"/>
<source>Lower brightness is less distracting at night. Set it to zero to turn the ring off completely.</source>
<translation>Lavere lysstyrke er mindre forstyrrende om natten. Sett den til null for å slå av ringen helt.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="302"/>
<source>Status colors</source>
<translation>Statusfarger</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="308"/>
<source>Tap a charging state to choose the color used by the LED ring.</source>
<translation>Trykk på en ladestatus for å velge fargen som LED-ringen bruker.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="377"/>
<source>Energy saving</source>
<translation>Energisparing</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="383"/>
<source>Energy saving on</source>
<translation>Energisparing på</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="383"/>
<source>Energy saving off</source>
<translation>Energisparing av</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="389"/>
<source>Energy saving turns off status lighting when it is not needed. Charging and important warnings remain visible.</source>
<translation>Energisparing slår av statusbelysningen når den ikke trengs. Lading og viktige advarsler forblir synlige.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="397"/>
<source>Keep mode indicators on</source>
<translation>Behold modusindikatorene på</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="403"/>
<source>Keep the small charging-mode indicators visible while the LED ring is saving energy.</source>
<translation>Behold de små lademodusindikatorene synlige mens LED-ringen sparer energi.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="410"/>
<source>Service diagnostics</source>
<translation>Servicediagnostikk</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="416"/>
<source>These service options can replace normal status animations. Leave them off unless you are diagnosing the LED hardware.</source>
<translation>Disse servicealternativene kan erstatte normale statusanimasjoner. La dem være av med mindre du feilsøker LED-maskinvaren.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="424"/>
<source>Factory LED test</source>
<translation>LED-test fra fabrikk</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="430"/>
<source>LED diagnostics</source>
<translation>LED-diagnostikk</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="435"/>
<source>Choose color for %1</source>
<translation>Velg farge for %1</translation>
</message>
</context>
<context>
<name>LicensesPage</name>
+209 -1
View File
@@ -2878,10 +2878,218 @@
<context>
<name>LedPage</name>
<message>
<location filename="../qml/LedPage.qml" line="6"/>
<location filename="../qml/LedPage.qml" line="16"/>
<source>LED</source>
<translation>LED</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="23"/>
<location filename="../qml/LedPage.qml" line="60"/>
<location filename="../qml/LedPage.qml" line="72"/>
<location filename="../qml/LedPage.qml" line="85"/>
<source>Ready</source>
<translation>Klar</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="24"/>
<source>Color shown while the charger is ready and no car is connected.</source>
<translation>Färg som visas när laddaren är klar och ingen bil är ansluten.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="31"/>
<location filename="../qml/LedPage.qml" line="62"/>
<location filename="../qml/LedPage.qml" line="73"/>
<location filename="../qml/LedPage.qml" line="86"/>
<source>Waiting for car</source>
<translation>Väntar på bil</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="32"/>
<source>Color shown while the charger is waiting for the vehicle.</source>
<translation>Färg som visas medan laddaren väntar på fordonet.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="39"/>
<location filename="../qml/LedPage.qml" line="64"/>
<location filename="../qml/LedPage.qml" line="74"/>
<location filename="../qml/LedPage.qml" line="88"/>
<source>Charging</source>
<translation>Laddar</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="40"/>
<source>Color of the rotating tails while the vehicle is charging.</source>
<translation>Färgen på de roterande ljussvansarna medan fordonet laddas.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="47"/>
<location filename="../qml/LedPage.qml" line="66"/>
<location filename="../qml/LedPage.qml" line="75"/>
<location filename="../qml/LedPage.qml" line="89"/>
<source>Finished</source>
<translation>Slutförd</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="48"/>
<source>Color shown when charging has finished.</source>
<translation>Färg som visas när laddningen är slutförd.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="58"/>
<source>Live device</source>
<translation>Aktuell enhet</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="76"/>
<source>Live LED ring</source>
<translation>LED-ring i realtid</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="83"/>
<source>No animation data</source>
<translation>Inga animationsdata</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="87"/>
<source>Waiting for authorization</source>
<translation>Väntar på auktorisering</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="90"/>
<source>Rainbow</source>
<translation>Regnbåge</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="91"/>
<source>Pulsating</source>
<translation>Pulserande</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="92"/>
<source>Firmware update</source>
<translation>Firmwareuppdatering</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="93"/>
<source>Firmware update finished</source>
<translation>Firmwareuppdateringen är slutförd</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="94"/>
<source>Firmware update failed</source>
<translation>Firmwareuppdateringen misslyckades</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="102"/>
<source>Configured preview</source>
<translation>Konfigurerad förhandsvisning</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="192"/>
<source>Adjust how the LED ring communicates charging states and preview the result before using it on the charger.</source>
<translation>Anpassa hur LED-ringen visar laddningsstatus och förhandsgranska resultatet innan du använder det på laddaren.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="198"/>
<source>LED ring preview</source>
<translation>Förhandsvisning av LED-ring</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="207"/>
<source>Preview</source>
<translation>Förhandsvisning</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="250"/>
<source>The live preview follows the animation reported by the charger. Select another state to preview its configured color; the charging preview includes the rotating tails.</source>
<translation>Förhandsvisningen i realtid följer animationen som laddaren rapporterar. Välj ett annat tillstånd för att förhandsgranska dess konfigurerade färg; laddningsförhandsvisningen innehåller de roterande ljussvansarna.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="259"/>
<source>Brightness</source>
<translation>Ljusstyrka</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="264"/>
<source>LED brightness</source>
<translation>LED-ljusstyrka</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="268"/>
<location filename="../qml/LedPage.qml" line="276"/>
<source>%1%</source>
<translation>%1%</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="293"/>
<source>Lower brightness is less distracting at night. Set it to zero to turn the ring off completely.</source>
<translation>Lägre ljusstyrka stör mindre på natten. Ställ in den på noll för att stänga av ringen helt.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="302"/>
<source>Status colors</source>
<translation>Statusfärger</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="308"/>
<source>Tap a charging state to choose the color used by the LED ring.</source>
<translation>Tryck på ett laddningstillstånd för att välja färgen som LED-ringen använder.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="377"/>
<source>Energy saving</source>
<translation>Energisparläge</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="383"/>
<source>Energy saving on</source>
<translation>Energisparläge på</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="383"/>
<source>Energy saving off</source>
<translation>Energisparläge av</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="389"/>
<source>Energy saving turns off status lighting when it is not needed. Charging and important warnings remain visible.</source>
<translation>Energisparläget stänger av statusbelysningen när den inte behövs. Laddning och viktiga varningar förblir synliga.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="397"/>
<source>Keep mode indicators on</source>
<translation>Behåll lägesindikatorerna tända</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="403"/>
<source>Keep the small charging-mode indicators visible while the LED ring is saving energy.</source>
<translation>Behåll de små laddningslägesindikatorerna synliga medan LED-ringen sparar energi.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="410"/>
<source>Service diagnostics</source>
<translation>Servicediagnostik</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="416"/>
<source>These service options can replace normal status animations. Leave them off unless you are diagnosing the LED hardware.</source>
<translation>Dessa servicealternativ kan ersätta normala statusanimationer. Låt dem vara avstängda om du inte felsöker LED-maskinvaran.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="424"/>
<source>Factory LED test</source>
<translation>LED-test från fabrik</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="430"/>
<source>LED diagnostics</source>
<translation>LED-diagnostik</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="435"/>
<source>Choose color for %1</source>
<translation>Välj färg för %1</translation>
</message>
</context>
<context>
<name>LicensesPage</name>
+209 -1
View File
@@ -2878,10 +2878,218 @@
<context>
<name>LedPage</name>
<message>
<location filename="../qml/LedPage.qml" line="6"/>
<location filename="../qml/LedPage.qml" line="16"/>
<source>LED</source>
<translation>LED</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="23"/>
<location filename="../qml/LedPage.qml" line="60"/>
<location filename="../qml/LedPage.qml" line="72"/>
<location filename="../qml/LedPage.qml" line="85"/>
<source>Ready</source>
<translation>Hazır</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="24"/>
<source>Color shown while the charger is ready and no car is connected.</source>
<translation>Şarj cihazı hazırken ve hiçbir araç bağlı değilken gösterilen renk.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="31"/>
<location filename="../qml/LedPage.qml" line="62"/>
<location filename="../qml/LedPage.qml" line="73"/>
<location filename="../qml/LedPage.qml" line="86"/>
<source>Waiting for car</source>
<translation>Araç bekleniyor</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="32"/>
<source>Color shown while the charger is waiting for the vehicle.</source>
<translation>Şarj cihazı aracı beklerken gösterilen renk.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="39"/>
<location filename="../qml/LedPage.qml" line="64"/>
<location filename="../qml/LedPage.qml" line="74"/>
<location filename="../qml/LedPage.qml" line="88"/>
<source>Charging</source>
<translation>Şarj ediliyor</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="40"/>
<source>Color of the rotating tails while the vehicle is charging.</source>
<translation>Araç şarj olurken dönen ışık kuyruklarının rengi.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="47"/>
<location filename="../qml/LedPage.qml" line="66"/>
<location filename="../qml/LedPage.qml" line="75"/>
<location filename="../qml/LedPage.qml" line="89"/>
<source>Finished</source>
<translation>Tamamlandı</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="48"/>
<source>Color shown when charging has finished.</source>
<translation>Şarj tamamlandığında gösterilen renk.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="58"/>
<source>Live device</source>
<translation>Canlı cihaz</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="76"/>
<source>Live LED ring</source>
<translation>Canlı LED halkası</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="83"/>
<source>No animation data</source>
<translation>Animasyon verisi yok</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="87"/>
<source>Waiting for authorization</source>
<translation>Yetkilendirme bekleniyor</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="90"/>
<source>Rainbow</source>
<translation>Gökkuşağı</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="91"/>
<source>Pulsating</source>
<translation>Nabız efekti</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="92"/>
<source>Firmware update</source>
<translation>Donanım yazılımı güncellemesi</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="93"/>
<source>Firmware update finished</source>
<translation>Donanım yazılımı güncellemesi tamamlandı</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="94"/>
<source>Firmware update failed</source>
<translation>Donanım yazılımı güncellemesi başarısız</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="102"/>
<source>Configured preview</source>
<translation>Yapılandırılmış önizleme</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="192"/>
<source>Adjust how the LED ring communicates charging states and preview the result before using it on the charger.</source>
<translation>LED halkasının şarj durumlarını nasıl gösterdiğini ayarlayın ve şarj cihazında kullanmadan önce sonucu önizleyin.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="198"/>
<source>LED ring preview</source>
<translation>LED halkası önizlemesi</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="207"/>
<source>Preview</source>
<translation>Önizleme</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="250"/>
<source>The live preview follows the animation reported by the charger. Select another state to preview its configured color; the charging preview includes the rotating tails.</source>
<translation>Canlı önizleme, şarj cihazının bildirdiği animasyonu izler. Yapılandırılmış rengini önizlemek için başka bir durum seçin; şarj önizlemesi dönen ışık kuyruklarını içerir.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="259"/>
<source>Brightness</source>
<translation>Parlaklık</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="264"/>
<source>LED brightness</source>
<translation>LED parlaklığı</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="268"/>
<location filename="../qml/LedPage.qml" line="276"/>
<source>%1%</source>
<translation>%1%</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="293"/>
<source>Lower brightness is less distracting at night. Set it to zero to turn the ring off completely.</source>
<translation>Düşük parlaklık geceleri daha az rahatsız eder. Halkayı tamamen kapatmak için sıfıra ayarlayın.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="302"/>
<source>Status colors</source>
<translation>Durum renkleri</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="308"/>
<source>Tap a charging state to choose the color used by the LED ring.</source>
<translation>LED halkasının kullanacağı rengi seçmek için bir şarj durumuna dokunun.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="377"/>
<source>Energy saving</source>
<translation>Enerji tasarrufu</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="383"/>
<source>Energy saving on</source>
<translation>Enerji tasarrufu açık</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="383"/>
<source>Energy saving off</source>
<translation>Enerji tasarrufu kapalı</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="389"/>
<source>Energy saving turns off status lighting when it is not needed. Charging and important warnings remain visible.</source>
<translation>Enerji tasarrufu, gerekmediğinde durum aydınlatmasını kapatır. Şarj ve önemli uyarılar görünür kalır.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="397"/>
<source>Keep mode indicators on</source>
<translation>Mod göstergelerini açık tut</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="403"/>
<source>Keep the small charging-mode indicators visible while the LED ring is saving energy.</source>
<translation>LED halkası enerji tasarrufu yaparken küçük şarj modu göstergelerini görünür tutun.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="410"/>
<source>Service diagnostics</source>
<translation>Servis tanılama</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="416"/>
<source>These service options can replace normal status animations. Leave them off unless you are diagnosing the LED hardware.</source>
<translation>Bu servis seçenekleri normal durum animasyonlarının yerini alabilir. LED donanımını tanılamıyorsanız bunları kapalı bırakın.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="424"/>
<source>Factory LED test</source>
<translation>Fabrika LED testi</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="430"/>
<source>LED diagnostics</source>
<translation>LED tanılama</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="435"/>
<source>Choose color for %1</source>
<translation>%1 için renk seçin</translation>
</message>
</context>
<context>
<name>LicensesPage</name>
+428 -3
View File
@@ -1,13 +1,438 @@
pragma ComponentBehavior: Bound
import QtQuick
import QtQuick.Controls
import QtQuick.Dialogs
import QtQuick.Layouts
import EVChargerApp
NavigationPage {
id: page
property string selectedColorKey: "cid"
property string selectedColorName
property string previewMode: "live"
title: qsTr("LED")
Text {
text: "TODO"
function colorOptions() {
const result = []
if (idleColor.exists) {
result.push({
key: "cid",
title: qsTr("Ready"),
description: qsTr("Color shown while the charger is ready and no car is connected."),
value: idleColor.value
})
}
if (waitingColor.exists) {
result.push({
key: "cwc",
title: qsTr("Waiting for car"),
description: qsTr("Color shown while the charger is waiting for the vehicle."),
value: waitingColor.value
})
}
if (chargingColor.exists) {
result.push({
key: "cch",
title: qsTr("Charging"),
description: qsTr("Color of the rotating tails while the vehicle is charging."),
value: chargingColor.value
})
}
if (finishedColor.exists) {
result.push({
key: "cfi",
title: qsTr("Finished"),
description: qsTr("Color shown when charging has finished."),
value: finishedColor.value
})
}
return result
}
Layout.fillHeight: true
function previewOptions() {
const result = []
if (liveAnimation.exists)
result.push({text: qsTr("Live device"), value: "live"})
if (idleColor.exists)
result.push({text: qsTr("Ready"), value: "idle"})
if (waitingColor.exists)
result.push({text: qsTr("Waiting for car"), value: "waiting"})
if (chargingColor.exists)
result.push({text: qsTr("Charging"), value: "charging"})
if (finishedColor.exists)
result.push({text: qsTr("Finished"), value: "finished"})
return result
}
function previewTitle() {
switch (previewMode) {
case "idle": return qsTr("Ready")
case "waiting": return qsTr("Waiting for car")
case "charging": return qsTr("Charging")
case "finished": return qsTr("Finished")
default: return qsTr("Live LED ring")
}
}
function animationName() {
const data = liveAnimation.value
if (data === null || data === undefined || !data.name)
return qsTr("No animation data")
switch (String(data.name)) {
case "Ready": return qsTr("Ready")
case "WaitCar": return qsTr("Waiting for car")
case "WaitAuth": return qsTr("Waiting for authorization")
case "Charging": return qsTr("Charging")
case "Finished": return qsTr("Finished")
case "Rainbow": return qsTr("Rainbow")
case "Pulsate": return qsTr("Pulsating")
case "OtaProgress": return qsTr("Firmware update")
case "OtaFinished": return qsTr("Firmware update finished")
case "OtaFailed": return qsTr("Firmware update failed")
default:
return String(data.name).replace(/([a-z])([A-Z])/g, "$1 $2")
}
}
function previewDetail() {
if (previewMode !== "live")
return qsTr("Configured preview")
return animationName()
}
function normalizeColor(value) {
const text = String(value)
return text.length === 9 ? "#" + text.substring(3) : text
}
function editColor(option) {
selectedColorKey = option.key
selectedColorName = option.title
colorDialog.selectedColor = option.value || "#000000"
colorDialog.open()
}
ApiKeyValueHelper {
id: liveAnimation
deviceConnection: theDeviceConnection
apiKey: "led"
}
ApiKeyValueHelper {
id: ledCount
deviceConnection: theDeviceConnection
apiKey: "nld"
}
ApiKeyValueHelper {
id: brightness
deviceConnection: theDeviceConnection
apiKey: "lbr"
}
ApiKeyValueHelper {
id: idleColor
deviceConnection: theDeviceConnection
apiKey: "cid"
}
ApiKeyValueHelper {
id: waitingColor
deviceConnection: theDeviceConnection
apiKey: "cwc"
}
ApiKeyValueHelper {
id: chargingColor
deviceConnection: theDeviceConnection
apiKey: "cch"
}
ApiKeyValueHelper {
id: finishedColor
deviceConnection: theDeviceConnection
apiKey: "cfi"
}
ApiKeyValueHelper {
id: energySaving
deviceConnection: theDeviceConnection
apiKey: "lse"
}
ApiKeyValueHelper {
id: modeLedsWhileSaving
deviceConnection: theDeviceConnection
apiKey: "mws"
}
ApiKeyValueHelper {
id: factoryDebug
deviceConnection: theDeviceConnection
apiKey: "fldb"
}
ApiKeyValueHelper {
id: ledDebug
deviceConnection: theDeviceConnection
apiKey: "ldb"
}
SetValueHelper {
id: colorSetter
deviceConnection: theDeviceConnection
apiKey: page.selectedColorKey
}
Text {
Layout.fillWidth: true
text: qsTr("Adjust how the LED ring communicates charging states and preview the result before using it on the charger.")
wrapMode: Text.Wrap
color: "#5f6368"
}
SettingsSectionLabel {
text: qsTr("LED ring preview")
}
SettingsCard {
RowLayout {
Layout.fillWidth: true
SettingsLabel {
Layout.fillWidth: true
text: qsTr("Preview")
}
ComboBox {
id: previewSelector
model: previewOptions()
textRole: "text"
valueRole: "value"
onActivated: page.previewMode = currentValue
function selectCurrentMode() {
const index = indexOfValue(page.previewMode)
if (index >= 0)
currentIndex = index
else if (count > 0) {
currentIndex = 0
page.previewMode = currentValue
}
}
Component.onCompleted: selectCurrentMode()
onModelChanged: Qt.callLater(selectCurrentMode)
}
}
LedRingPreview {
Layout.alignment: Qt.AlignHCenter
Layout.preferredWidth: Math.min(280, page.width - 50)
Layout.preferredHeight: width
animationData: liveAnimation.value
previewMode: page.previewMode
configuredLedCount: ledCount.exists ? Number(ledCount.value) : 32
configuredBrightness: brightness.exists ? Number(brightness.value) : 255
idleColor: idleColor.value || "#0000ff"
waitingColor: waitingColor.value || "#ffff00"
chargingColor: chargingColor.value || "#00ffff"
finishedColor: finishedColor.value || "#00ff00"
statusText: previewTitle()
detailText: previewDetail()
}
Text {
Layout.fillWidth: true
text: qsTr("The live preview follows the animation reported by the charger. Select another state to preview its configured color; the charging preview includes the rotating tails.")
wrapMode: Text.Wrap
horizontalAlignment: Text.AlignHCenter
color: "#5f6368"
}
}
SettingsSectionLabel {
visible: brightness.exists
text: qsTr("Brightness")
}
EditValueItem {
apiKey: "lbr"
text: qsTr("LED brightness")
visible: exists
valueText: value === null || value === undefined
? "—"
: qsTr("%1%").arg(Math.round(Number(value) / 255 * 100))
fullWidth: true
editableItem: ColumnLayout {
property alias value: brightnessSlider.value
Label {
Layout.fillWidth: true
text: qsTr("%1%").arg(Math.round(brightnessSlider.value / 255 * 100))
horizontalAlignment: Text.AlignHCenter
font.bold: true
}
Slider {
id: brightnessSlider
Layout.minimumWidth: 250
Layout.fillWidth: true
from: 0
to: 255
stepSize: 1
snapMode: Slider.SnapAlways
}
Text {
Layout.fillWidth: true
text: qsTr("Lower brightness is less distracting at night. Set it to zero to turn the ring off completely.")
wrapMode: Text.Wrap
color: "#5f6368"
}
}
}
SettingsSectionLabel {
visible: colorOptions().length > 0
text: qsTr("Status colors")
}
Text {
Layout.fillWidth: true
visible: colorOptions().length > 0
text: qsTr("Tap a charging state to choose the color used by the LED ring.")
wrapMode: Text.Wrap
color: "#5f6368"
}
Repeater {
model: colorOptions()
delegate: WhiteItemDelegate {
id: colorItem
required property var modelData
Layout.fillWidth: true
implicitHeight: colorContent.implicitHeight + 20
onClicked: editColor(modelData)
contentItem: RowLayout {
id: colorContent
Rectangle {
Layout.preferredWidth: 34
Layout.preferredHeight: 34
radius: 17
color: colorItem.modelData.value || "#000000"
border.color: "#5f6368"
border.width: 1
}
ColumnLayout {
Layout.fillWidth: true
spacing: 2
SettingsLabel {
Layout.fillWidth: true
text: colorItem.modelData.title
}
Text {
Layout.fillWidth: true
text: colorItem.modelData.description
wrapMode: Text.Wrap
color: "#5f6368"
}
}
Text {
text: normalizeColor(colorItem.modelData.value).toUpperCase()
color: "#5f6368"
}
Text {
text: ">"
}
}
}
}
BusyIndicator {
Layout.alignment: Qt.AlignHCenter
visible: colorSetter.pending
}
RequestStatusText {
Layout.fillWidth: true
request: colorSetter
}
SettingsSectionLabel {
visible: energySaving.exists || modeLedsWhileSaving.exists
text: qsTr("Energy saving")
}
GeneralOnOffSwitch {
apiKey: "lse"
visible: exists
text: checked ? qsTr("Energy saving on") : qsTr("Energy saving off")
}
Text {
Layout.fillWidth: true
visible: energySaving.exists
text: qsTr("Energy saving turns off status lighting when it is not needed. Charging and important warnings remain visible.")
wrapMode: Text.Wrap
color: "#5f6368"
}
GeneralOnOffSwitch {
apiKey: "mws"
visible: exists
text: qsTr("Keep mode indicators on")
}
Text {
Layout.fillWidth: true
visible: modeLedsWhileSaving.exists
text: qsTr("Keep the small charging-mode indicators visible while the LED ring is saving energy.")
wrapMode: Text.Wrap
color: "#5f6368"
}
SettingsSectionLabel {
visible: factoryDebug.exists || ledDebug.exists
text: qsTr("Service diagnostics")
}
Text {
Layout.fillWidth: true
visible: factoryDebug.exists || ledDebug.exists
text: qsTr("These service options can replace normal status animations. Leave them off unless you are diagnosing the LED hardware.")
wrapMode: Text.Wrap
color: "#5f6368"
}
GeneralOnOffSwitch {
apiKey: "fldb"
visible: exists
text: qsTr("Factory LED test")
}
GeneralOnOffSwitch {
apiKey: "ldb"
visible: exists
text: qsTr("LED diagnostics")
}
ColorDialog {
id: colorDialog
title: qsTr("Choose color for %1").arg(page.selectedColorName)
onAccepted: colorSetter.setValue(page.normalizeColor(selectedColor))
}
}
+224
View File
@@ -0,0 +1,224 @@
pragma ComponentBehavior: Bound
import QtQuick
Item {
id: preview
property var animationData: null
property string previewMode: "live"
property color idleColor: "#0000ff"
property color waitingColor: "#ffff00"
property color chargingColor: "#00ffff"
property color finishedColor: "#00ff00"
property int configuredLedCount: 32
property int configuredBrightness: 255
property string statusText
property string detailText
property double animationTime: Date.now()
readonly property int actualLedCount: Math.max(1, Math.min(128, Number(configuredLedCount) || 32))
readonly property real ringDiameter: Math.min(width, height)
readonly property real ringRadius: ringDiameter * 0.39
readonly property real ledDiameter: Math.max(5, Math.min(14, ringDiameter * 1.55 / actualLedCount))
implicitWidth: 260
implicitHeight: 260
function normalizeIndex(index) {
let result = Math.floor(Number(index) || 0) % actualLedCount
if (result < 0)
result += actualLedCount
return result
}
function colorComponents(value) {
let text = String(value || "#000000")
if (text.length === 9)
text = "#" + text.substring(3)
if (!/^#[0-9a-fA-F]{6}$/.test(text))
text = "#000000"
return [
parseInt(text.substring(1, 3), 16) / 255,
parseInt(text.substring(3, 5), 16) / 255,
parseInt(text.substring(5, 7), 16) / 255
]
}
function mixColor(first, second, amount) {
const left = colorComponents(first)
const right = colorComponents(second)
const factor = Math.max(0, Math.min(1, amount))
return Qt.rgba(left[0] + (right[0] - left[0]) * factor,
left[1] + (right[1] - left[1]) * factor,
left[2] + (right[2] - left[2]) * factor,
1)
}
function scaleColor(value, intensity) {
const rgb = colorComponents(value)
const brightness = Math.max(0, Math.min(1, configuredBrightness / 255))
* Math.max(0, Math.min(1, intensity))
return Qt.rgba(rgb[0] * brightness, rgb[1] * brightness, rgb[2] * brightness, 1)
}
function durationMilliseconds(value) {
const text = String(value || "")
if (text.endsWith("ms"))
return Math.max(1, Number(text.substring(0, text.length - 2)) || 1)
if (text.endsWith("s"))
return Math.max(1, (Number(text.substring(0, text.length - 1)) || 1) * 1000)
return Math.max(1, Number(text) || 1000)
}
function rangePosition(index, from, to) {
const start = normalizeIndex(from)
const end = normalizeIndex(to)
let current = start
for (let offset = 0; offset < actualLedCount; ++offset) {
if (current === index)
return offset
if (current === end)
break
current = (current + 1) % actualLedCount
}
return -1
}
function repeatingColor(colors, position) {
if (colors === null || colors === undefined || colors.length < 1)
return "#000000"
return colors[position % colors.length]
}
function renderCommandColor(index, data) {
let result = "#000000"
const ranges = data && data.ranges ? data.ranges : []
for (let rangeIndex = 0; rangeIndex < ranges.length; ++rangeIndex) {
const range = ranges[rangeIndex]
const position = rangePosition(index, range.from, range.to)
if (position < 0)
continue
if (range.blink !== null && range.blink !== undefined) {
const duration = durationMilliseconds(range.blink)
const secondColor = Math.floor(animationTime / (duration / 2)) % 2 === 1
result = repeatingColor(secondColor ? range.colors1 : range.colors0, position)
} else if (range.fade !== null && range.fade !== undefined) {
const duration = durationMilliseconds(range.fade)
const progress = (animationTime % duration) / duration
const amount = (1 - Math.cos(progress * Math.PI * 2)) / 2
result = mixColor(repeatingColor(range.colors0, position),
repeatingColor(range.colors1, position), amount)
} else {
result = repeatingColor(range.colors, position)
}
}
return scaleColor(result, 1)
}
function tailColor(index, data) {
const count = Math.max(1, Math.min(3, Number(data.count) || 1))
const speed = Math.max(1, Number(data.speed) || 20)
const ampere = Math.max(0, Math.min(32, 35 - speed))
const tailLength = Math.max(0.1, Math.min(0.94, (ampere + 3) / 35))
const rotation = (animationTime / (speed * 256)) % 1
let distance = ((index / actualLedCount) * count - rotation * count) % 1
if (distance < 0)
distance += 1
const intensity = distance <= tailLength ? 1 - distance / tailLength : 0
return scaleColor(chargingColor, Math.pow(intensity, 1.45))
}
function effectiveAnimation() {
switch (previewMode) {
case "idle": return {subtype: "solid", color: idleColor}
case "waiting": return {subtype: "solid", color: waitingColor}
case "charging": return {subtype: "schweif", count: 3, speed: 14}
case "finished": return {subtype: "solid", color: finishedColor}
default: return animationData || {subtype: "solid", color: "#303030"}
}
}
function ledColor(index) {
const data = effectiveAnimation()
switch (data.subtype) {
case "solid":
return scaleColor(data.color, 1)
case "rainbow":
return scaleColor(Qt.hsva(index / actualLedCount, 0.94, 1, 1), 1)
case "schweif":
return tailColor(index, data)
case "colors":
return scaleColor(repeatingColor(data.colors, index), 1)
case "renderCmds":
return renderCommandColor(index, data)
default:
return scaleColor("#303030", 1)
}
}
Timer {
interval: 40
repeat: true
running: preview.visible
onTriggered: preview.animationTime = Date.now()
}
Rectangle {
anchors.centerIn: parent
width: preview.ringDiameter * 0.64
height: width
radius: width / 2
color: "#202124"
border.color: "#44474a"
border.width: 2
Column {
anchors.centerIn: parent
width: parent.width * 0.78
spacing: 3
Text {
width: parent.width
text: preview.statusText
color: "white"
font.bold: true
horizontalAlignment: Text.AlignHCenter
wrapMode: Text.Wrap
}
Text {
width: parent.width
text: preview.detailText
visible: text.length > 0
color: "#bdc1c6"
font.pixelSize: 12
horizontalAlignment: Text.AlignHCenter
wrapMode: Text.Wrap
}
}
}
Repeater {
model: preview.actualLedCount
delegate: Rectangle {
required property int index
readonly property real angle: index / preview.actualLedCount * Math.PI * 2
x: preview.width / 2 + Math.sin(angle) * preview.ringRadius - width / 2
y: preview.height / 2 - Math.cos(angle) * preview.ringRadius - height / 2
width: preview.ledDiameter
height: width
radius: width / 2
color: preview.ledColor(index)
border.color: "#5f6368"
border.width: 1
Behavior on color {
ColorAnimation { duration: 35 }
}
}
}
}
+1
View File
@@ -56,6 +56,7 @@ EVChargerApp 1.0 IndexedEditValueItem.qml
EVChargerApp 1.0 IndexedOnOffSwitch.qml
EVChargerApp 1.0 KwhLimitPage.qml
EVChargerApp 1.0 LedPage.qml
EVChargerApp 1.0 LedRingPreview.qml
EVChargerApp 1.0 LicensesPage.qml
EVChargerApp 1.0 LoadBalancingPage.qml
EVChargerApp 1.0 LogicModeButton.qml