time and date settings
Build Linux and Android / build (push) Successful in 2m59s

This commit is contained in:
2026-08-19 14:15:24 +02:00
parent 33d2fac640
commit 78c15d46d4
15 changed files with 2159 additions and 238 deletions
+2
View File
@@ -16,6 +16,8 @@ qt_add_executable(evcharger-app WIN32 MACOSX_BUNDLE
main.cpp
sendmessagehelper.cpp
sendmessagehelper.h
timeutils.cpp
timeutils.h
versionutils.cpp
versionutils.h
)
+261 -33
View File
@@ -29,9 +29,8 @@
<translation>Aktiver demotilstand</translation>
</message>
<message>
<location filename="../qml/AboutPage.qml" line="44"/>
<source>Set charging color to new</source>
<translation>Indstil opladningsfarve til ny</translation>
<translation type="vanished">Indstil opladningsfarve til ny</translation>
</message>
</context>
<context>
@@ -1531,10 +1530,210 @@
<context>
<name>DateAndTimePage</name>
<message>
<location filename="../qml/DateAndTimePage.qml" line="6"/>
<location filename="../qml/DateAndTimePage.qml" line="11"/>
<source>Date and time</source>
<translation>Dato og tid</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="35"/>
<location filename="../qml/DateAndTimePage.qml" line="122"/>
<source>Custom</source>
<translation>Brugerdefineret</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="168"/>
<source>The charger uses its clock for schedules, flexible energy prices and recorded data.</source>
<translation>Laderen bruger sit ur til tidsplaner, fleksible energipriser og registrerede data.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="173"/>
<source>Current device time</source>
<translation>Aktuel enhedstid</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="178"/>
<source>UTC time</source>
<translation>UTC-tid</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="189"/>
<source>Local time</source>
<translation>Lokal tid</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="202"/>
<location filename="../qml/DateAndTimePage.qml" line="208"/>
<source>Sync from phone</source>
<translation>Synkroniser fra telefonen</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="211"/>
<source>Set the charger clock to the phone&apos;s current time.</source>
<translation>Indstil laderens ur til telefonens aktuelle tid.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="223"/>
<source>Timezone</source>
<translation>Tidszone</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="229"/>
<source>Choose a timezone to configure its standard offset and daylight-saving rule automatically.</source>
<translation>Vælg en tidszone for automatisk at konfigurere dens standardforskydning og sommertidsregel.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="237"/>
<location filename="../qml/DateAndTimePage.qml" line="244"/>
<location filename="../qml/DateAndTimePage.qml" line="384"/>
<source>Timezone preset</source>
<translation>Forudindstillet tidszone</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="260"/>
<source>UTC offset</source>
<translation>UTC-forskydning</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="275"/>
<source>minutes</source>
<translation>minutter</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="281"/>
<source>Daylight-saving rule</source>
<translation>Sommertidsregel</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="284"/>
<source>None</source>
<translation>Ingen</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="285"/>
<source>European</source>
<translation>Europæisk</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="286"/>
<source>United States</source>
<translation>USA</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="287"/>
<source>Australian</source>
<translation>Australsk</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="294"/>
<source>Network time (NTP)</source>
<translation>Netværkstid (NTP)</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="300"/>
<source>NTP keeps the charger clock synchronized automatically while it has internet access.</source>
<translation>NTP holder automatisk laderens ur synkroniseret, når den har internetadgang.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="308"/>
<source>Automatic time synchronization</source>
<translation>Automatisk tidssynkronisering</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="313"/>
<source>NTP server</source>
<translation>NTP-server</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="328"/>
<source>Synchronization status</source>
<translation>Synkroniseringsstatus</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="331"/>
<source>Not synchronized</source>
<translation>Ikke synkroniseret</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="332"/>
<source>Synchronized</source>
<translation>Synkroniseret</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="333"/>
<source>Synchronizing</source>
<translation>Synkroniserer</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="334"/>
<source>Unknown (%1)</source>
<translation>Ukendt (%1)</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="343"/>
<location filename="../qml/DateAndTimePage.qml" line="349"/>
<source>Synchronize now</source>
<translation>Synkroniser nu</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="353"/>
<source>Ask the configured NTP server for the current time.</source>
<translation>Hent den aktuelle tid fra den konfigurerede NTP-server.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="354"/>
<source>Enable automatic time synchronization first.</source>
<translation>Aktivér først automatisk tidssynkronisering.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="366"/>
<source>Synchronization mode</source>
<translation>Synkroniseringstilstand</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="369"/>
<source>Immediate</source>
<translation>Øjeblikkelig</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="370"/>
<source>Smooth</source>
<translation>Jævn</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="376"/>
<source>Synchronization interval</source>
<translation>Synkroniseringsinterval</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="397"/>
<source>The preset is stored on the charger and configures the firmware&apos;s supported daylight-saving calculation.</source>
<translation>Forudindstillingen gemmes på laderen og konfigurerer den sommertidsberegning, som firmwaren understøtter.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="427"/>
<source>No daylight saving</source>
<translation>Ingen sommertid</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="428"/>
<source>European daylight saving</source>
<translation>Europæisk sommertid</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="429"/>
<source>US daylight saving</source>
<translation>Amerikansk sommertid</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="430"/>
<source>Australian daylight saving</source>
<translation>Australsk sommertid</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="431"/>
<source>Unknown</source>
<translation>Ukendt</translation>
</message>
</context>
<context>
<name>DeviceConnection</name>
@@ -1873,7 +2072,7 @@
<translation>For fjernadgang skal der først konfigureres en adgangskode. Det kan gøres via adgangspunktet.</translation>
</message>
<message>
<location filename="../qml/DeviceScreen.qml" line="154"/>
<location filename="../qml/DeviceScreen.qml" line="183"/>
<source>Connection disturbed</source>
<translation>Forbindelsen forstyrret</translation>
</message>
@@ -1898,32 +2097,32 @@
<context>
<name>DurationEditItem</name>
<message>
<location filename="../qml/DurationEditItem.qml" line="22"/>
<location filename="../qml/DurationEditItem.qml" line="23"/>
<source>%1 h</source>
<translation>%1 h</translation>
</message>
<message>
<location filename="../qml/DurationEditItem.qml" line="24"/>
<location filename="../qml/DurationEditItem.qml" line="25"/>
<source>%1 min</source>
<translation>%1 min</translation>
</message>
<message>
<location filename="../qml/DurationEditItem.qml" line="26"/>
<location filename="../qml/DurationEditItem.qml" line="27"/>
<source>%1 s</source>
<translation>%1 s</translation>
</message>
<message>
<location filename="../qml/DurationEditItem.qml" line="63"/>
<location filename="../qml/DurationEditItem.qml" line="65"/>
<source>Hours</source>
<translation>Timer</translation>
</message>
<message>
<location filename="../qml/DurationEditItem.qml" line="74"/>
<location filename="../qml/DurationEditItem.qml" line="76"/>
<source>Minutes</source>
<translation>Minutter</translation>
</message>
<message>
<location filename="../qml/DurationEditItem.qml" line="85"/>
<location filename="../qml/DurationEditItem.qml" line="87"/>
<source>Seconds</source>
<translation>Sekunder</translation>
</message>
@@ -3027,108 +3226,137 @@
<translation>Konfigureret forhåndsvisning</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="192"/>
<location filename="../qml/LedPage.qml" line="205"/>
<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"/>
<location filename="../qml/LedPage.qml" line="211"/>
<source>LED ring preview</source>
<translation>Forhåndsvisning af LED-ring</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="207"/>
<location filename="../qml/LedPage.qml" line="220"/>
<source>Preview</source>
<translation>Forhåndsvisning</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="250"/>
<location filename="../qml/LedPage.qml" line="263"/>
<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"/>
<location filename="../qml/LedPage.qml" line="272"/>
<source>Brightness</source>
<translation>Lysstyrke</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="264"/>
<location filename="../qml/LedPage.qml" line="277"/>
<source>LED brightness</source>
<translation>LED-lysstyrke</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="268"/>
<location filename="../qml/LedPage.qml" line="276"/>
<location filename="../qml/LedPage.qml" line="281"/>
<location filename="../qml/LedPage.qml" line="289"/>
<source>%1%</source>
<translation>%1%</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="293"/>
<location filename="../qml/LedPage.qml" line="306"/>
<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"/>
<location filename="../qml/LedPage.qml" line="315"/>
<source>Status colors</source>
<translation>Statusfarver</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="308"/>
<location filename="../qml/LedPage.qml" line="321"/>
<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"/>
<location filename="../qml/LedPage.qml" line="390"/>
<source>Energy saving</source>
<translation>Energibesparelse</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="383"/>
<location filename="../qml/LedPage.qml" line="396"/>
<source>Energy saving on</source>
<translation>Energibesparelse til</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="383"/>
<location filename="../qml/LedPage.qml" line="396"/>
<source>Energy saving off</source>
<translation>Energibesparelse fra</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="389"/>
<location filename="../qml/LedPage.qml" line="402"/>
<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"/>
<location filename="../qml/LedPage.qml" line="410"/>
<source>Keep mode indicators on</source>
<translation>Behold tilstandsindikatorerne tændt</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="403"/>
<location filename="../qml/LedPage.qml" line="416"/>
<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"/>
<location filename="../qml/LedPage.qml" line="423"/>
<source>Service diagnostics</source>
<translation>Servicediagnostik</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="416"/>
<location filename="../qml/LedPage.qml" line="429"/>
<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"/>
<location filename="../qml/LedPage.qml" line="437"/>
<source>Factory LED test</source>
<translation>Fabrikkens LED-test</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="430"/>
<location filename="../qml/LedPage.qml" line="443"/>
<source>LED diagnostics</source>
<translation>LED-diagnostik</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="435"/>
<location filename="../qml/LedPage.qml" line="448"/>
<source>Choose charging color</source>
<translation>Vælg ladefarve</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="459"/>
<source>These special values enable animated charging effects. You can also choose a normal custom color.</source>
<translation>Disse specialværdier aktiverer animerede ladeeffekter. Du kan også vælge en almindelig brugerdefineret farve.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="466"/>
<source>Category colors</source>
<translation>Kategorifarver</translation>
</message>
<message>
<source>Magic charging</source>
<translation type="vanished">Magisk opladning</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="472"/>
<source>Rainbow charging</source>
<translation>Regnbueopladning</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="478"/>
<source>Custom color…</source>
<translation>Brugerdefineret farve…</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="486"/>
<source>Choose color for %1</source>
<translation>Vælg farve til %1</translation>
</message>
@@ -3863,7 +4091,7 @@
<message>
<location filename="../qml/SensorCategoryPage.qml" line="51"/>
<source>None</source>
<translation type="unfinished">Ingen</translation>
<translation>Ingen</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="52"/>
+264 -36
View File
@@ -29,9 +29,8 @@
<translation>Demo Modus aktivieren</translation>
</message>
<message>
<location filename="../qml/AboutPage.qml" line="44"/>
<source>Set charging color to new</source>
<translation>Lade-Farbe auf neu setzen</translation>
<translation type="vanished">Lade-Farbe auf neu setzen</translation>
</message>
</context>
<context>
@@ -459,7 +458,7 @@
<message>
<location filename="../qml/CellularPage.qml" line="146"/>
<source>None</source>
<translation>Kein</translation>
<translation>Keine</translation>
</message>
<message>
<location filename="../qml/CellularPage.qml" line="147"/>
@@ -1639,10 +1638,210 @@
<context>
<name>DateAndTimePage</name>
<message>
<location filename="../qml/DateAndTimePage.qml" line="6"/>
<location filename="../qml/DateAndTimePage.qml" line="11"/>
<source>Date and time</source>
<translation>Datum und Uhrzeit</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="35"/>
<location filename="../qml/DateAndTimePage.qml" line="122"/>
<source>Custom</source>
<translation>Benutzerdefiniert</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="168"/>
<source>The charger uses its clock for schedules, flexible energy prices and recorded data.</source>
<translation>Der Charger verwendet seine Uhr für Zeitpläne, flexible Energiepreise und aufgezeichnete Daten.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="173"/>
<source>Current device time</source>
<translation>Aktuelle Gerätezeit</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="178"/>
<source>UTC time</source>
<translation>UTC-Zeit</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="189"/>
<source>Local time</source>
<translation>Ortszeit</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="202"/>
<location filename="../qml/DateAndTimePage.qml" line="208"/>
<source>Sync from phone</source>
<translation>Mit Telefon synchronisieren</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="211"/>
<source>Set the charger clock to the phone&apos;s current time.</source>
<translation>Die Uhr des Chargers auf die aktuelle Zeit des Telefons stellen.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="223"/>
<source>Timezone</source>
<translation>Zeitzone</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="229"/>
<source>Choose a timezone to configure its standard offset and daylight-saving rule automatically.</source>
<translation>Wähle eine Zeitzone, um deren Standardversatz und Sommerzeitregel automatisch zu konfigurieren.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="237"/>
<location filename="../qml/DateAndTimePage.qml" line="244"/>
<location filename="../qml/DateAndTimePage.qml" line="384"/>
<source>Timezone preset</source>
<translation>Zeitzonenvoreinstellung</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="260"/>
<source>UTC offset</source>
<translation>UTC-Versatz</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="275"/>
<source>minutes</source>
<translation>Minuten</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="281"/>
<source>Daylight-saving rule</source>
<translation>Sommerzeitregel</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="284"/>
<source>None</source>
<translation>Keine</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="285"/>
<source>European</source>
<translation>Europäisch</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="286"/>
<source>United States</source>
<translation>Vereinigte Staaten</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="287"/>
<source>Australian</source>
<translation>Australisch</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="294"/>
<source>Network time (NTP)</source>
<translation>Netzwerkzeit (NTP)</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="300"/>
<source>NTP keeps the charger clock synchronized automatically while it has internet access.</source>
<translation>NTP hält die Uhr des Chargers automatisch synchron, solange er Internetzugang hat.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="308"/>
<source>Automatic time synchronization</source>
<translation>Automatische Zeitsynchronisierung</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="313"/>
<source>NTP server</source>
<translation>NTP-Server</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="328"/>
<source>Synchronization status</source>
<translation>Synchronisierungsstatus</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="331"/>
<source>Not synchronized</source>
<translation>Nicht synchronisiert</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="332"/>
<source>Synchronized</source>
<translation>Synchronisiert</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="333"/>
<source>Synchronizing</source>
<translation>Synchronisierung läuft</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="334"/>
<source>Unknown (%1)</source>
<translation>Unbekannt (%1)</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="343"/>
<location filename="../qml/DateAndTimePage.qml" line="349"/>
<source>Synchronize now</source>
<translation>Jetzt synchronisieren</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="353"/>
<source>Ask the configured NTP server for the current time.</source>
<translation>Aktuelle Zeit vom konfigurierten NTP-Server abrufen.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="354"/>
<source>Enable automatic time synchronization first.</source>
<translation>Aktiviere zuerst die automatische Zeitsynchronisierung.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="366"/>
<source>Synchronization mode</source>
<translation>Synchronisierungsmodus</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="369"/>
<source>Immediate</source>
<translation>Sofort</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="370"/>
<source>Smooth</source>
<translation>Schrittweise</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="376"/>
<source>Synchronization interval</source>
<translation>Synchronisierungsintervall</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="397"/>
<source>The preset is stored on the charger and configures the firmware&apos;s supported daylight-saving calculation.</source>
<translation>Die Voreinstellung wird auf dem Charger gespeichert und konfiguriert die von der Firmware unterstützte Sommerzeitberechnung.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="427"/>
<source>No daylight saving</source>
<translation>Keine Sommerzeit</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="428"/>
<source>European daylight saving</source>
<translation>Europäische Sommerzeit</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="429"/>
<source>US daylight saving</source>
<translation>US-Sommerzeit</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="430"/>
<source>Australian daylight saving</source>
<translation>Australische Sommerzeit</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="431"/>
<source>Unknown</source>
<translation>Unbekannt</translation>
</message>
</context>
<context>
<name>DeviceConnection</name>
@@ -2033,7 +2232,7 @@
<translation>Um dieses Gerät aus der Ferne nutzen zu können, müssen Sie erst ein Passwort einrichten. Dies kann über den AccessPoint gemacht werden.</translation>
</message>
<message>
<location filename="../qml/DeviceScreen.qml" line="154"/>
<location filename="../qml/DeviceScreen.qml" line="183"/>
<source>Connection disturbed</source>
<translation>Verbindung schwer gestört</translation>
</message>
@@ -2058,32 +2257,32 @@
<context>
<name>DurationEditItem</name>
<message>
<location filename="../qml/DurationEditItem.qml" line="22"/>
<location filename="../qml/DurationEditItem.qml" line="23"/>
<source>%1 h</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/DurationEditItem.qml" line="24"/>
<location filename="../qml/DurationEditItem.qml" line="25"/>
<source>%1 min</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/DurationEditItem.qml" line="26"/>
<location filename="../qml/DurationEditItem.qml" line="27"/>
<source>%1 s</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/DurationEditItem.qml" line="63"/>
<location filename="../qml/DurationEditItem.qml" line="65"/>
<source>Hours</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/DurationEditItem.qml" line="74"/>
<location filename="../qml/DurationEditItem.qml" line="76"/>
<source>Minutes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/DurationEditItem.qml" line="85"/>
<location filename="../qml/DurationEditItem.qml" line="87"/>
<source>Seconds</source>
<translation type="unfinished"></translation>
</message>
@@ -2877,7 +3076,7 @@
<message>
<location filename="../qml/HotspotPage.qml" line="42"/>
<source>Unknown</source>
<translation type="unfinished">Unbekannt</translation>
<translation>Unbekannt</translation>
</message>
<message>
<location filename="../qml/HotspotPage.qml" line="49"/>
@@ -3202,108 +3401,137 @@
<translation>Konfigurierte Vorschau</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="192"/>
<location filename="../qml/LedPage.qml" line="205"/>
<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"/>
<location filename="../qml/LedPage.qml" line="211"/>
<source>LED ring preview</source>
<translation>LED-Ring-Vorschau</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="207"/>
<location filename="../qml/LedPage.qml" line="220"/>
<source>Preview</source>
<translation>Vorschau</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="250"/>
<location filename="../qml/LedPage.qml" line="263"/>
<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"/>
<location filename="../qml/LedPage.qml" line="272"/>
<source>Brightness</source>
<translation>Helligkeit</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="264"/>
<location filename="../qml/LedPage.qml" line="277"/>
<source>LED brightness</source>
<translation>LED-Helligkeit</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="268"/>
<location filename="../qml/LedPage.qml" line="276"/>
<location filename="../qml/LedPage.qml" line="281"/>
<location filename="../qml/LedPage.qml" line="289"/>
<source>%1%</source>
<translation>%1%</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="293"/>
<location filename="../qml/LedPage.qml" line="306"/>
<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"/>
<location filename="../qml/LedPage.qml" line="315"/>
<source>Status colors</source>
<translation>Statusfarben</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="308"/>
<location filename="../qml/LedPage.qml" line="321"/>
<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"/>
<location filename="../qml/LedPage.qml" line="390"/>
<source>Energy saving</source>
<translation>Energiesparen</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="383"/>
<location filename="../qml/LedPage.qml" line="396"/>
<source>Energy saving on</source>
<translation>Energiesparen ein</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="383"/>
<location filename="../qml/LedPage.qml" line="396"/>
<source>Energy saving off</source>
<translation>Energiesparen aus</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="389"/>
<location filename="../qml/LedPage.qml" line="402"/>
<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"/>
<location filename="../qml/LedPage.qml" line="410"/>
<source>Keep mode indicators on</source>
<translation>Modusanzeigen eingeschaltet lassen</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="403"/>
<location filename="../qml/LedPage.qml" line="416"/>
<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"/>
<location filename="../qml/LedPage.qml" line="423"/>
<source>Service diagnostics</source>
<translation>Servicediagnose</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="416"/>
<location filename="../qml/LedPage.qml" line="429"/>
<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"/>
<location filename="../qml/LedPage.qml" line="437"/>
<source>Factory LED test</source>
<translation>Werkseitiger LED-Test</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="430"/>
<location filename="../qml/LedPage.qml" line="443"/>
<source>LED diagnostics</source>
<translation>LED-Diagnose</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="435"/>
<location filename="../qml/LedPage.qml" line="448"/>
<source>Choose charging color</source>
<translation>Ladefarbe auswählen</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="459"/>
<source>These special values enable animated charging effects. You can also choose a normal custom color.</source>
<translation>Diese besonderen Werte aktivieren animierte Ladeeffekte. Du kannst auch eine normale benutzerdefinierte Farbe wählen.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="466"/>
<source>Category colors</source>
<translation>Kategoriefarben</translation>
</message>
<message>
<source>Magic charging</source>
<translation type="vanished">Magisches Laden</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="472"/>
<source>Rainbow charging</source>
<translation>Regenbogenladen</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="478"/>
<source>Custom color…</source>
<translation>Benutzerdefinierte Farbe…</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="486"/>
<source>Choose color for %1</source>
<translation>Farbe für %1 wählen</translation>
</message>
@@ -4139,7 +4367,7 @@
<message>
<location filename="../qml/SensorCategoryPage.qml" line="51"/>
<source>None</source>
<translation>Keines</translation>
<translation>Keine</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="52"/>
@@ -4997,7 +5225,7 @@
<location filename="../qml/WiFiPage.qml" line="143"/>
<location filename="../qml/WiFiPage.qml" line="504"/>
<source>Unknown</source>
<translation type="unfinished">Unbekannt</translation>
<translation>Unbekannt</translation>
</message>
<message>
<location filename="../qml/WiFiPage.qml" line="139"/>
+261 -33
View File
@@ -29,9 +29,8 @@
<translation>Ota esittelytila käyttöön</translation>
</message>
<message>
<location filename="../qml/AboutPage.qml" line="44"/>
<source>Set charging color to new</source>
<translation>Aseta latausväri uuteen</translation>
<translation type="vanished">Aseta latausväri uuteen</translation>
</message>
</context>
<context>
@@ -1531,10 +1530,210 @@
<context>
<name>DateAndTimePage</name>
<message>
<location filename="../qml/DateAndTimePage.qml" line="6"/>
<location filename="../qml/DateAndTimePage.qml" line="11"/>
<source>Date and time</source>
<translation>Päivämäärä ja aika</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="35"/>
<location filename="../qml/DateAndTimePage.qml" line="122"/>
<source>Custom</source>
<translation>Mukautettu</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="168"/>
<source>The charger uses its clock for schedules, flexible energy prices and recorded data.</source>
<translation>Laturi käyttää kelloaan ajastuksiin, joustaviin energiahintoihin ja tallennettuihin tietoihin.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="173"/>
<source>Current device time</source>
<translation>Laitteen nykyinen aika</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="178"/>
<source>UTC time</source>
<translation>UTC-aika</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="189"/>
<source>Local time</source>
<translation>Paikallinen aika</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="202"/>
<location filename="../qml/DateAndTimePage.qml" line="208"/>
<source>Sync from phone</source>
<translation>Synkronoi puhelimesta</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="211"/>
<source>Set the charger clock to the phone&apos;s current time.</source>
<translation>Aseta laturin kelloon puhelimen nykyinen aika.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="223"/>
<source>Timezone</source>
<translation>Aikavyöhyke</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="229"/>
<source>Choose a timezone to configure its standard offset and daylight-saving rule automatically.</source>
<translation>Valitse aikavyöhyke, jolloin sen normaaliajan poikkeama ja kesäaikasääntö määritetään automaattisesti.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="237"/>
<location filename="../qml/DateAndTimePage.qml" line="244"/>
<location filename="../qml/DateAndTimePage.qml" line="384"/>
<source>Timezone preset</source>
<translation>Aikavyöhyke-esiasetus</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="260"/>
<source>UTC offset</source>
<translation>UTC-poikkeama</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="275"/>
<source>minutes</source>
<translation>minuuttia</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="281"/>
<source>Daylight-saving rule</source>
<translation>Kesäaikasääntö</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="284"/>
<source>None</source>
<translation>Ei mitään</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="285"/>
<source>European</source>
<translation>Eurooppalainen</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="286"/>
<source>United States</source>
<translation>Yhdysvallat</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="287"/>
<source>Australian</source>
<translation>Australialainen</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="294"/>
<source>Network time (NTP)</source>
<translation>Verkkoaika (NTP)</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="300"/>
<source>NTP keeps the charger clock synchronized automatically while it has internet access.</source>
<translation>NTP pitää laturin kellon automaattisesti synkronoituna, kun internetyhteys on käytettävissä.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="308"/>
<source>Automatic time synchronization</source>
<translation>Automaattinen ajan synkronointi</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="313"/>
<source>NTP server</source>
<translation>NTP-palvelin</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="328"/>
<source>Synchronization status</source>
<translation>Synkronoinnin tila</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="331"/>
<source>Not synchronized</source>
<translation>Ei synkronoitu</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="332"/>
<source>Synchronized</source>
<translation>Synkronoitu</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="333"/>
<source>Synchronizing</source>
<translation>Synkronoidaan</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="334"/>
<source>Unknown (%1)</source>
<translation>Tuntematon (%1)</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="343"/>
<location filename="../qml/DateAndTimePage.qml" line="349"/>
<source>Synchronize now</source>
<translation>Synkronoi nyt</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="353"/>
<source>Ask the configured NTP server for the current time.</source>
<translation>Pyydä nykyinen aika määritetyltä NTP-palvelimelta.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="354"/>
<source>Enable automatic time synchronization first.</source>
<translation>Ota ensin automaattinen ajan synkronointi käyttöön.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="366"/>
<source>Synchronization mode</source>
<translation>Synkronointitila</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="369"/>
<source>Immediate</source>
<translation>Välitön</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="370"/>
<source>Smooth</source>
<translation>Asteittainen</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="376"/>
<source>Synchronization interval</source>
<translation>Synkronointiväli</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="397"/>
<source>The preset is stored on the charger and configures the firmware&apos;s supported daylight-saving calculation.</source>
<translation>Esiasetus tallennetaan laturiin, ja se määrittää laiteohjelmiston tukeman kesäaikalaskennan.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="427"/>
<source>No daylight saving</source>
<translation>Ei kesäaikaa</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="428"/>
<source>European daylight saving</source>
<translation>Eurooppalainen kesäaika</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="429"/>
<source>US daylight saving</source>
<translation>Yhdysvaltain kesäaika</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="430"/>
<source>Australian daylight saving</source>
<translation>Australialainen kesäaika</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="431"/>
<source>Unknown</source>
<translation>Tuntematon</translation>
</message>
</context>
<context>
<name>DeviceConnection</name>
@@ -1873,7 +2072,7 @@
<translation>Etäkäyttöä varten salasana on ensin määritettävä. Sen voi tehdä tukiaseman kautta.</translation>
</message>
<message>
<location filename="../qml/DeviceScreen.qml" line="154"/>
<location filename="../qml/DeviceScreen.qml" line="183"/>
<source>Connection disturbed</source>
<translation>Yhteys häiriintynyt</translation>
</message>
@@ -1898,32 +2097,32 @@
<context>
<name>DurationEditItem</name>
<message>
<location filename="../qml/DurationEditItem.qml" line="22"/>
<location filename="../qml/DurationEditItem.qml" line="23"/>
<source>%1 h</source>
<translation>%1 h</translation>
</message>
<message>
<location filename="../qml/DurationEditItem.qml" line="24"/>
<location filename="../qml/DurationEditItem.qml" line="25"/>
<source>%1 min</source>
<translation>%1 min</translation>
</message>
<message>
<location filename="../qml/DurationEditItem.qml" line="26"/>
<location filename="../qml/DurationEditItem.qml" line="27"/>
<source>%1 s</source>
<translation>%1 s</translation>
</message>
<message>
<location filename="../qml/DurationEditItem.qml" line="63"/>
<location filename="../qml/DurationEditItem.qml" line="65"/>
<source>Hours</source>
<translation>Tuntia</translation>
</message>
<message>
<location filename="../qml/DurationEditItem.qml" line="74"/>
<location filename="../qml/DurationEditItem.qml" line="76"/>
<source>Minutes</source>
<translation>Minuutit</translation>
</message>
<message>
<location filename="../qml/DurationEditItem.qml" line="85"/>
<location filename="../qml/DurationEditItem.qml" line="87"/>
<source>Seconds</source>
<translation>Sekuntia</translation>
</message>
@@ -3027,108 +3226,137 @@
<translation>Määritetty esikatselu</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="192"/>
<location filename="../qml/LedPage.qml" line="205"/>
<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"/>
<location filename="../qml/LedPage.qml" line="211"/>
<source>LED ring preview</source>
<translation>LED-renkaan esikatselu</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="207"/>
<location filename="../qml/LedPage.qml" line="220"/>
<source>Preview</source>
<translation>Esikatselu</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="250"/>
<location filename="../qml/LedPage.qml" line="263"/>
<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"/>
<location filename="../qml/LedPage.qml" line="272"/>
<source>Brightness</source>
<translation>Kirkkaus</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="264"/>
<location filename="../qml/LedPage.qml" line="277"/>
<source>LED brightness</source>
<translation>LED-kirkkaus</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="268"/>
<location filename="../qml/LedPage.qml" line="276"/>
<location filename="../qml/LedPage.qml" line="281"/>
<location filename="../qml/LedPage.qml" line="289"/>
<source>%1%</source>
<translation>%1%</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="293"/>
<location filename="../qml/LedPage.qml" line="306"/>
<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"/>
<location filename="../qml/LedPage.qml" line="315"/>
<source>Status colors</source>
<translation>Tilavärit</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="308"/>
<location filename="../qml/LedPage.qml" line="321"/>
<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"/>
<location filename="../qml/LedPage.qml" line="390"/>
<source>Energy saving</source>
<translation>Energiansäästö</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="383"/>
<location filename="../qml/LedPage.qml" line="396"/>
<source>Energy saving on</source>
<translation>Energiansäästö käytössä</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="383"/>
<location filename="../qml/LedPage.qml" line="396"/>
<source>Energy saving off</source>
<translation>Energiansäästö pois käytöstä</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="389"/>
<location filename="../qml/LedPage.qml" line="402"/>
<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"/>
<location filename="../qml/LedPage.qml" line="410"/>
<source>Keep mode indicators on</source>
<translation>Pidä tilan merkkivalot päällä</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="403"/>
<location filename="../qml/LedPage.qml" line="416"/>
<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"/>
<location filename="../qml/LedPage.qml" line="423"/>
<source>Service diagnostics</source>
<translation>Huoltodiagnostiikka</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="416"/>
<location filename="../qml/LedPage.qml" line="429"/>
<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"/>
<location filename="../qml/LedPage.qml" line="437"/>
<source>Factory LED test</source>
<translation>Tehtaan LED-testi</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="430"/>
<location filename="../qml/LedPage.qml" line="443"/>
<source>LED diagnostics</source>
<translation>LED-diagnostiikka</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="435"/>
<location filename="../qml/LedPage.qml" line="448"/>
<source>Choose charging color</source>
<translation>Valitse latausväri</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="459"/>
<source>These special values enable animated charging effects. You can also choose a normal custom color.</source>
<translation>Nämä erikoisarvot ottavat animoidut lataustehosteet käyttöön. Voit myös valita tavallisen mukautetun värin.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="466"/>
<source>Category colors</source>
<translation>Kategoriavärit</translation>
</message>
<message>
<source>Magic charging</source>
<translation type="vanished">Maaginen lataus</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="472"/>
<source>Rainbow charging</source>
<translation>Sateenkaarilataus</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="478"/>
<source>Custom color…</source>
<translation>Mukautettu väri…</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="486"/>
<source>Choose color for %1</source>
<translation>Valitse kohteen %1 väri</translation>
</message>
@@ -3863,7 +4091,7 @@
<message>
<location filename="../qml/SensorCategoryPage.qml" line="51"/>
<source>None</source>
<translation type="unfinished">Ei mitään</translation>
<translation>Ei mitään</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="52"/>
+261 -33
View File
@@ -29,9 +29,8 @@
<translation>Aktiver demomodus</translation>
</message>
<message>
<location filename="../qml/AboutPage.qml" line="44"/>
<source>Set charging color to new</source>
<translation>Sett ladefarge til ny</translation>
<translation type="vanished">Sett ladefarge til ny</translation>
</message>
</context>
<context>
@@ -1531,10 +1530,210 @@
<context>
<name>DateAndTimePage</name>
<message>
<location filename="../qml/DateAndTimePage.qml" line="6"/>
<location filename="../qml/DateAndTimePage.qml" line="11"/>
<source>Date and time</source>
<translation>Dato og tid</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="35"/>
<location filename="../qml/DateAndTimePage.qml" line="122"/>
<source>Custom</source>
<translation>Tilpasset</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="168"/>
<source>The charger uses its clock for schedules, flexible energy prices and recorded data.</source>
<translation>Laderen bruker klokken sin til tidsplaner, fleksible energipriser og registrerte data.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="173"/>
<source>Current device time</source>
<translation>Gjeldende enhetstid</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="178"/>
<source>UTC time</source>
<translation>UTC-tid</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="189"/>
<source>Local time</source>
<translation>Lokal tid</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="202"/>
<location filename="../qml/DateAndTimePage.qml" line="208"/>
<source>Sync from phone</source>
<translation>Synkroniser fra telefonen</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="211"/>
<source>Set the charger clock to the phone&apos;s current time.</source>
<translation>Still laderens klokke til telefonens gjeldende tid.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="223"/>
<source>Timezone</source>
<translation>Tidssone</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="229"/>
<source>Choose a timezone to configure its standard offset and daylight-saving rule automatically.</source>
<translation>Velg en tidssone for å konfigurere standardavviket og sommertidsregelen automatisk.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="237"/>
<location filename="../qml/DateAndTimePage.qml" line="244"/>
<location filename="../qml/DateAndTimePage.qml" line="384"/>
<source>Timezone preset</source>
<translation>Forhåndsvalgt tidssone</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="260"/>
<source>UTC offset</source>
<translation>UTC-avvik</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="275"/>
<source>minutes</source>
<translation>minutter</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="281"/>
<source>Daylight-saving rule</source>
<translation>Sommertidsregel</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="284"/>
<source>None</source>
<translation>Ingen</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="285"/>
<source>European</source>
<translation>Europeisk</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="286"/>
<source>United States</source>
<translation>USA</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="287"/>
<source>Australian</source>
<translation>Australsk</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="294"/>
<source>Network time (NTP)</source>
<translation>Nettverkstid (NTP)</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="300"/>
<source>NTP keeps the charger clock synchronized automatically while it has internet access.</source>
<translation>NTP holder laderens klokke automatisk synkronisert når den har internettilgang.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="308"/>
<source>Automatic time synchronization</source>
<translation>Automatisk tidssynkronisering</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="313"/>
<source>NTP server</source>
<translation>NTP-server</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="328"/>
<source>Synchronization status</source>
<translation>Synkroniseringsstatus</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="331"/>
<source>Not synchronized</source>
<translation>Ikke synkronisert</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="332"/>
<source>Synchronized</source>
<translation>Synkronisert</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="333"/>
<source>Synchronizing</source>
<translation>Synkroniserer</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="334"/>
<source>Unknown (%1)</source>
<translation>Ukjent (%1)</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="343"/>
<location filename="../qml/DateAndTimePage.qml" line="349"/>
<source>Synchronize now</source>
<translation>Synkroniser nå</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="353"/>
<source>Ask the configured NTP server for the current time.</source>
<translation>Be den konfigurerte NTP-serveren om gjeldende tid.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="354"/>
<source>Enable automatic time synchronization first.</source>
<translation>Aktiver automatisk tidssynkronisering først.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="366"/>
<source>Synchronization mode</source>
<translation>Synkroniseringsmodus</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="369"/>
<source>Immediate</source>
<translation>Umiddelbar</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="370"/>
<source>Smooth</source>
<translation>Jevn</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="376"/>
<source>Synchronization interval</source>
<translation>Synkroniseringsintervall</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="397"/>
<source>The preset is stored on the charger and configures the firmware&apos;s supported daylight-saving calculation.</source>
<translation>Forhåndsvalget lagres på laderen og konfigurerer sommertidsberegningen som støttes av fastvaren.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="427"/>
<source>No daylight saving</source>
<translation>Ingen sommertid</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="428"/>
<source>European daylight saving</source>
<translation>Europeisk sommertid</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="429"/>
<source>US daylight saving</source>
<translation>Amerikansk sommertid</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="430"/>
<source>Australian daylight saving</source>
<translation>Australsk sommertid</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="431"/>
<source>Unknown</source>
<translation>Ukjent</translation>
</message>
</context>
<context>
<name>DeviceConnection</name>
@@ -1873,7 +2072,7 @@
<translation>For fjerntilgang må et passord først konfigureres. Dette kan gjøres via tilgangspunktet.</translation>
</message>
<message>
<location filename="../qml/DeviceScreen.qml" line="154"/>
<location filename="../qml/DeviceScreen.qml" line="183"/>
<source>Connection disturbed</source>
<translation>Forbindelsen forstyrret</translation>
</message>
@@ -1898,32 +2097,32 @@
<context>
<name>DurationEditItem</name>
<message>
<location filename="../qml/DurationEditItem.qml" line="22"/>
<location filename="../qml/DurationEditItem.qml" line="23"/>
<source>%1 h</source>
<translation>%1 h</translation>
</message>
<message>
<location filename="../qml/DurationEditItem.qml" line="24"/>
<location filename="../qml/DurationEditItem.qml" line="25"/>
<source>%1 min</source>
<translation>%1 min</translation>
</message>
<message>
<location filename="../qml/DurationEditItem.qml" line="26"/>
<location filename="../qml/DurationEditItem.qml" line="27"/>
<source>%1 s</source>
<translation>%1 s</translation>
</message>
<message>
<location filename="../qml/DurationEditItem.qml" line="63"/>
<location filename="../qml/DurationEditItem.qml" line="65"/>
<source>Hours</source>
<translation>Timer</translation>
</message>
<message>
<location filename="../qml/DurationEditItem.qml" line="74"/>
<location filename="../qml/DurationEditItem.qml" line="76"/>
<source>Minutes</source>
<translation>Minutter</translation>
</message>
<message>
<location filename="../qml/DurationEditItem.qml" line="85"/>
<location filename="../qml/DurationEditItem.qml" line="87"/>
<source>Seconds</source>
<translation>Sekunder</translation>
</message>
@@ -3027,108 +3226,137 @@
<translation>Konfigurert forhåndsvisning</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="192"/>
<location filename="../qml/LedPage.qml" line="205"/>
<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"/>
<location filename="../qml/LedPage.qml" line="211"/>
<source>LED ring preview</source>
<translation>Forhåndsvisning av LED-ring</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="207"/>
<location filename="../qml/LedPage.qml" line="220"/>
<source>Preview</source>
<translation>Forhåndsvisning</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="250"/>
<location filename="../qml/LedPage.qml" line="263"/>
<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"/>
<location filename="../qml/LedPage.qml" line="272"/>
<source>Brightness</source>
<translation>Lysstyrke</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="264"/>
<location filename="../qml/LedPage.qml" line="277"/>
<source>LED brightness</source>
<translation>LED-lysstyrke</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="268"/>
<location filename="../qml/LedPage.qml" line="276"/>
<location filename="../qml/LedPage.qml" line="281"/>
<location filename="../qml/LedPage.qml" line="289"/>
<source>%1%</source>
<translation>%1%</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="293"/>
<location filename="../qml/LedPage.qml" line="306"/>
<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"/>
<location filename="../qml/LedPage.qml" line="315"/>
<source>Status colors</source>
<translation>Statusfarger</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="308"/>
<location filename="../qml/LedPage.qml" line="321"/>
<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"/>
<location filename="../qml/LedPage.qml" line="390"/>
<source>Energy saving</source>
<translation>Energisparing</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="383"/>
<location filename="../qml/LedPage.qml" line="396"/>
<source>Energy saving on</source>
<translation>Energisparing på</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="383"/>
<location filename="../qml/LedPage.qml" line="396"/>
<source>Energy saving off</source>
<translation>Energisparing av</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="389"/>
<location filename="../qml/LedPage.qml" line="402"/>
<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"/>
<location filename="../qml/LedPage.qml" line="410"/>
<source>Keep mode indicators on</source>
<translation>Behold modusindikatorene på</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="403"/>
<location filename="../qml/LedPage.qml" line="416"/>
<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"/>
<location filename="../qml/LedPage.qml" line="423"/>
<source>Service diagnostics</source>
<translation>Servicediagnostikk</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="416"/>
<location filename="../qml/LedPage.qml" line="429"/>
<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"/>
<location filename="../qml/LedPage.qml" line="437"/>
<source>Factory LED test</source>
<translation>LED-test fra fabrikk</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="430"/>
<location filename="../qml/LedPage.qml" line="443"/>
<source>LED diagnostics</source>
<translation>LED-diagnostikk</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="435"/>
<location filename="../qml/LedPage.qml" line="448"/>
<source>Choose charging color</source>
<translation>Velg ladefarge</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="459"/>
<source>These special values enable animated charging effects. You can also choose a normal custom color.</source>
<translation>Disse spesialverdiene aktiverer animerte ladeeffekter. Du kan også velge en vanlig tilpasset farge.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="466"/>
<source>Category colors</source>
<translation>Kategorifarger</translation>
</message>
<message>
<source>Magic charging</source>
<translation type="vanished">Magisk lading</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="472"/>
<source>Rainbow charging</source>
<translation>Regnbuelading</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="478"/>
<source>Custom color…</source>
<translation>Tilpasset farge…</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="486"/>
<source>Choose color for %1</source>
<translation>Velg farge for %1</translation>
</message>
@@ -3863,7 +4091,7 @@
<message>
<location filename="../qml/SensorCategoryPage.qml" line="51"/>
<source>None</source>
<translation type="unfinished">Ingen</translation>
<translation>Ingen</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="52"/>
+261 -33
View File
@@ -29,9 +29,8 @@
<translation>Aktivera demoläge</translation>
</message>
<message>
<location filename="../qml/AboutPage.qml" line="44"/>
<source>Set charging color to new</source>
<translation>Ställ in laddningsfärgen till ny</translation>
<translation type="vanished">Ställ in laddningsfärgen till ny</translation>
</message>
</context>
<context>
@@ -1531,10 +1530,210 @@
<context>
<name>DateAndTimePage</name>
<message>
<location filename="../qml/DateAndTimePage.qml" line="6"/>
<location filename="../qml/DateAndTimePage.qml" line="11"/>
<source>Date and time</source>
<translation>Datum och tid</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="35"/>
<location filename="../qml/DateAndTimePage.qml" line="122"/>
<source>Custom</source>
<translation>Anpassad</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="168"/>
<source>The charger uses its clock for schedules, flexible energy prices and recorded data.</source>
<translation>Laddaren använder sin klocka för scheman, flexibla energipriser och registrerade data.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="173"/>
<source>Current device time</source>
<translation>Aktuell enhetstid</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="178"/>
<source>UTC time</source>
<translation>UTC-tid</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="189"/>
<source>Local time</source>
<translation>Lokal tid</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="202"/>
<location filename="../qml/DateAndTimePage.qml" line="208"/>
<source>Sync from phone</source>
<translation>Synkronisera från telefonen</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="211"/>
<source>Set the charger clock to the phone&apos;s current time.</source>
<translation>Ställ in laddarens klocka på telefonens aktuella tid.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="223"/>
<source>Timezone</source>
<translation>Tidszon</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="229"/>
<source>Choose a timezone to configure its standard offset and daylight-saving rule automatically.</source>
<translation>Välj en tidszon för att automatiskt konfigurera dess standardoffset och sommartidsregel.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="237"/>
<location filename="../qml/DateAndTimePage.qml" line="244"/>
<location filename="../qml/DateAndTimePage.qml" line="384"/>
<source>Timezone preset</source>
<translation>Förinställd tidszon</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="260"/>
<source>UTC offset</source>
<translation>UTC-offset</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="275"/>
<source>minutes</source>
<translation>minuter</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="281"/>
<source>Daylight-saving rule</source>
<translation>Sommartidsregel</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="284"/>
<source>None</source>
<translation>Ingen</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="285"/>
<source>European</source>
<translation>Europeisk</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="286"/>
<source>United States</source>
<translation>USA</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="287"/>
<source>Australian</source>
<translation>Australisk</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="294"/>
<source>Network time (NTP)</source>
<translation>Nätverkstid (NTP)</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="300"/>
<source>NTP keeps the charger clock synchronized automatically while it has internet access.</source>
<translation>NTP håller laddarens klocka automatiskt synkroniserad när den har internetåtkomst.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="308"/>
<source>Automatic time synchronization</source>
<translation>Automatisk tidssynkronisering</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="313"/>
<source>NTP server</source>
<translation>NTP-server</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="328"/>
<source>Synchronization status</source>
<translation>Synkroniseringsstatus</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="331"/>
<source>Not synchronized</source>
<translation>Inte synkroniserad</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="332"/>
<source>Synchronized</source>
<translation>Synkroniserad</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="333"/>
<source>Synchronizing</source>
<translation>Synkroniserar</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="334"/>
<source>Unknown (%1)</source>
<translation>Okänd (%1)</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="343"/>
<location filename="../qml/DateAndTimePage.qml" line="349"/>
<source>Synchronize now</source>
<translation>Synkronisera nu</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="353"/>
<source>Ask the configured NTP server for the current time.</source>
<translation>Hämta aktuell tid från den konfigurerade NTP-servern.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="354"/>
<source>Enable automatic time synchronization first.</source>
<translation>Aktivera automatisk tidssynkronisering först.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="366"/>
<source>Synchronization mode</source>
<translation>Synkroniseringsläge</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="369"/>
<source>Immediate</source>
<translation>Omedelbar</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="370"/>
<source>Smooth</source>
<translation>Mjuk</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="376"/>
<source>Synchronization interval</source>
<translation>Synkroniseringsintervall</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="397"/>
<source>The preset is stored on the charger and configures the firmware&apos;s supported daylight-saving calculation.</source>
<translation>Förinställningen lagras på laddaren och konfigurerar den sommartidsberäkning som stöds av den fasta programvaran.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="427"/>
<source>No daylight saving</source>
<translation>Ingen sommartid</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="428"/>
<source>European daylight saving</source>
<translation>Europeisk sommartid</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="429"/>
<source>US daylight saving</source>
<translation>Amerikansk sommartid</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="430"/>
<source>Australian daylight saving</source>
<translation>Australisk sommartid</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="431"/>
<source>Unknown</source>
<translation>Okänd</translation>
</message>
</context>
<context>
<name>DeviceConnection</name>
@@ -1873,7 +2072,7 @@
<translation>För fjärråtkomst måste ett lösenord först konfigureras. Det kan göras via åtkomstpunkten.</translation>
</message>
<message>
<location filename="../qml/DeviceScreen.qml" line="154"/>
<location filename="../qml/DeviceScreen.qml" line="183"/>
<source>Connection disturbed</source>
<translation>Anslutningen störd</translation>
</message>
@@ -1898,32 +2097,32 @@
<context>
<name>DurationEditItem</name>
<message>
<location filename="../qml/DurationEditItem.qml" line="22"/>
<location filename="../qml/DurationEditItem.qml" line="23"/>
<source>%1 h</source>
<translation>%1 h</translation>
</message>
<message>
<location filename="../qml/DurationEditItem.qml" line="24"/>
<location filename="../qml/DurationEditItem.qml" line="25"/>
<source>%1 min</source>
<translation>%1 min</translation>
</message>
<message>
<location filename="../qml/DurationEditItem.qml" line="26"/>
<location filename="../qml/DurationEditItem.qml" line="27"/>
<source>%1 s</source>
<translation>%1 s</translation>
</message>
<message>
<location filename="../qml/DurationEditItem.qml" line="63"/>
<location filename="../qml/DurationEditItem.qml" line="65"/>
<source>Hours</source>
<translation>Timmar</translation>
</message>
<message>
<location filename="../qml/DurationEditItem.qml" line="74"/>
<location filename="../qml/DurationEditItem.qml" line="76"/>
<source>Minutes</source>
<translation>Minuter</translation>
</message>
<message>
<location filename="../qml/DurationEditItem.qml" line="85"/>
<location filename="../qml/DurationEditItem.qml" line="87"/>
<source>Seconds</source>
<translation>Sekunder</translation>
</message>
@@ -3027,108 +3226,137 @@
<translation>Konfigurerad förhandsvisning</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="192"/>
<location filename="../qml/LedPage.qml" line="205"/>
<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"/>
<location filename="../qml/LedPage.qml" line="211"/>
<source>LED ring preview</source>
<translation>Förhandsvisning av LED-ring</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="207"/>
<location filename="../qml/LedPage.qml" line="220"/>
<source>Preview</source>
<translation>Förhandsvisning</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="250"/>
<location filename="../qml/LedPage.qml" line="263"/>
<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"/>
<location filename="../qml/LedPage.qml" line="272"/>
<source>Brightness</source>
<translation>Ljusstyrka</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="264"/>
<location filename="../qml/LedPage.qml" line="277"/>
<source>LED brightness</source>
<translation>LED-ljusstyrka</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="268"/>
<location filename="../qml/LedPage.qml" line="276"/>
<location filename="../qml/LedPage.qml" line="281"/>
<location filename="../qml/LedPage.qml" line="289"/>
<source>%1%</source>
<translation>%1%</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="293"/>
<location filename="../qml/LedPage.qml" line="306"/>
<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"/>
<location filename="../qml/LedPage.qml" line="315"/>
<source>Status colors</source>
<translation>Statusfärger</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="308"/>
<location filename="../qml/LedPage.qml" line="321"/>
<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"/>
<location filename="../qml/LedPage.qml" line="390"/>
<source>Energy saving</source>
<translation>Energisparläge</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="383"/>
<location filename="../qml/LedPage.qml" line="396"/>
<source>Energy saving on</source>
<translation>Energisparläge på</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="383"/>
<location filename="../qml/LedPage.qml" line="396"/>
<source>Energy saving off</source>
<translation>Energisparläge av</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="389"/>
<location filename="../qml/LedPage.qml" line="402"/>
<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"/>
<location filename="../qml/LedPage.qml" line="410"/>
<source>Keep mode indicators on</source>
<translation>Behåll lägesindikatorerna tända</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="403"/>
<location filename="../qml/LedPage.qml" line="416"/>
<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"/>
<location filename="../qml/LedPage.qml" line="423"/>
<source>Service diagnostics</source>
<translation>Servicediagnostik</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="416"/>
<location filename="../qml/LedPage.qml" line="429"/>
<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"/>
<location filename="../qml/LedPage.qml" line="437"/>
<source>Factory LED test</source>
<translation>LED-test från fabrik</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="430"/>
<location filename="../qml/LedPage.qml" line="443"/>
<source>LED diagnostics</source>
<translation>LED-diagnostik</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="435"/>
<location filename="../qml/LedPage.qml" line="448"/>
<source>Choose charging color</source>
<translation>Välj laddningsfärg</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="459"/>
<source>These special values enable animated charging effects. You can also choose a normal custom color.</source>
<translation>Dessa specialvärden aktiverar animerade laddningseffekter. Du kan också välja en vanlig anpassad färg.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="466"/>
<source>Category colors</source>
<translation>Kategorifärger</translation>
</message>
<message>
<source>Magic charging</source>
<translation type="vanished">Magisk laddning</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="472"/>
<source>Rainbow charging</source>
<translation>Regnbågsladdning</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="478"/>
<source>Custom color…</source>
<translation>Anpassad färg…</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="486"/>
<source>Choose color for %1</source>
<translation>Välj färg för %1</translation>
</message>
@@ -3863,7 +4091,7 @@
<message>
<location filename="../qml/SensorCategoryPage.qml" line="51"/>
<source>None</source>
<translation type="unfinished">Ingen</translation>
<translation>Ingen</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="52"/>
+262 -34
View File
@@ -29,9 +29,8 @@
<translation>Demo modunu etkinleştir</translation>
</message>
<message>
<location filename="../qml/AboutPage.qml" line="44"/>
<source>Set charging color to new</source>
<translation>Şarj rengini yeniye ayarla</translation>
<translation type="vanished">Şarj rengini yeniye ayarla</translation>
</message>
</context>
<context>
@@ -452,7 +451,7 @@
<message>
<location filename="../qml/CellularPage.qml" line="146"/>
<source>None</source>
<translation>Hiçbiri</translation>
<translation>Yok</translation>
</message>
<message>
<location filename="../qml/CellularPage.qml" line="147"/>
@@ -1531,10 +1530,210 @@
<context>
<name>DateAndTimePage</name>
<message>
<location filename="../qml/DateAndTimePage.qml" line="6"/>
<location filename="../qml/DateAndTimePage.qml" line="11"/>
<source>Date and time</source>
<translation>Tarih ve saat</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="35"/>
<location filename="../qml/DateAndTimePage.qml" line="122"/>
<source>Custom</source>
<translation>Özel</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="168"/>
<source>The charger uses its clock for schedules, flexible energy prices and recorded data.</source>
<translation>Şarj cihazı; programlar, esnek enerji fiyatları ve kaydedilen veriler için saatini kullanır.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="173"/>
<source>Current device time</source>
<translation>Geçerli cihaz saati</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="178"/>
<source>UTC time</source>
<translation>UTC saati</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="189"/>
<source>Local time</source>
<translation>Yerel saat</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="202"/>
<location filename="../qml/DateAndTimePage.qml" line="208"/>
<source>Sync from phone</source>
<translation>Telefondan eşitle</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="211"/>
<source>Set the charger clock to the phone&apos;s current time.</source>
<translation>Şarj cihazının saatini telefonun geçerli saatine ayarlayın.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="223"/>
<source>Timezone</source>
<translation>Saat dilimi</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="229"/>
<source>Choose a timezone to configure its standard offset and daylight-saving rule automatically.</source>
<translation>Standart UTC farkını ve yaz saati kuralını otomatik olarak yapılandırmak için bir saat dilimi seçin.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="237"/>
<location filename="../qml/DateAndTimePage.qml" line="244"/>
<location filename="../qml/DateAndTimePage.qml" line="384"/>
<source>Timezone preset</source>
<translation>Saat dilimi ön ayarı</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="260"/>
<source>UTC offset</source>
<translation>UTC farkı</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="275"/>
<source>minutes</source>
<translation>dakika</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="281"/>
<source>Daylight-saving rule</source>
<translation>Yaz saati kuralı</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="284"/>
<source>None</source>
<translation>Yok</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="285"/>
<source>European</source>
<translation>Avrupa</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="286"/>
<source>United States</source>
<translation>Amerika Birleşik Devletleri</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="287"/>
<source>Australian</source>
<translation>Avustralya</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="294"/>
<source>Network time (NTP)</source>
<translation>Ağ zamanı (NTP)</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="300"/>
<source>NTP keeps the charger clock synchronized automatically while it has internet access.</source>
<translation>NTP, internet erişimi varken şarj cihazının saatini otomatik olarak eşitler.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="308"/>
<source>Automatic time synchronization</source>
<translation>Otomatik zaman eşitleme</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="313"/>
<source>NTP server</source>
<translation>NTP sunucusu</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="328"/>
<source>Synchronization status</source>
<translation>Eşitleme durumu</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="331"/>
<source>Not synchronized</source>
<translation>Eşitlenmedi</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="332"/>
<source>Synchronized</source>
<translation>Eşitlendi</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="333"/>
<source>Synchronizing</source>
<translation>Eşitleniyor</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="334"/>
<source>Unknown (%1)</source>
<translation>Bilinmiyor (%1)</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="343"/>
<location filename="../qml/DateAndTimePage.qml" line="349"/>
<source>Synchronize now</source>
<translation>Şimdi eşitle</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="353"/>
<source>Ask the configured NTP server for the current time.</source>
<translation>Yapılandırılmış NTP sunucusundan geçerli zamanı isteyin.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="354"/>
<source>Enable automatic time synchronization first.</source>
<translation>Önce otomatik zaman eşitlemeyi etkinleştirin.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="366"/>
<source>Synchronization mode</source>
<translation>Eşitleme modu</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="369"/>
<source>Immediate</source>
<translation>Anında</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="370"/>
<source>Smooth</source>
<translation>Kademeli</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="376"/>
<source>Synchronization interval</source>
<translation>Eşitleme aralığı</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="397"/>
<source>The preset is stored on the charger and configures the firmware&apos;s supported daylight-saving calculation.</source>
<translation>Ön ayar şarj cihazında saklanır ve ürün yazılımının desteklediği yaz saati hesaplamasını yapılandırır.</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="427"/>
<source>No daylight saving</source>
<translation>Yaz saati yok</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="428"/>
<source>European daylight saving</source>
<translation>Avrupa yaz saati</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="429"/>
<source>US daylight saving</source>
<translation>ABD yaz saati</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="430"/>
<source>Australian daylight saving</source>
<translation>Avustralya yaz saati</translation>
</message>
<message>
<location filename="../qml/DateAndTimePage.qml" line="431"/>
<source>Unknown</source>
<translation>Bilinmiyor</translation>
</message>
</context>
<context>
<name>DeviceConnection</name>
@@ -1873,7 +2072,7 @@
<translation>Bu şifreyi uzaktan kullanmak için önce bir şifre ayarlanmalıdır. Bu işlem erişim noktası üzerinden yapılabilir.</translation>
</message>
<message>
<location filename="../qml/DeviceScreen.qml" line="154"/>
<location filename="../qml/DeviceScreen.qml" line="183"/>
<source>Connection disturbed</source>
<translation>Bağlantı bozuldu</translation>
</message>
@@ -1898,32 +2097,32 @@
<context>
<name>DurationEditItem</name>
<message>
<location filename="../qml/DurationEditItem.qml" line="22"/>
<location filename="../qml/DurationEditItem.qml" line="23"/>
<source>%1 h</source>
<translation>%1 h</translation>
</message>
<message>
<location filename="../qml/DurationEditItem.qml" line="24"/>
<location filename="../qml/DurationEditItem.qml" line="25"/>
<source>%1 min</source>
<translation>%1 dk.</translation>
</message>
<message>
<location filename="../qml/DurationEditItem.qml" line="26"/>
<location filename="../qml/DurationEditItem.qml" line="27"/>
<source>%1 s</source>
<translation>%1 s</translation>
</message>
<message>
<location filename="../qml/DurationEditItem.qml" line="63"/>
<location filename="../qml/DurationEditItem.qml" line="65"/>
<source>Hours</source>
<translation>Saat</translation>
</message>
<message>
<location filename="../qml/DurationEditItem.qml" line="74"/>
<location filename="../qml/DurationEditItem.qml" line="76"/>
<source>Minutes</source>
<translation>dakika</translation>
</message>
<message>
<location filename="../qml/DurationEditItem.qml" line="85"/>
<location filename="../qml/DurationEditItem.qml" line="87"/>
<source>Seconds</source>
<translation>Saniye</translation>
</message>
@@ -3027,108 +3226,137 @@
<translation>Yapılandırılmış önizleme</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="192"/>
<location filename="../qml/LedPage.qml" line="205"/>
<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"/>
<location filename="../qml/LedPage.qml" line="211"/>
<source>LED ring preview</source>
<translation>LED halkası önizlemesi</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="207"/>
<location filename="../qml/LedPage.qml" line="220"/>
<source>Preview</source>
<translation>Önizleme</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="250"/>
<location filename="../qml/LedPage.qml" line="263"/>
<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"/>
<location filename="../qml/LedPage.qml" line="272"/>
<source>Brightness</source>
<translation>Parlaklık</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="264"/>
<location filename="../qml/LedPage.qml" line="277"/>
<source>LED brightness</source>
<translation>LED parlaklığı</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="268"/>
<location filename="../qml/LedPage.qml" line="276"/>
<location filename="../qml/LedPage.qml" line="281"/>
<location filename="../qml/LedPage.qml" line="289"/>
<source>%1%</source>
<translation>%1%</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="293"/>
<location filename="../qml/LedPage.qml" line="306"/>
<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"/>
<location filename="../qml/LedPage.qml" line="315"/>
<source>Status colors</source>
<translation>Durum renkleri</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="308"/>
<location filename="../qml/LedPage.qml" line="321"/>
<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"/>
<location filename="../qml/LedPage.qml" line="390"/>
<source>Energy saving</source>
<translation>Enerji tasarrufu</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="383"/>
<location filename="../qml/LedPage.qml" line="396"/>
<source>Energy saving on</source>
<translation>Enerji tasarrufu açık</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="383"/>
<location filename="../qml/LedPage.qml" line="396"/>
<source>Energy saving off</source>
<translation>Enerji tasarrufu kapalı</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="389"/>
<location filename="../qml/LedPage.qml" line="402"/>
<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"/>
<location filename="../qml/LedPage.qml" line="410"/>
<source>Keep mode indicators on</source>
<translation>Mod göstergelerini açık tut</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="403"/>
<location filename="../qml/LedPage.qml" line="416"/>
<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"/>
<location filename="../qml/LedPage.qml" line="423"/>
<source>Service diagnostics</source>
<translation>Servis tanılama</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="416"/>
<location filename="../qml/LedPage.qml" line="429"/>
<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"/>
<location filename="../qml/LedPage.qml" line="437"/>
<source>Factory LED test</source>
<translation>Fabrika LED testi</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="430"/>
<location filename="../qml/LedPage.qml" line="443"/>
<source>LED diagnostics</source>
<translation>LED tanılama</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="435"/>
<location filename="../qml/LedPage.qml" line="448"/>
<source>Choose charging color</source>
<translation>Şarj rengini seçin</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="459"/>
<source>These special values enable animated charging effects. You can also choose a normal custom color.</source>
<translation>Bu özel değerler animasyonlu şarj efektlerini etkinleştirir. Normal bir özel renk de seçebilirsiniz.</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="466"/>
<source>Category colors</source>
<translation>Kategori renkleri</translation>
</message>
<message>
<source>Magic charging</source>
<translation type="vanished">Sihirli şarj</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="472"/>
<source>Rainbow charging</source>
<translation>Gökkuşağı şarjı</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="478"/>
<source>Custom color…</source>
<translation>Özel renk…</translation>
</message>
<message>
<location filename="../qml/LedPage.qml" line="486"/>
<source>Choose color for %1</source>
<translation>%1 için renk seçin</translation>
</message>
@@ -3863,7 +4091,7 @@
<message>
<location filename="../qml/SensorCategoryPage.qml" line="51"/>
<source>None</source>
<translation type="unfinished">Hiçbiri</translation>
<translation>Yok</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="52"/>
-22
View File
@@ -35,26 +35,4 @@ NavigationPage {
text: qsTr("Enable demo mode")
visible: true
}
WhiteItemDelegate {
SendMessageHelper {
id: setChargingColor
deviceConnection: theDeviceConnection
}
text: qsTr("Set charging color to new")
onClicked: setChargingColor.sendMessage({
type: "setValue",
key: "cch",
value: "#FEFEFE"
})
BusyIndicator {
visible: setChargingColor.pending
}
RequestStatusText {
request: setChargingColor
}
}
}
+424 -3
View File
@@ -1,13 +1,434 @@
pragma ComponentBehavior: Bound
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import EVChargerApp
NavigationPage {
id: page
title: qsTr("Date and time")
Text {
text: "TODO"
readonly property var timezonePresets: [
{ key: "UTC", name: "UTC", offset: 0, dst: 0 },
{ key: "Europe/London", name: "Europe/London", offset: 0, dst: 1 },
{ key: "Europe/Vienna", name: "Europe/Vienna", offset: 60, dst: 1 },
{ key: "Europe/Berlin", name: "Europe/Berlin", offset: 60, dst: 1 },
{ key: "Europe/Stockholm", name: "Europe/Stockholm", offset: 60, dst: 1 },
{ key: "Europe/Oslo", name: "Europe/Oslo", offset: 60, dst: 1 },
{ key: "Europe/Copenhagen", name: "Europe/Copenhagen", offset: 60, dst: 1 },
{ key: "Europe/Helsinki", name: "Europe/Helsinki", offset: 120, dst: 1 },
{ key: "Europe/Istanbul", name: "Europe/Istanbul", offset: 180, dst: 0 },
{ key: "America/New_York", name: "America/New_York", offset: -300, dst: 2 },
{ key: "America/Chicago", name: "America/Chicago", offset: -360, dst: 2 },
{ key: "America/Denver", name: "America/Denver", offset: -420, dst: 2 },
{ key: "America/Los_Angeles", name: "America/Los_Angeles", offset: -480, dst: 2 },
{ key: "America/Phoenix", name: "America/Phoenix", offset: -420, dst: 0 },
{ key: "Pacific/Honolulu", name: "Pacific/Honolulu", offset: -600, dst: 0 },
{ key: "Australia/Perth", name: "Australia/Perth", offset: 480, dst: 0 },
{ key: "Australia/Adelaide", name: "Australia/Adelaide", offset: 570, dst: 3 },
{ key: "Australia/Sydney", name: "Australia/Sydney", offset: 600, dst: 3 },
{ key: "Australia/Brisbane", name: "Australia/Brisbane", offset: 600, dst: 0 },
{ key: "Asia/Kolkata", name: "Asia/Kolkata", offset: 330, dst: 0 },
{ key: "Asia/Tokyo", name: "Asia/Tokyo", offset: 540, dst: 0 },
{ key: "custom", name: qsTr("Custom"), offset: null, dst: null }
]
Layout.fillHeight: true
readonly property var legacyTimezoneAliases: ({
"gmt": "Europe/London",
"ect": "Europe/Vienna",
"eet": "Europe/Helsinki",
"jst": "Asia/Tokyo",
"awst": "Australia/Perth",
"acst": "Australia/Adelaide",
"aest": "Australia/Sydney",
"hst": "Pacific/Honolulu",
"pst": "America/Los_Angeles",
"pnt": "America/Denver",
"cst": "America/Chicago",
"est": "America/New_York"
})
function validNumber(value) {
return value !== null && value !== undefined && value !== "" && isFinite(Number(value))
}
function utcMilliseconds() {
if (!timeAtBoot.exists || !uptime.exists
|| !validNumber(timeAtBoot.value) || !validNumber(uptime.value))
return NaN
return Number(timeAtBoot.value) + Number(uptime.value)
}
function utcText() {
const derived = utcMilliseconds()
if (isFinite(derived))
return TimeUtils.formatEpochMilliseconds(derived)
if (legacyUtc.exists && legacyUtc.value)
return TimeUtils.formatDeviceDateTime(String(legacyUtc.value)) || String(legacyUtc.value)
return "—"
}
function localText() {
const derived = utcMilliseconds()
if (isFinite(derived) && localOffset.exists && validNumber(localOffset.value))
return TimeUtils.formatEpochMilliseconds(derived + Number(localOffset.value))
if (legacyLocal.exists && legacyLocal.value)
return TimeUtils.formatDeviceDateTime(String(legacyLocal.value)) || String(legacyLocal.value)
return "—"
}
function offsetText(minutes) {
if (!validNumber(minutes))
return "—"
const rounded = Math.round(Number(minutes))
const absolute = Math.abs(rounded)
const hours = Math.floor(absolute / 60)
const remainder = absolute % 60
return "UTC" + (rounded < 0 ? "−" : "+")
+ String(hours).padStart(2, "0") + ":"
+ String(remainder).padStart(2, "0")
}
function presetIndexForCurrentValues() {
let key = timezoneKey.exists && timezoneKey.value !== null
? String(timezoneKey.value) : ""
if (key in legacyTimezoneAliases)
key = legacyTimezoneAliases[key]
for (let i = 0; i < timezonePresets.length; ++i) {
if (timezonePresets[i].key === key)
return i
}
if (timezoneOffset.exists && daylightSaving.exists) {
for (let i = 0; i < timezonePresets.length - 1; ++i) {
const preset = timezonePresets[i]
if (preset.offset === Number(timezoneOffset.value)
&& preset.dst === Number(daylightSaving.value))
return i
}
}
return timezonePresets.length - 1
}
function timezoneText() {
const index = presetIndexForCurrentValues()
const preset = timezonePresets[index]
if (preset.key !== "custom")
return preset.name
if (timezoneKey.exists && timezoneKey.value
&& String(timezoneKey.value) !== "custom")
return String(timezoneKey.value)
return qsTr("Custom")
}
function applyTimezone(index) {
const preset = timezonePresets[index]
if (!preset)
return
if (timezoneKey.exists)
timezoneKeySetter.setValue(preset.key)
if (preset.key !== "custom") {
if (timezoneOffset.exists)
timezoneOffsetSetter.setValue(preset.offset)
if (daylightSaving.exists)
daylightSavingSetter.setValue(preset.dst)
}
}
function rememberCustomTimezone() {
if (timezoneKey.exists)
timezoneKeySetter.setValue("custom")
}
ApiKeyValueHelper { id: legacyUtc; deviceConnection: theDeviceConnection; apiKey: "utc" }
ApiKeyValueHelper { id: legacyLocal; deviceConnection: theDeviceConnection; apiKey: "loc" }
ApiKeyValueHelper { id: timeAtBoot; deviceConnection: theDeviceConnection; apiKey: "tab" }
ApiKeyValueHelper { id: uptime; deviceConnection: theDeviceConnection; apiKey: "rbt" }
ApiKeyValueHelper { id: localOffset; deviceConnection: theDeviceConnection; apiKey: "lto" }
ApiKeyValueHelper { id: timezoneOffset; deviceConnection: theDeviceConnection; apiKey: "tof" }
ApiKeyValueHelper { id: daylightSaving; deviceConnection: theDeviceConnection; apiKey: "tds" }
ApiKeyValueHelper { id: timezoneKey; deviceConnection: theDeviceConnection; apiKey: "tzt" }
ApiKeyValueHelper { id: ntpEnabled; deviceConnection: theDeviceConnection; apiKey: "tse" }
ApiKeyValueHelper { id: ntpServer; deviceConnection: theDeviceConnection; apiKey: "ts" }
ApiKeyValueHelper { id: ntpStatus; deviceConnection: theDeviceConnection; apiKey: "tsss" }
SetValueHelper { id: phoneTimeSetter; deviceConnection: theDeviceConnection; apiKey: "utc" }
SetValueHelper { id: timezoneKeySetter; deviceConnection: theDeviceConnection; apiKey: "tzt" }
SetValueHelper { id: timezoneOffsetSetter; deviceConnection: theDeviceConnection; apiKey: "tof" }
SetValueHelper { id: daylightSavingSetter; deviceConnection: theDeviceConnection; apiKey: "tds" }
SendMessageHelper {
id: ntpSynchronizer
deviceConnection: theDeviceConnection
}
Text {
Layout.fillWidth: true
text: qsTr("The charger uses its clock for schedules, flexible energy prices and recorded data.")
wrapMode: Text.Wrap
color: AppTheme.sectionLabelColor
}
SettingsSectionLabel { text: qsTr("Current device time") }
SettingsCard {
RowLayout {
Layout.fillWidth: true
SettingsLabel { text: qsTr("UTC time") }
Text {
Layout.fillWidth: true
text: page.utcText()
horizontalAlignment: Text.AlignRight
wrapMode: Text.Wrap
}
}
RowLayout {
Layout.fillWidth: true
SettingsLabel { text: qsTr("Local time") }
Text {
Layout.fillWidth: true
text: page.localText()
horizontalAlignment: Text.AlignRight
wrapMode: Text.Wrap
}
}
}
WhiteItemDelegate {
Layout.fillWidth: true
enabled: !phoneTimeSetter.pending
text: qsTr("Sync from phone")
onClicked: phoneTimeSetter.setValue(TimeUtils.currentUtcIsoString())
contentItem: RowLayout {
ColumnLayout {
Layout.fillWidth: true
SettingsLabel { Layout.fillWidth: true; text: qsTr("Sync from phone") }
Text {
Layout.fillWidth: true
text: qsTr("Set the charger clock to the phone's current time.")
wrapMode: Text.Wrap
color: AppTheme.sectionLabelColor
}
}
BusyIndicator { visible: phoneTimeSetter.pending }
RequestStatusText { request: phoneTimeSetter }
}
}
SettingsSectionLabel {
visible: timezoneOffset.exists || daylightSaving.exists || timezoneKey.exists
text: qsTr("Timezone")
}
Text {
Layout.fillWidth: true
visible: timezoneOffset.exists || daylightSaving.exists || timezoneKey.exists
text: qsTr("Choose a timezone to configure its standard offset and daylight-saving rule automatically.")
wrapMode: Text.Wrap
color: AppTheme.sectionLabelColor
}
WhiteItemDelegate {
Layout.fillWidth: true
visible: timezoneOffset.exists || daylightSaving.exists || timezoneKey.exists
text: qsTr("Timezone preset")
onClicked: {
timezoneCombo.currentIndex = page.presetIndexForCurrentValues()
timezoneDialog.open()
}
contentItem: RowLayout {
SettingsLabel { Layout.fillWidth: true; text: qsTr("Timezone preset") }
BusyIndicator {
visible: timezoneKeySetter.pending || timezoneOffsetSetter.pending
|| daylightSavingSetter.pending
}
Text { text: page.timezoneText() }
Text { text: ">" }
}
}
RequestStatusText { Layout.fillWidth: true; request: timezoneKeySetter }
RequestStatusText { Layout.fillWidth: true; request: timezoneOffsetSetter }
RequestStatusText { Layout.fillWidth: true; request: daylightSavingSetter }
EditValueItem {
apiKey: "tof"
text: qsTr("UTC offset")
visible: exists
valueText: page.offsetText(value)
fullWidth: true
onValueSubmitted: page.rememberCustomTimezone()
editableItem: RowLayout {
property alias value: offsetInput.value
SpinBox {
id: offsetInput
from: -720
to: 840
editable: true
}
Label { text: qsTr("minutes") }
}
}
ApiEnumEditItem {
apiKey: "tds"
text: qsTr("Daylight-saving rule")
visible: exists
choices: [
{ text: qsTr("None"), value: 0 },
{ text: qsTr("European"), value: 1 },
{ text: qsTr("United States"), value: 2 },
{ text: qsTr("Australian"), value: 3 }
]
onValueSubmitted: page.rememberCustomTimezone()
}
SettingsSectionLabel {
visible: ntpEnabled.exists || ntpServer.exists || ntpStatus.exists
text: qsTr("Network time (NTP)")
}
Text {
Layout.fillWidth: true
visible: ntpEnabled.exists || ntpServer.exists || ntpStatus.exists
text: qsTr("NTP keeps the charger clock synchronized automatically while it has internet access.")
wrapMode: Text.Wrap
color: AppTheme.sectionLabelColor
}
GeneralOnOffSwitch {
apiKey: "tse"
visible: exists
text: qsTr("Automatic time synchronization")
}
EditValueItem {
apiKey: "ts"
text: qsTr("NTP server")
visible: exists
valueText: value || "—"
fullWidth: true
editableItem: TextField {
id: ntpServerInput
property alias value: ntpServerInput.text
Layout.minimumWidth: 260
placeholderText: "europe.pool.ntp.org"
selectByMouse: true
}
}
ApiStatusRow {
apiKey: "tsss"
label: qsTr("Synchronization status")
valueFormatter: function(value) {
switch (Number(value)) {
case 0: return qsTr("Not synchronized")
case 1: return qsTr("Synchronized")
case 2: return qsTr("Synchronizing")
default: return qsTr("Unknown (%1)").arg(value)
}
}
}
WhiteItemDelegate {
Layout.fillWidth: true
visible: ntpEnabled.exists || ntpServer.exists || ntpStatus.exists
enabled: ntpEnabled.value === true && !ntpSynchronizer.pending
text: qsTr("Synchronize now")
onClicked: ntpSynchronizer.sendMessage({type: "syncTime"})
contentItem: RowLayout {
ColumnLayout {
Layout.fillWidth: true
SettingsLabel { Layout.fillWidth: true; text: qsTr("Synchronize now") }
Text {
Layout.fillWidth: true
text: ntpEnabled.value === true
? qsTr("Ask the configured NTP server for the current time.")
: qsTr("Enable automatic time synchronization first.")
wrapMode: Text.Wrap
color: AppTheme.sectionLabelColor
}
}
BusyIndicator { visible: ntpSynchronizer.pending }
RequestStatusText { request: ntpSynchronizer }
}
}
ApiEnumEditItem {
apiKey: "tssm"
text: qsTr("Synchronization mode")
visible: exists
choices: [
{ text: qsTr("Immediate"), value: 0 },
{ text: qsTr("Smooth"), value: 1 }
]
}
DurationEditItem {
apiKey: "tssi"
text: qsTr("Synchronization interval")
visible: exists
maximumHours: 168
minimumMilliseconds: 15000
}
CenteredDialog {
id: timezoneDialog
title: qsTr("Timezone preset")
standardButtons: Dialog.Ok | Dialog.Cancel
modal: true
focus: true
width: parent.width
onAccepted: page.applyTimezone(timezoneCombo.currentIndex)
contentItem: ColumnLayout {
spacing: 12
Text {
Layout.fillWidth: true
text: qsTr("The preset is stored on the charger and configures the firmware's supported daylight-saving calculation.")
wrapMode: Text.Wrap
}
ComboBox {
id: timezoneCombo
Layout.fillWidth: true
model: page.timezonePresets
textRole: "name"
}
Text {
Layout.fillWidth: true
visible: timezoneCombo.currentIndex >= 0
&& page.timezonePresets[timezoneCombo.currentIndex].key !== "custom"
text: {
if (timezoneCombo.currentIndex < 0)
return ""
const preset = page.timezonePresets[timezoneCombo.currentIndex]
return page.offsetText(preset.offset) + " · "
+ page.daylightSavingText(preset.dst)
}
wrapMode: Text.Wrap
color: AppTheme.sectionLabelColor
}
}
}
function daylightSavingText(value) {
switch (Number(value)) {
case 0: return qsTr("No daylight saving")
case 1: return qsTr("European daylight saving")
case 2: return qsTr("US daylight saving")
case 3: return qsTr("Australian daylight saving")
default: return qsTr("Unknown")
}
}
}
+41 -8
View File
@@ -141,19 +141,52 @@ Loader {
}
}
WhiteBox {
Item {
id: connectionDisturbed
anchors.centerIn: parent
width: Math.min(parent.width - 32, 320)
padding: 16
anchors.fill: parent
visible: false
z: 100
contentItem: Text {
text: qsTr("Connection disturbed")
wrapMode: Text.Wrap
horizontalAlignment: Text.AlignHCenter
Rectangle {
anchors.fill: parent
color: "#73000000"
}
// Block normal interaction with this disconnected device. The
// application-level multi-finger handlers are above this item and can
// still switch language or app instance.
MouseArea {
anchors.fill: parent
acceptedButtons: Qt.AllButtons
preventStealing: false
onWheel: (wheel) => wheel.accepted = true
}
WhiteBox {
anchors.centerIn: parent
width: Math.min(parent.width - 32, 320)
padding: 16
contentItem: RowLayout {
spacing: 12
MaterialIcon {
iconName: "warning"
color: "#b3261e"
font.pixelSize: 32
Layout.alignment: Qt.AlignVCenter
}
Text {
Layout.fillWidth: true
text: qsTr("Connection disturbed")
wrapMode: Text.Wrap
font.bold: true
horizontalAlignment: Text.AlignHCenter
Layout.alignment: Qt.AlignVCenter
}
}
}
}
}
+4 -2
View File
@@ -6,6 +6,7 @@ EditValueItem {
id: root
property int maximumHours: 168
property int minimumMilliseconds: 0
function durationText(milliseconds) {
if (milliseconds === null || milliseconds === undefined)
@@ -52,8 +53,9 @@ EditValueItem {
function updateValue() {
if (!updating)
value = ((hoursInput.value * 60 + minutesInput.value) * 60
+ secondsInput.value) * 1000
value = Math.max(root.minimumMilliseconds,
((hoursInput.value * 60 + minutesInput.value) * 60
+ secondsInput.value) * 1000)
}
onValueChanged: loadValue()
+2
View File
@@ -13,6 +13,7 @@ WhiteItemDelegate {
property alias exists: apiKeyValueHelper.exists
property bool fullWidth: false
property var editValueTransform: null
signal valueSubmitted(var value)
Layout.fillWidth: true
@@ -74,6 +75,7 @@ WhiteItemDelegate {
onAccepted: {
setValueHelper.setValue(editableItem.value)
itemDelegate.valueSubmitted(editableItem.value)
}
}
}
+52 -1
View File
@@ -112,7 +112,20 @@ NavigationPage {
selectedColorKey = option.key
selectedColorName = option.title
colorDialog.selectedColor = option.value || "#000000"
colorDialog.open()
if (option.key === "cch")
chargingColorDialog.open()
else
colorDialog.open()
}
function setChargingPreset(color) {
chargingColorDialog.close()
colorSetter.setValue(color)
}
function openCustomChargingColor() {
chargingColorDialog.close()
Qt.callLater(colorDialog.open)
}
ApiKeyValueHelper {
@@ -430,6 +443,44 @@ NavigationPage {
text: qsTr("LED diagnostics")
}
CenteredDialog {
id: chargingColorDialog
title: qsTr("Choose charging color")
standardButtons: Dialog.Cancel
modal: true
focus: true
width: parent.width
contentItem: ColumnLayout {
spacing: 8
Text {
Layout.fillWidth: true
text: qsTr("These special values enable animated charging effects. You can also choose a normal custom color.")
wrapMode: Text.Wrap
color: AppTheme.sectionLabelColor
}
Button {
Layout.fillWidth: true
text: qsTr("Category colors")
onClicked: page.setChargingPreset("#FEFEFE")
}
Button {
Layout.fillWidth: true
text: qsTr("Rainbow charging")
onClicked: page.setChargingPreset("#2A2A2A")
}
Button {
Layout.fillWidth: true
text: qsTr("Custom color…")
onClicked: page.openCustomChargingColor()
}
}
}
ColorDialog {
id: colorDialog
title: qsTr("Choose color for %1").arg(page.selectedColorName)
+45
View File
@@ -0,0 +1,45 @@
#include "timeutils.h"
#include <QDateTime>
#include <QLocale>
#include <QTimeZone>
namespace
{
QString formatWallClock(const QDateTime &dateTime)
{
return dateTime.isValid()
? QLocale::system().toString(dateTime, QLocale::ShortFormat)
: QString{};
}
}
QString TimeUtils::formatEpochMilliseconds(qint64 milliseconds) const
{
// Device-local time is represented as UTC milliseconds plus the device's
// offset. Keep the resulting wall-clock fields unchanged by formatting it
// in UTC instead of converting it to the phone's timezone.
return formatWallClock(QDateTime::fromMSecsSinceEpoch(milliseconds, QTimeZone::UTC));
}
QString TimeUtils::formatDeviceDateTime(const QString &value) const
{
QString timestamp = value.trimmed();
if (timestamp.size() >= 23)
timestamp = timestamp.left(23);
QDateTime parsed = QDateTime::fromString(timestamp, Qt::ISODateWithMs);
if (!parsed.isValid())
parsed = QDateTime::fromString(timestamp, Qt::ISODate);
if (!parsed.isValid())
return {};
// utc/loc are wall-clock strings. Reconstruct the parsed fields in UTC so
// QLocale does not silently apply the phone's timezone while formatting.
return formatWallClock(QDateTime(parsed.date(), parsed.time(), QTimeZone::UTC));
}
QString TimeUtils::currentUtcIsoString() const
{
return QDateTime::currentDateTimeUtc().toString(Qt::ISODateWithMs);
}
+19
View File
@@ -0,0 +1,19 @@
#pragma once
#include <QObject>
#include <QString>
#include <QtQml/qqmlregistration.h>
class TimeUtils final : public QObject
{
Q_OBJECT
QML_ELEMENT
QML_SINGLETON
public:
using QObject::QObject;
Q_INVOKABLE QString formatEpochMilliseconds(qint64 milliseconds) const;
Q_INVOKABLE QString formatDeviceDateTime(const QString &value) const;
Q_INVOKABLE QString currentUtcIsoString() const;
};