diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index e04c97c..e792f0c 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -1169,6 +1169,18 @@ Public entry points → direct helpers (call order) → pure utilities. Prefix p **Translation sync:** When updating `/translations/en.json`, update ALL language files (`de.json`, etc.) with same keys (placeholder values OK). +**Language style and tone:** + +- **Informal address**: Always use informal "you" forms (German: "du" not "Sie", Dutch: "je/jouw" not "u/uw"). This applies to all translations. +- **Gender-neutral language**: Use gender-neutral formulations where possible, but keep them natural - avoid forced or artificial constructions. +- **Documentation tone**: English documentation should use a friendly, approachable tone. Avoid overly formal constructions like "It is recommended that you..." - prefer "We recommend..." or "You can...". +- **Imperative mood**: Use direct imperatives for instructions: "Configure the integration" not "You should configure the integration". +- **Language-specific notes**: + - German: Use "du" (informal) and gender-neutral imperatives (e.g., "Konfiguriere" instead of "Konfigurieren Sie") + - Dutch: Use "je/jouw" (informal) instead of "u/uw" (formal) + - Swedish/Norwegian: Already use informal address by default (no formal "Ni"/"De" in modern usage) + - English: Already gender-neutral and appropriately informal + ## Ruff Code Style Guidelines These rules ensure generated code passes `./scripts/lint` on first try. Ruff enforces these automatically. diff --git a/custom_components/tibber_prices/translations/de.json b/custom_components/tibber_prices/translations/de.json index a0bc4a2..6f1a75c 100644 --- a/custom_components/tibber_prices/translations/de.json +++ b/custom_components/tibber_prices/translations/de.json @@ -85,15 +85,17 @@ "description": "{step_progress}\n\nKonfiguration allgemeiner Einstellungen für Tibber Preisinformationen & Bewertungen.\n\nBenutzer: {user_login}", "data": { "extended_descriptions": "Erweiterte Beschreibungen in Entity-Attributen anzeigen" - } + }, + "submit": "Weiter zu Schritt 2" }, "price_rating": { "title": "Preisbewertungs-Schwellwerte", - "description": "{step_progress}\n\nKonfiguration der Schwellwerte für Preisbewertungsstufen (NIEDRIG/NORMAL/HOCH) basierend auf dem Vergleich mit dem gleitenden 24-Stunden-Durchschnitt.", + "description": "{step_progress}\n\nKonfiguration der Schwellwerte für Preisbewertungsstufen (niedrig/normal/hoch) basierend auf dem Vergleich mit dem gleitenden 24-Stunden-Durchschnitt.", "data": { "price_rating_threshold_low": "Schwellwert für niedrige Bewertung (unter gleitendem Durchschnitt)", "price_rating_threshold_high": "Schwellwert für hohe Bewertung (über gleitendem Durchschnitt)" - } + }, + "submit": "Weiter zu Schritt 3" }, "best_price": { "title": "Bestpreis-Periode Einstellungen", @@ -108,7 +110,8 @@ "data_description": { "best_price_min_volatility": "Zeigt Bestpreis-Perioden nur an, wenn die heutige Volatilität mindestens diesem Level entspricht. Standard: 'Niedrig' (zeigt unabhängig von Volatilität) - Batterie-Optimierung ist auch bei geringen Preisschwankungen nützlich. Wähle 'Moderat'/'Hoch' um Perioden nur an volatileren Tagen anzuzeigen. UND-Verknüpfung: Volatilität UND Niveaufilter müssen beide erfüllt sein.", "best_price_max_level": "Zeigt Bestpreis-Perioden nur an, wenn mindestens ein Intervall heute ein Preisniveau ≤ dem gewählten Wert hat. UND-Verknüpfung: Volatilitätsfilter (falls gesetzt) UND Niveaufilter müssen beide erfüllt sein. Nützlich um Batterieladen an teuren Tagen zu vermeiden. Wähle 'Beliebig' um diesen Filter zu deaktivieren." - } + }, + "submit": "Weiter zu Schritt 5" }, "peak_price": { "title": "Spitzenpreis-Periode Einstellungen", @@ -123,24 +126,27 @@ "data_description": { "peak_price_min_volatility": "Zeigt Spitzenpreis-Perioden nur an, wenn die heutige Volatilität mindestens diesem Level entspricht. Standard: 'Niedrig' (zeigt unabhängig von Volatilität) - Spitzenwarnungen sind auch bei niedrigen Spannen relevant, da teure Stunden vermeiden immer wichtig ist. Wähle 'Moderat'/'Hoch' um Peaks nur an volatilen Tagen anzuzeigen. UND-Verknüpfung: Volatilität UND Niveaufilter müssen beide erfüllt sein.", "peak_price_min_level": "Zeigt Spitzenpreis-Perioden nur an, wenn mindestens ein Intervall heute ein Preisniveau ≥ dem gewählten Wert hat. UND-Verknüpfung: Volatilitätsfilter (falls gesetzt) UND Niveaufilter müssen beide erfüllt sein. Normalerweise auf 'Beliebig' gesetzt, da Spitzenperioden relativ zum Tag sind. Wähle 'Beliebig' um diesen Filter zu deaktivieren." - } + }, + "submit": "Weiter zu Schritt 6" }, "price_trend": { "title": "Preistrend-Schwellenwerte", - "description": "{step_progress}\n\nKonfigurieren Sie Schwellenwerte für Preistrend-Sensoren. Diese Sensoren vergleichen den aktuellen Preis mit dem Durchschnitt der nächsten N Stunden, um festzustellen, ob die Preise steigen, fallen oder stabil sind.", + "description": "{step_progress}\n\nKonfiguriere Schwellenwerte für Preistrend-Sensoren. Diese Sensoren vergleichen den aktuellen Preis mit dem Durchschnitt der nächsten N Stunden, um festzustellen, ob die Preise steigen, fallen oder stabil sind.", "data": { "price_trend_threshold_rising": "Steigender Schwellenwert (über dem aktuellen Preis)", "price_trend_threshold_falling": "Fallender Schwellenwert (unter dem aktuellen Preis, negativer Wert)" - } + }, + "submit": "Konfiguration abschließen" }, "volatility": { "title": "Preisvolatilität Schwellenwerte", - "description": "{step_progress}\n\nKonfigurieren Sie Schwellenwerte für die Volatilitätsklassifizierung. Volatilität misst Preisschwankungen (Spanne zwischen Min/Max) in kleinster Währungseinheit. Diese Schwellenwerte werden von Volatilitätssensoren und Periodenfiltern verwendet.", + "description": "{step_progress}\n\nKonfiguriere Schwellenwerte für die Volatilitätsklassifizierung. Volatilität misst Preisschwankungen (Spanne zwischen Min/Max) in kleinster Währungseinheit. Diese Schwellenwerte werden von Volatilitätssensoren und Periodenfiltern verwendet.", "data": { "volatility_threshold_moderate": "Moderate Schwelle (Spanne ≥ dieser Wert)", "volatility_threshold_high": "Hohe Schwelle (Spanne ≥ dieser Wert)", "volatility_threshold_very_high": "Sehr hohe Schwelle (Spanne ≥ dieser Wert)" - } + }, + "submit": "Weiter zu Schritt 4" } }, "error": { diff --git a/custom_components/tibber_prices/translations/en.json b/custom_components/tibber_prices/translations/en.json index 289d27a..1442868 100644 --- a/custom_components/tibber_prices/translations/en.json +++ b/custom_components/tibber_prices/translations/en.json @@ -85,15 +85,17 @@ "description": "{step_progress}\n\nConfigure general settings for Tibber Price Information & Ratings.\n\nUser: {user_login}", "data": { "extended_descriptions": "Show extended descriptions in entity attributes" - } + }, + "submit": "Next to Step 2" }, "price_rating": { "title": "Price Rating Thresholds", - "description": "{step_progress}\n\nConfigure thresholds for price rating levels (LOW/NORMAL/HIGH) based on comparison with trailing 24-hour average.", + "description": "{step_progress}\n\nConfigure thresholds for price rating levels (low/normal/high) based on comparison with trailing 24-hour average.", "data": { "price_rating_threshold_low": "Low Rating Threshold (below trailing average)", "price_rating_threshold_high": "High Rating Threshold (above trailing average)" - } + }, + "submit": "Next to Step 3" }, "best_price": { "title": "Best Price Period Settings", @@ -108,7 +110,8 @@ "data_description": { "best_price_min_volatility": "Only show best price periods when today's volatility meets or exceeds this level. Default: 'Low' (show regardless of volatility) - battery optimization is useful even with small price variations. Select 'Moderate'/'High' to only show periods on more volatile days. Works with AND logic: volatility AND level filter must both pass.", "best_price_max_level": "Only show best price periods if at least one interval today has a price level ≤ selected value. Works with AND logic: volatility filter (if set) AND level filter must both pass. Useful to avoid battery charging on expensive days. Select 'Any' to disable this filter." - } + }, + "submit": "Next to Step 5" }, "peak_price": { "title": "Peak Price Period Settings", @@ -123,7 +126,8 @@ "data_description": { "peak_price_min_volatility": "Only show peak price periods when today's volatility meets or exceeds this level. Default: 'Low' (show regardless of volatility) - peak warnings are relevant even at low spreads since avoiding expensive hours always matters. Select 'Moderate'/'High' to only show peaks on volatile days. Works with AND logic: volatility AND level filter must both pass.", "peak_price_min_level": "Only show peak price periods if at least one interval today has a price level ≥ selected value. Works with AND logic: volatility filter (if set) AND level filter must both pass. Typically set to 'Any' since peak periods are relative to the day. Select 'Any' to disable this filter." - } + }, + "submit": "Next to Step 6" }, "price_trend": { "title": "Price Trend Thresholds", @@ -131,7 +135,8 @@ "data": { "price_trend_threshold_rising": "Rising Threshold (above current price)", "price_trend_threshold_falling": "Falling Threshold (below current price, negative value)" - } + }, + "submit": "Complete Configuration" }, "volatility": { "title": "Price Volatility Thresholds", @@ -140,7 +145,8 @@ "volatility_threshold_moderate": "Moderate Threshold (spread ≥ this value)", "volatility_threshold_high": "High Threshold (spread ≥ this value)", "volatility_threshold_very_high": "Very High Threshold (spread ≥ this value)" - } + }, + "submit": "Next to Step 4" } }, "error": { diff --git a/custom_components/tibber_prices/translations/nb.json b/custom_components/tibber_prices/translations/nb.json index fe3ee86..1910cd0 100644 --- a/custom_components/tibber_prices/translations/nb.json +++ b/custom_components/tibber_prices/translations/nb.json @@ -85,15 +85,17 @@ "description": "{step_progress}\n\nKonfigurer generelle innstillinger for Tibber Prisinformasjon & Vurderinger.\n\nBruker: {user_login}", "data": { "extended_descriptions": "Vis utvidede beskrivelser i entitetsattributter" - } + }, + "submit": "Neste til steg 2" }, "price_rating": { "title": "Prisvurderingsterskler", - "description": "{step_progress}\n\nKonfigurer terskler for prisvurderingsnivåer (LAV/NORMAL/HØY) basert på sammenligning med 24-timers glidende gjennomsnitt.", + "description": "{step_progress}\n\nKonfigurer terskler for prisvurderingsnivåer (lav/normal/høy) basert på sammenligning med 24-timers glidende gjennomsnitt.", "data": { "price_rating_threshold_low": "Lav vurderingsterskel (% under glidende gjennomsnitt)", "price_rating_threshold_high": "Høy vurderingsterskel (% over glidende gjennomsnitt)" - } + }, + "submit": "Neste til steg 3" }, "best_price": { "title": "Innstillinger for beste prisperiode", @@ -108,7 +110,8 @@ "data_description": { "best_price_min_volatility": "Vis kun beste prisperioder når dagens volatilitet oppfyller eller overskrider dette nivået. Standard: 'Lav' (vis uavhengig av volatilitet) - batterioptimalisering er nyttig selv ved små prisvariasjoner. Velg 'Moderat'/'Høy' for kun å vise perioder på mer volatile dager.", "best_price_max_level": "Vis kun beste prisperioder hvis minst ett intervall i dag har et prisnivå ≤ valgt verdi. Fungerer med OG-logikk: volatilitetsfilter (hvis satt) OG nivåfilter må begge være oppfylt. Nyttig for å unngå batterilading på dyre dager. Velg 'Alle' for å deaktivere dette filteret." - } + }, + "submit": "Neste til steg 5" }, "peak_price": { "title": "Innstillinger for topprisperiode", @@ -123,7 +126,8 @@ "data_description": { "peak_price_min_volatility": "Vis kun topprisperioder når dagens volatilitet oppfyller eller overskrider dette nivået. Standard: 'Lav' (vis uavhengig av volatilitet) - toppadvarsler er relevante selv ved lav spredning siden unngåelse av dyre timer alltid er viktig. Velg 'Moderat'/'Høy' for kun å vise topper på volatile dager.", "peak_price_min_level": "Vis kun topprisperioder hvis minst ett intervall i dag har et prisnivå ≥ valgt verdi. Fungerer med OG-logikk: volatilitetsfilter (hvis satt) OG nivåfilter må begge være oppfylt. Vanligvis satt til 'Alle' siden toppperioder er relative til dagen. Velg 'Alle' for å deaktivere dette filteret." - } + }, + "submit": "Neste til steg 6" }, "price_trend": { "title": "Pristrendterskler", @@ -131,7 +135,8 @@ "data": { "price_trend_threshold_rising": "Stigende terskel (% over nåværende pris)", "price_trend_threshold_falling": "Fallende terskel (% under nåværende pris, negativ verdi)" - } + }, + "submit": "Fullfør konfigurasjon" }, "volatility": { "title": "Prisvolatilitet Terskler", @@ -140,7 +145,8 @@ "volatility_threshold_moderate": "Moderat terskel (ct/øre, spredning ≥ denne verdien)", "volatility_threshold_high": "Høy terskel (ct/øre, spredning ≥ denne verdien)", "volatility_threshold_very_high": "Veldig høy terskel (ct/øre, spredning ≥ denne verdien)" - } + }, + "submit": "Neste til steg 4" } }, "error": { diff --git a/custom_components/tibber_prices/translations/nl.json b/custom_components/tibber_prices/translations/nl.json index 04e28f5..922b943 100644 --- a/custom_components/tibber_prices/translations/nl.json +++ b/custom_components/tibber_prices/translations/nl.json @@ -35,7 +35,7 @@ }, "error": { "auth": "Het Tibber-toegangstoken is ongeldig.", - "connection": "Kan geen verbinding maken met Tibber. Controleer uw internetverbinding.", + "connection": "Kan geen verbinding maken met Tibber. Controleer je internetverbinding.", "unknown": "Onverwachte fout", "cannot_connect": "Verbinding mislukt", "invalid_access_token": "Ongeldig toegangstoken", @@ -44,7 +44,7 @@ "abort": { "already_configured": "Integratie is al geconfigureerd", "entry_not_found": "Tibber-configuratie-item niet gevonden.", - "setup_complete": "Installatie voltooid! U kunt aanvullende opties voor Tibber-prijzen wijzigen in de integratie-opties na het sluiten van dit dialoogvenster.", + "setup_complete": "Installatie voltooid! Je kunt aanvullende opties voor Tibber-prijzen wijzigen in de integratie-opties na het sluiten van dit dialoogvenster.", "reauth_successful": "Herauthenticatie succesvol. De integratie is bijgewerkt met het nieuwe toegangstoken." } }, @@ -60,7 +60,7 @@ "step": { "user": { "title": "Tibber-huis toevoegen", - "description": "Selecteer een huis om toe te voegen aan uw Tibber-integratie.\n\n**Opmerking:** Na het toevoegen van dit huis, kunt u extra huizen toevoegen via het contextmenu van de integratie door \"Tibber-huis toevoegen\" te selecteren.", + "description": "Selecteer een huis om toe te voegen aan je Tibber-integratie.\n\n**Opmerking:** Na het toevoegen van dit huis kun je extra huizen toevoegen via het contextmenu van de integratie door \"Tibber-huis toevoegen\" te selecteren.", "data": { "home_id": "Huis" } @@ -74,7 +74,7 @@ "no_access_token": "Geen toegangstoken beschikbaar", "home_not_found": "Geselecteerd huis niet gevonden", "api_error": "Ophalen van huizen van Tibber API mislukt", - "no_available_homes": "Geen extra huizen beschikbaar om toe te voegen. Alle huizen van uw Tibber-account zijn al toegevoegd." + "no_available_homes": "Geen extra huizen beschikbaar om toe te voegen. Alle huizen van je Tibber-account zijn al toegevoegd." } } }, @@ -85,15 +85,17 @@ "description": "{step_progress}\n\nConfigureer algemene instellingen voor Tibber Prijsinformatie & Beoordelingen.\n\nGebruiker: {user_login}", "data": { "extended_descriptions": "Uitgebreide beschrijvingen tonen in entiteitsattributen" - } + }, + "submit": "Volgende naar stap 2" }, "price_rating": { "title": "Prijsbeoordelingsdrempels", - "description": "{step_progress}\n\nConfigureer drempels voor prijsbeoordelingsniveaus (LAAG/NORMAAL/HOOG) op basis van vergelijking met het voortschrijdend 24-uurs gemiddelde.", + "description": "{step_progress}\n\nConfigureer drempels voor prijsbeoordelingsniveaus (laag/normaal/hoog) op basis van vergelijking met het voortschrijdend 24-uurs gemiddelde.", "data": { "price_rating_threshold_low": "Lage beoordelingsdrempel (% onder voortschrijdend gemiddelde)", "price_rating_threshold_high": "Hoge beoordelingsdrempel (% boven voortschrijdend gemiddelde)" - } + }, + "submit": "Volgende naar stap 3" }, "best_price": { "title": "Instellingen beste prijsperiode", @@ -108,7 +110,8 @@ "data_description": { "best_price_min_volatility": "Toon alleen beste prijsperiodes wanneer de volatiliteit van vandaag dit niveau bereikt of overschrijdt. Standaard: 'Laag' (toon ongeacht volatiliteit) - batterijoptimalisatie is nuttig zelfs bij kleine prijsvariaties. Selecteer 'Matig'/'Hoog' om periodes alleen op meer volatiele dagen te tonen.", "best_price_max_level": "Toon alleen beste prijsperiodes als minstens één interval vandaag een prijsniveau ≤ geselecteerde waarde heeft. Werkt met EN-logica: volatiliteitsfilter (indien ingesteld) EN niveaufilter moeten beide voldaan zijn. Nuttig om batterij laden op dure dagen te vermijden. Selecteer 'Alle' om dit filter uit te schakelen." - } + }, + "submit": "Volgende naar stap 5" }, "peak_price": { "title": "Instellingen piekprijsperiode", @@ -123,7 +126,8 @@ "data_description": { "peak_price_min_volatility": "Toon alleen piekprijsperiodes wanneer de volatiliteit van vandaag dit niveau bereikt of overschrijdt. Standaard: 'Laag' (toon ongeacht volatiliteit) - piekwaarschuwingen zijn relevant zelfs bij lage spreiding omdat vermijding van dure uren altijd belangrijk is. Selecteer 'Matig'/'Hoog' om alleen pieken op volatiele dagen te tonen.", "peak_price_min_level": "Toon alleen piekprijsperiodes als minstens één interval vandaag een prijsniveau ≥ geselecteerde waarde heeft. Werkt met EN-logica: volatiliteitsfilter (indien ingesteld) EN niveaufilter moeten beide voldaan zijn. Meestal ingesteld op 'Alle' omdat piekperiodes relatief zijn aan de dag. Selecteer 'Alle' om dit filter uit te schakelen." - } + }, + "submit": "Volgende naar stap 6" }, "price_trend": { "title": "Prijstrenddrempels", @@ -131,7 +135,8 @@ "data": { "price_trend_threshold_rising": "Stijgende drempel (% boven huidige prijs)", "price_trend_threshold_falling": "Dalende drempel (% onder huidige prijs, negatieve waarde)" - } + }, + "submit": "Configuratie voltooien" }, "volatility": { "title": "Prijsvolatiliteit Drempels", @@ -140,12 +145,13 @@ "volatility_threshold_moderate": "Matige drempel (ct/øre, spreiding ≥ deze waarde)", "volatility_threshold_high": "Hoge drempel (ct/øre, spreiding ≥ deze waarde)", "volatility_threshold_very_high": "Zeer hoge drempel (ct/øre, spreiding ≥ deze waarde)" - } + }, + "submit": "Volgende naar stap 4" } }, "error": { "auth": "Het Tibber-toegangstoken is ongeldig.", - "connection": "Kan geen verbinding maken met Tibber. Controleer uw internetverbinding.", + "connection": "Kan geen verbinding maken met Tibber. Controleer je internetverbinding.", "unknown": "Er is een onverwachte fout opgetreden. Controleer de logboeken voor details.", "cannot_connect": "Verbinding mislukt", "invalid_access_token": "Ongeldig toegangstoken", @@ -453,17 +459,17 @@ "issues": { "new_homes_available": { "title": "Nieuwe Tibber-huizen gedetecteerd", - "description": "We hebben {count} nieuw(e) huis/huizen op uw Tibber-account gedetecteerd: {homes}. U kunt ze toevoegen aan Home Assistant via de Tibber-integratieconfiguratie." + "description": "We hebben {count} nieuw(e) huis/huizen op je Tibber-account gedetecteerd: {homes}. Je kunt ze toevoegen aan Home Assistant via de Tibber-integratieconfiguratie." }, "homes_removed": { "title": "Tibber-huizen verwijderd", - "description": "We hebben gedetecteerd dat {count} huis/huizen zijn verwijderd van uw Tibber-account: {homes}. Controleer uw Tibber-integratieconfiguratie." + "description": "We hebben gedetecteerd dat {count} huis/huizen zijn verwijderd van je Tibber-account: {homes}. Controleer je Tibber-integratieconfiguratie." } }, "services": { "refresh_user_data": { "name": "Gebruikersgegevens vernieuwen", - "description": "Forceert een vernieuwing van de gebruikersgegevens (huizen, profielinformatie) van de Tibber API. Dit kan handig zijn na het maken van wijzigingen in uw Tibber-account of bij het oplossen van verbindingsproblemen.", + "description": "Forceert een vernieuwing van de gebruikersgegevens (huizen, profielinformatie) van de Tibber API. Dit kan handig zijn na het maken van wijzigingen in je Tibber-account of bij het oplossen van verbindingsproblemen.", "fields": { "entry_id": { "name": "Item-ID", diff --git a/custom_components/tibber_prices/translations/sv.json b/custom_components/tibber_prices/translations/sv.json index f44e8eb..73b555a 100644 --- a/custom_components/tibber_prices/translations/sv.json +++ b/custom_components/tibber_prices/translations/sv.json @@ -85,15 +85,17 @@ "description": "{step_progress}\n\nKonfigurera allmänna inställningar för Tibber Prisinformation & Betyg.\n\nAnvändare: {user_login}", "data": { "extended_descriptions": "Visa utökade beskrivningar i entitetsattribut" - } + }, + "submit": "Nästa till steg 2" }, "price_rating": { "title": "Prisvärderingströsklar", - "description": "{step_progress}\n\nKonfigurera trösklar för prisvärderingsnivåer (LÅG/NORMAL/HÖG) baserat på jämförelse med rullande 24-timmars genomsnitt.", + "description": "{step_progress}\n\nKonfigurera trösklar för prisvärderingsnivåer (låg/normal/hög) baserat på jämförelse med rullande 24-timmars genomsnitt.", "data": { "price_rating_threshold_low": "Låg värderingströskel (% under rullande genomsnitt)", "price_rating_threshold_high": "Hög värderingströskel (% över rullande genomsnitt)" - } + }, + "submit": "Nästa till steg 3" }, "best_price": { "title": "Inställningar för bästa prisperiod", @@ -108,7 +110,8 @@ "data_description": { "best_price_min_volatility": "Visa endast bästa prisperioder när dagens volatilitet uppfyller eller överskrider denna nivå. Standard: 'Låg' (visa oavsett volatilitet) - batterioptimering är användbart även vid små prisvariationer. Välj 'Måttlig'/'Hög' för att endast visa perioder på mer volatila dagar.", "best_price_max_level": "Visa endast bästa prisperioder om minst ett intervall idag har en prisnivå ≤ valt värde. Fungerar med OCH-logik: volatilitetsfilter (om inställt) OCH nivåfilter måste båda vara uppfyllda. Användbart för att undvika batteriladdning på dyra dagar. Välj 'Alla' för att inaktivera detta filter." - } + }, + "submit": "Nästa till steg 5" }, "peak_price": { "title": "Inställningar för topprisperiod", @@ -123,7 +126,8 @@ "data_description": { "peak_price_min_volatility": "Visa endast topprisperioder när dagens volatilitet uppfyller eller överskrider denna nivå. Standard: 'Låg' (visa oavsett volatilitet) - toppvarningar är relevanta även vid låg spridning eftersom undvikande av dyra timmar alltid är viktigt. Välj 'Måttlig'/'Hög' för att endast visa toppar på volatila dagar.", "peak_price_min_level": "Visa endast topprisperioder om minst ett intervall idag har en prisnivå ≥ valt värde. Fungerar med OCH-logik: volatilitetsfilter (om inställt) OCH nivåfilter måste båda vara uppfyllda. Vanligtvis inställt på 'Alla' eftersom toppperioder är relativa till dagen. Välj 'Alla' för att inaktivera detta filter." - } + }, + "submit": "Nästa till steg 6" }, "price_trend": { "title": "Pristrendtrösklar", @@ -131,7 +135,8 @@ "data": { "price_trend_threshold_rising": "Stigande tröskel (% över aktuellt pris)", "price_trend_threshold_falling": "Fallande tröskel (% under aktuellt pris, negativt värde)" - } + }, + "submit": "Slutför konfigurationen" }, "volatility": { "title": "Prisvolatilitet Trösklar", @@ -140,7 +145,8 @@ "volatility_threshold_moderate": "Måttlig tröskel (ct/øre, spridning ≥ detta värde)", "volatility_threshold_high": "Hög tröskel (ct/øre, spridning ≥ detta värde)", "volatility_threshold_very_high": "Mycket hög tröskel (ct/øre, spridning ≥ detta värde)" - } + }, + "submit": "Nästa till steg 4" } }, "error": {