feat(translations): update language style and tone for user instructions across multiple languages

This commit is contained in:
Julian Pawlowski 2025-11-09 19:27:42 +00:00
parent 45b26dbf8a
commit b36a94d53b
6 changed files with 87 additions and 45 deletions

View file

@ -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). **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 ## Ruff Code Style Guidelines
These rules ensure generated code passes `./scripts/lint` on first try. Ruff enforces these automatically. These rules ensure generated code passes `./scripts/lint` on first try. Ruff enforces these automatically.

View file

@ -85,15 +85,17 @@
"description": "{step_progress}\n\nKonfiguration allgemeiner Einstellungen für Tibber Preisinformationen & Bewertungen.\n\nBenutzer: {user_login}", "description": "{step_progress}\n\nKonfiguration allgemeiner Einstellungen für Tibber Preisinformationen & Bewertungen.\n\nBenutzer: {user_login}",
"data": { "data": {
"extended_descriptions": "Erweiterte Beschreibungen in Entity-Attributen anzeigen" "extended_descriptions": "Erweiterte Beschreibungen in Entity-Attributen anzeigen"
} },
"submit": "Weiter zu Schritt 2"
}, },
"price_rating": { "price_rating": {
"title": "Preisbewertungs-Schwellwerte", "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": { "data": {
"price_rating_threshold_low": "Schwellwert für niedrige Bewertung (unter gleitendem Durchschnitt)", "price_rating_threshold_low": "Schwellwert für niedrige Bewertung (unter gleitendem Durchschnitt)",
"price_rating_threshold_high": "Schwellwert für hohe Bewertung (über gleitendem Durchschnitt)" "price_rating_threshold_high": "Schwellwert für hohe Bewertung (über gleitendem Durchschnitt)"
} },
"submit": "Weiter zu Schritt 3"
}, },
"best_price": { "best_price": {
"title": "Bestpreis-Periode Einstellungen", "title": "Bestpreis-Periode Einstellungen",
@ -108,7 +110,8 @@
"data_description": { "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_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." "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": { "peak_price": {
"title": "Spitzenpreis-Periode Einstellungen", "title": "Spitzenpreis-Periode Einstellungen",
@ -123,24 +126,27 @@
"data_description": { "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_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." "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": { "price_trend": {
"title": "Preistrend-Schwellenwerte", "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": { "data": {
"price_trend_threshold_rising": "Steigender Schwellenwert (über dem aktuellen Preis)", "price_trend_threshold_rising": "Steigender Schwellenwert (über dem aktuellen Preis)",
"price_trend_threshold_falling": "Fallender Schwellenwert (unter dem aktuellen Preis, negativer Wert)" "price_trend_threshold_falling": "Fallender Schwellenwert (unter dem aktuellen Preis, negativer Wert)"
} },
"submit": "Konfiguration abschließen"
}, },
"volatility": { "volatility": {
"title": "Preisvolatilität Schwellenwerte", "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": { "data": {
"volatility_threshold_moderate": "Moderate Schwelle (Spanne ≥ dieser Wert)", "volatility_threshold_moderate": "Moderate Schwelle (Spanne ≥ dieser Wert)",
"volatility_threshold_high": "Hohe Schwelle (Spanne ≥ dieser Wert)", "volatility_threshold_high": "Hohe Schwelle (Spanne ≥ dieser Wert)",
"volatility_threshold_very_high": "Sehr hohe Schwelle (Spanne ≥ dieser Wert)" "volatility_threshold_very_high": "Sehr hohe Schwelle (Spanne ≥ dieser Wert)"
} },
"submit": "Weiter zu Schritt 4"
} }
}, },
"error": { "error": {

View file

@ -85,15 +85,17 @@
"description": "{step_progress}\n\nConfigure general settings for Tibber Price Information & Ratings.\n\nUser: {user_login}", "description": "{step_progress}\n\nConfigure general settings for Tibber Price Information & Ratings.\n\nUser: {user_login}",
"data": { "data": {
"extended_descriptions": "Show extended descriptions in entity attributes" "extended_descriptions": "Show extended descriptions in entity attributes"
} },
"submit": "Next to Step 2"
}, },
"price_rating": { "price_rating": {
"title": "Price Rating Thresholds", "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": { "data": {
"price_rating_threshold_low": "Low Rating Threshold (below trailing average)", "price_rating_threshold_low": "Low Rating Threshold (below trailing average)",
"price_rating_threshold_high": "High Rating Threshold (above trailing average)" "price_rating_threshold_high": "High Rating Threshold (above trailing average)"
} },
"submit": "Next to Step 3"
}, },
"best_price": { "best_price": {
"title": "Best Price Period Settings", "title": "Best Price Period Settings",
@ -108,7 +110,8 @@
"data_description": { "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_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." "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": { "peak_price": {
"title": "Peak Price Period Settings", "title": "Peak Price Period Settings",
@ -123,7 +126,8 @@
"data_description": { "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_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." "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": { "price_trend": {
"title": "Price Trend Thresholds", "title": "Price Trend Thresholds",
@ -131,7 +135,8 @@
"data": { "data": {
"price_trend_threshold_rising": "Rising Threshold (above current price)", "price_trend_threshold_rising": "Rising Threshold (above current price)",
"price_trend_threshold_falling": "Falling Threshold (below current price, negative value)" "price_trend_threshold_falling": "Falling Threshold (below current price, negative value)"
} },
"submit": "Complete Configuration"
}, },
"volatility": { "volatility": {
"title": "Price Volatility Thresholds", "title": "Price Volatility Thresholds",
@ -140,7 +145,8 @@
"volatility_threshold_moderate": "Moderate Threshold (spread ≥ this value)", "volatility_threshold_moderate": "Moderate Threshold (spread ≥ this value)",
"volatility_threshold_high": "High Threshold (spread ≥ this value)", "volatility_threshold_high": "High Threshold (spread ≥ this value)",
"volatility_threshold_very_high": "Very High Threshold (spread ≥ this value)" "volatility_threshold_very_high": "Very High Threshold (spread ≥ this value)"
} },
"submit": "Next to Step 4"
} }
}, },
"error": { "error": {

View file

@ -85,15 +85,17 @@
"description": "{step_progress}\n\nKonfigurer generelle innstillinger for Tibber Prisinformasjon & Vurderinger.\n\nBruker: {user_login}", "description": "{step_progress}\n\nKonfigurer generelle innstillinger for Tibber Prisinformasjon & Vurderinger.\n\nBruker: {user_login}",
"data": { "data": {
"extended_descriptions": "Vis utvidede beskrivelser i entitetsattributter" "extended_descriptions": "Vis utvidede beskrivelser i entitetsattributter"
} },
"submit": "Neste til steg 2"
}, },
"price_rating": { "price_rating": {
"title": "Prisvurderingsterskler", "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": { "data": {
"price_rating_threshold_low": "Lav vurderingsterskel (% under glidende gjennomsnitt)", "price_rating_threshold_low": "Lav vurderingsterskel (% under glidende gjennomsnitt)",
"price_rating_threshold_high": "Høy vurderingsterskel (% over glidende gjennomsnitt)" "price_rating_threshold_high": "Høy vurderingsterskel (% over glidende gjennomsnitt)"
} },
"submit": "Neste til steg 3"
}, },
"best_price": { "best_price": {
"title": "Innstillinger for beste prisperiode", "title": "Innstillinger for beste prisperiode",
@ -108,7 +110,8 @@
"data_description": { "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_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." "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": { "peak_price": {
"title": "Innstillinger for topprisperiode", "title": "Innstillinger for topprisperiode",
@ -123,7 +126,8 @@
"data_description": { "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_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." "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": { "price_trend": {
"title": "Pristrendterskler", "title": "Pristrendterskler",
@ -131,7 +135,8 @@
"data": { "data": {
"price_trend_threshold_rising": "Stigende terskel (% over nåværende pris)", "price_trend_threshold_rising": "Stigende terskel (% over nåværende pris)",
"price_trend_threshold_falling": "Fallende terskel (% under nåværende pris, negativ verdi)" "price_trend_threshold_falling": "Fallende terskel (% under nåværende pris, negativ verdi)"
} },
"submit": "Fullfør konfigurasjon"
}, },
"volatility": { "volatility": {
"title": "Prisvolatilitet Terskler", "title": "Prisvolatilitet Terskler",
@ -140,7 +145,8 @@
"volatility_threshold_moderate": "Moderat terskel (ct/øre, spredning ≥ denne verdien)", "volatility_threshold_moderate": "Moderat terskel (ct/øre, spredning ≥ denne verdien)",
"volatility_threshold_high": "Høy 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)" "volatility_threshold_very_high": "Veldig høy terskel (ct/øre, spredning ≥ denne verdien)"
} },
"submit": "Neste til steg 4"
} }
}, },
"error": { "error": {

View file

@ -35,7 +35,7 @@
}, },
"error": { "error": {
"auth": "Het Tibber-toegangstoken is ongeldig.", "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", "unknown": "Onverwachte fout",
"cannot_connect": "Verbinding mislukt", "cannot_connect": "Verbinding mislukt",
"invalid_access_token": "Ongeldig toegangstoken", "invalid_access_token": "Ongeldig toegangstoken",
@ -44,7 +44,7 @@
"abort": { "abort": {
"already_configured": "Integratie is al geconfigureerd", "already_configured": "Integratie is al geconfigureerd",
"entry_not_found": "Tibber-configuratie-item niet gevonden.", "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." "reauth_successful": "Herauthenticatie succesvol. De integratie is bijgewerkt met het nieuwe toegangstoken."
} }
}, },
@ -60,7 +60,7 @@
"step": { "step": {
"user": { "user": {
"title": "Tibber-huis toevoegen", "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": { "data": {
"home_id": "Huis" "home_id": "Huis"
} }
@ -74,7 +74,7 @@
"no_access_token": "Geen toegangstoken beschikbaar", "no_access_token": "Geen toegangstoken beschikbaar",
"home_not_found": "Geselecteerd huis niet gevonden", "home_not_found": "Geselecteerd huis niet gevonden",
"api_error": "Ophalen van huizen van Tibber API mislukt", "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}", "description": "{step_progress}\n\nConfigureer algemene instellingen voor Tibber Prijsinformatie & Beoordelingen.\n\nGebruiker: {user_login}",
"data": { "data": {
"extended_descriptions": "Uitgebreide beschrijvingen tonen in entiteitsattributen" "extended_descriptions": "Uitgebreide beschrijvingen tonen in entiteitsattributen"
} },
"submit": "Volgende naar stap 2"
}, },
"price_rating": { "price_rating": {
"title": "Prijsbeoordelingsdrempels", "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": { "data": {
"price_rating_threshold_low": "Lage beoordelingsdrempel (% onder voortschrijdend gemiddelde)", "price_rating_threshold_low": "Lage beoordelingsdrempel (% onder voortschrijdend gemiddelde)",
"price_rating_threshold_high": "Hoge beoordelingsdrempel (% boven voortschrijdend gemiddelde)" "price_rating_threshold_high": "Hoge beoordelingsdrempel (% boven voortschrijdend gemiddelde)"
} },
"submit": "Volgende naar stap 3"
}, },
"best_price": { "best_price": {
"title": "Instellingen beste prijsperiode", "title": "Instellingen beste prijsperiode",
@ -108,7 +110,8 @@
"data_description": { "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_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." "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": { "peak_price": {
"title": "Instellingen piekprijsperiode", "title": "Instellingen piekprijsperiode",
@ -123,7 +126,8 @@
"data_description": { "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_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." "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": { "price_trend": {
"title": "Prijstrenddrempels", "title": "Prijstrenddrempels",
@ -131,7 +135,8 @@
"data": { "data": {
"price_trend_threshold_rising": "Stijgende drempel (% boven huidige prijs)", "price_trend_threshold_rising": "Stijgende drempel (% boven huidige prijs)",
"price_trend_threshold_falling": "Dalende drempel (% onder huidige prijs, negatieve waarde)" "price_trend_threshold_falling": "Dalende drempel (% onder huidige prijs, negatieve waarde)"
} },
"submit": "Configuratie voltooien"
}, },
"volatility": { "volatility": {
"title": "Prijsvolatiliteit Drempels", "title": "Prijsvolatiliteit Drempels",
@ -140,12 +145,13 @@
"volatility_threshold_moderate": "Matige drempel (ct/øre, spreiding ≥ deze waarde)", "volatility_threshold_moderate": "Matige drempel (ct/øre, spreiding ≥ deze waarde)",
"volatility_threshold_high": "Hoge 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)" "volatility_threshold_very_high": "Zeer hoge drempel (ct/øre, spreiding ≥ deze waarde)"
} },
"submit": "Volgende naar stap 4"
} }
}, },
"error": { "error": {
"auth": "Het Tibber-toegangstoken is ongeldig.", "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.", "unknown": "Er is een onverwachte fout opgetreden. Controleer de logboeken voor details.",
"cannot_connect": "Verbinding mislukt", "cannot_connect": "Verbinding mislukt",
"invalid_access_token": "Ongeldig toegangstoken", "invalid_access_token": "Ongeldig toegangstoken",
@ -453,17 +459,17 @@
"issues": { "issues": {
"new_homes_available": { "new_homes_available": {
"title": "Nieuwe Tibber-huizen gedetecteerd", "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": { "homes_removed": {
"title": "Tibber-huizen verwijderd", "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": { "services": {
"refresh_user_data": { "refresh_user_data": {
"name": "Gebruikersgegevens vernieuwen", "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": { "fields": {
"entry_id": { "entry_id": {
"name": "Item-ID", "name": "Item-ID",

View file

@ -85,15 +85,17 @@
"description": "{step_progress}\n\nKonfigurera allmänna inställningar för Tibber Prisinformation & Betyg.\n\nAnvändare: {user_login}", "description": "{step_progress}\n\nKonfigurera allmänna inställningar för Tibber Prisinformation & Betyg.\n\nAnvändare: {user_login}",
"data": { "data": {
"extended_descriptions": "Visa utökade beskrivningar i entitetsattribut" "extended_descriptions": "Visa utökade beskrivningar i entitetsattribut"
} },
"submit": "Nästa till steg 2"
}, },
"price_rating": { "price_rating": {
"title": "Prisvärderingströsklar", "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": { "data": {
"price_rating_threshold_low": "Låg värderingströskel (% under rullande genomsnitt)", "price_rating_threshold_low": "Låg värderingströskel (% under rullande genomsnitt)",
"price_rating_threshold_high": "Hög värderingströskel (% över rullande genomsnitt)" "price_rating_threshold_high": "Hög värderingströskel (% över rullande genomsnitt)"
} },
"submit": "Nästa till steg 3"
}, },
"best_price": { "best_price": {
"title": "Inställningar för bästa prisperiod", "title": "Inställningar för bästa prisperiod",
@ -108,7 +110,8 @@
"data_description": { "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_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." "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": { "peak_price": {
"title": "Inställningar för topprisperiod", "title": "Inställningar för topprisperiod",
@ -123,7 +126,8 @@
"data_description": { "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_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." "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": { "price_trend": {
"title": "Pristrendtrösklar", "title": "Pristrendtrösklar",
@ -131,7 +135,8 @@
"data": { "data": {
"price_trend_threshold_rising": "Stigande tröskel (% över aktuellt pris)", "price_trend_threshold_rising": "Stigande tröskel (% över aktuellt pris)",
"price_trend_threshold_falling": "Fallande tröskel (% under aktuellt pris, negativt värde)" "price_trend_threshold_falling": "Fallande tröskel (% under aktuellt pris, negativt värde)"
} },
"submit": "Slutför konfigurationen"
}, },
"volatility": { "volatility": {
"title": "Prisvolatilitet Trösklar", "title": "Prisvolatilitet Trösklar",
@ -140,7 +145,8 @@
"volatility_threshold_moderate": "Måttlig tröskel (ct/øre, spridning ≥ detta värde)", "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_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)" "volatility_threshold_very_high": "Mycket hög tröskel (ct/øre, spridning ≥ detta värde)"
} },
"submit": "Nästa till steg 4"
} }
}, },
"error": { "error": {