From 0d5dbbc61f684b8168922e67492d569f755e3c2c Mon Sep 17 00:00:00 2001 From: Vincent van der Wal Date: Sat, 1 Aug 2026 15:27:26 +0200 Subject: [PATCH] more fluent texts --- messages/de.json | 62 ++++++-- messages/en.json | 62 ++++++-- messages/es.json | 62 ++++++-- messages/fr.json | 62 ++++++-- messages/it.json | 62 ++++++-- src/lib/components/language-selector.svelte | 6 +- src/lib/stores/page-transition.svelte.ts | 23 +++ src/lib/utils/day-swap.ts | 59 +++++-- src/lib/utils/url-state.ts | 46 ++++++ src/routes/+layout.svelte | 74 ++++++++- src/routes/layout.css | 80 +++++++++- .../weather/14-day/[location]/+page.svelte | 21 ++- .../weather/compare/[location]/+page.svelte | 36 ++++- .../historical/[location]/+page.svelte | 5 + .../weather/seasonal/[location]/+page.svelte | 5 + .../weather/week/[location]/+page.svelte | 48 +++++- .../weather/week/[location]/forecast-text.ts | 150 ++++++++++++------ theme-probe.mjs | 32 ---- 18 files changed, 694 insertions(+), 201 deletions(-) create mode 100644 src/lib/stores/page-transition.svelte.ts create mode 100644 src/lib/utils/url-state.ts delete mode 100644 theme-probe.mjs diff --git a/messages/de.json b/messages/de.json index e1ec8d2..eb8dd0d 100644 --- a/messages/de.json +++ b/messages/de.json @@ -101,26 +101,56 @@ "period_morning": "morgens", "period_afternoon": "nachmittags", "period_evening": "in den Abendstunden", - "forecast_sky_all_day": "Den ganzen Tag {condition}.", - "forecast_sky_two": "{p1} {c1}, {p2} {c2}.", - "forecast_sky_three": "{p1} {c1}, {p2} {c2}, {p3} dann {c3}.", - "forecast_temp": "Höchstwerte um {high}, nachts Abkühlung auf {low}.", - "forecast_temp_feels": "Höchstwerte um {high}, nachts Abkühlung auf {low} - gefühlt eher {feels}.", - "forecast_precip_window": "Rund {amount} Niederschlag, das meiste davon {when}.", - "forecast_precip_spread": "Rund {amount} Niederschlag über den Tag verteilt.", - "forecast_precip_chance": "Überwiegend trocken, mit bis zu {percent}% Schauerwahrscheinlichkeit.", - "forecast_precip_dry": "Es bleibt durchweg trocken.", - "forecast_wind_dir": "Wind aus {direction} mit bis zu {speed}.", - "forecast_wind_dir_gusts": "Wind aus {direction} mit bis zu {speed}, in Böen {gust}.", - "forecast_wind": "Wind mit bis zu {speed}.", - "forecast_wind_gusts": "Wind mit bis zu {speed}, in Böen {gust}.", - "forecast_uv": "UV-Index bis {value} ({label}) - mittags an Sonnenschutz denken.", - "forecast_calm": "Kaum ein Lüftchen.", "footer_tagline": "Schnelle, unkomplizierte Wettervorhersagen auf Basis offener Daten.", "footer_data_by": "Wetterdaten von", "footer_forecasts": "Vorhersagen", "footer_popular": "Beliebte Orte", "footer_about_section": "Über", "model_weather": "Wettermodell", - "model_ensemble": "Ensemblemodell" + "model_ensemble": "Ensemblemodell", + "sky_all_1": "Den ganzen Tag {condition}.", + "sky_all_2": "Ein durchweg {condition} Tag.", + "sky_all_3": "Es bleibt durchgehend {condition}.", + "sky_two_1": "{p1} {c1}, {p2} dann {c2}.", + "sky_two_2": "Der Tag beginnt {p1} {c1}, bevor es {p2} {c2} wird.", + "sky_two_3": "{p1} {c1}, {p2} dann {c2}.", + "sky_three_1": "{p1} {c1}, {p2} {c2} und {p3} dann {c3}.", + "sky_three_2": "Es beginnt {p1} {c1}, wird {p2} {c2} und endet {p3} {c3}.", + "sky_three_3": "{p1} {c1}, {p2} {c2}, {p3} schließlich {c3}.", + "temp_1": "Höchstwerte um {high}, nachts Abkühlung auf {low}.", + "temp_2": "Die Temperaturen steigen auf {high} und fallen nach Einbruch der Dunkelheit auf {low}.", + "temp_3": "Zwischen {low} und {high} im Tagesverlauf.", + "temp_feels_1": "Höchstwerte um {high}, nachts {low} - gefühlt eher {feels}.", + "temp_feels_2": "Bis {high} am Thermometer, gefühlt {feels}, bevor es auf {low} zurückgeht.", + "temp_feels_3": "Es werden {high} erreicht, gefühlt sind es {feels}, später Abkühlung auf {low}.", + "precip_window_1": "Rund {amount} Niederschlag, das meiste davon {when}.", + "precip_window_2": "Zu erwarten sind etwa {amount}, konzentriert {when}.", + "precip_window_3": "Am nassesten wird es {when}, insgesamt rund {amount}.", + "precip_spread_1": "Rund {amount} Niederschlag über den Tag verteilt.", + "precip_spread_2": "Etwa {amount} fallen in Schüben über den Tag.", + "precip_spread_3": "Immer wieder Schauer, zusammen etwa {amount}.", + "precip_chance_1": "Überwiegend trocken, mit bis zu {percent}% Schauerwahrscheinlichkeit.", + "precip_chance_2": "Kaum Regen zu erwarten, die Schauerwahrscheinlichkeit liegt bei {percent}%.", + "precip_chance_3": "{percent}% Schauerrisiko, aber kaum der Rede wert.", + "precip_dry_1": "Es bleibt durchweg trocken.", + "precip_dry_2": "Kein Tropfen in Sicht.", + "precip_dry_3": "Von früh bis spät trocken.", + "wind_dir_1": "Wind aus {direction} mit bis zu {speed}.", + "wind_dir_2": "Eine Brise aus {direction} erreicht in der Spitze {speed}.", + "wind_dir_3": "Der Wind kommt aus {direction} und erreicht Spitzen um {speed}.", + "wind_dir_gusts_1": "Wind aus {direction} mit bis zu {speed}, in Böen {gust}.", + "wind_dir_gusts_2": "Ein {direction}-Wind von {speed}, in Böen bis {gust}.", + "wind_dir_gusts_3": "Aus {direction} sind {speed} zu erwarten, zeitweise Böen von {gust}.", + "wind_1": "Wind mit bis zu {speed}.", + "wind_2": "Die Brise erreicht rund {speed}.", + "wind_3": "Luftbewegung von bis zu {speed}.", + "wind_gusts_1": "Wind mit bis zu {speed}, in Böen {gust}.", + "wind_gusts_2": "Bis zu {speed}, mit Böen von {gust}.", + "wind_gusts_3": "Ein böiger Tag: {speed} im Mittel, {gust} in der Spitze.", + "calm_1": "Kaum ein Lüftchen.", + "calm_2": "Die Luft bleibt nahezu still.", + "calm_3": "Den ganzen Tag so gut wie windstill.", + "uv_1": "UV-Index bis {value} ({label}) - mittags an Sonnenschutz denken.", + "uv_2": "Mittags brennt die Sonne: UV {value}, {label}.", + "uv_3": "Mittags besser in den Schatten - der UV-Index erreicht {value} ({label})." } diff --git a/messages/en.json b/messages/en.json index 51c965b..488bbb3 100644 --- a/messages/en.json +++ b/messages/en.json @@ -101,26 +101,56 @@ "period_morning": "in the morning", "period_afternoon": "in the afternoon", "period_evening": "in the evening", - "forecast_sky_all_day": "{condition} all day.", - "forecast_sky_two": "{c1} {p1}, turning {c2} {p2}.", - "forecast_sky_three": "{c1} {p1}, turning {c2} {p2}, then {c3} {p3}.", - "forecast_temp": "Highs near {high}, dropping to {low} overnight.", - "forecast_temp_feels": "Highs near {high}, dropping to {low} overnight, though it will feel closer to {feels}.", - "forecast_precip_window": "Around {amount} of precipitation, most of it {when}.", - "forecast_precip_spread": "Around {amount} of precipitation spread across the day.", - "forecast_precip_chance": "Mostly dry, with up to a {percent}% chance of catching a shower.", - "forecast_precip_dry": "Staying dry throughout.", - "forecast_wind_dir": "Wind from the {direction} reaching {speed}.", - "forecast_wind_dir_gusts": "Wind from the {direction} reaching {speed}, with gusts to {gust}.", - "forecast_wind": "Wind reaching {speed}.", - "forecast_wind_gusts": "Wind reaching {speed}, with gusts to {gust}.", - "forecast_uv": "UV peaks at {value} ({label}), so cover up around midday.", - "forecast_calm": "Barely a breath of wind.", "footer_tagline": "Fast, no-nonsense weather forecasts built on open data.", "footer_data_by": "Weather data by", "footer_forecasts": "Forecasts", "footer_popular": "Popular locations", "footer_about_section": "About", "model_weather": "Weather model", - "model_ensemble": "Ensemble model" + "model_ensemble": "Ensemble model", + "sky_all_1": "{condition} all day.", + "sky_all_2": "A {condition} day from start to finish.", + "sky_all_3": "It stays {condition} throughout.", + "sky_two_1": "{c1} {p1}, turning {c2} {p2}.", + "sky_two_2": "The day opens {c1} {p1} before turning {c2} {p2}.", + "sky_two_3": "Expect {c1} skies {p1}, then {c2} {p2}.", + "sky_three_1": "{c1} {p1}, turning {c2} {p2}, then {c3} {p3}.", + "sky_three_2": "It starts {c1} {p1}, becomes {c2} {p2} and ends up {c3} {p3}.", + "sky_three_3": "From {c1} skies {p1} to {c2} {p2}, before settling {c3} {p3}.", + "temp_1": "Highs near {high}, dropping to {low} overnight.", + "temp_2": "Temperatures climb to {high} and fall back to {low} after dark.", + "temp_3": "Between {low} and {high} through the day.", + "temp_feels_1": "Highs near {high}, down to {low} overnight, though it feels closer to {feels}.", + "temp_feels_2": "Up to {high} on the thermometer - closer to {feels} in the air - before easing to {low}.", + "temp_feels_3": "It reaches {high} but feels more like {feels}, cooling to {low} later.", + "precip_window_1": "Around {amount} of precipitation, most of it {when}.", + "precip_window_2": "Expect about {amount}, concentrated {when}.", + "precip_window_3": "The wettest stretch is {when}, adding up to roughly {amount}.", + "precip_spread_1": "Around {amount} of precipitation spread across the day.", + "precip_spread_2": "Roughly {amount} falls in bursts through the day.", + "precip_spread_3": "Showers come and go, totalling about {amount}.", + "precip_chance_1": "Mostly dry, with up to a {percent}% chance of catching a shower.", + "precip_chance_2": "Little rain expected, though there is a {percent}% chance of a passing shower.", + "precip_chance_3": "A {percent}% shower risk, but nothing worth an umbrella.", + "precip_dry_1": "Staying dry throughout.", + "precip_dry_2": "Not a drop expected.", + "precip_dry_3": "Dry from start to finish.", + "wind_dir_1": "Wind from the {direction} reaching {speed}.", + "wind_dir_2": "A breeze out of the {direction} tops out at {speed}.", + "wind_dir_3": "The wind sits in the {direction}, peaking near {speed}.", + "wind_dir_gusts_1": "Wind from the {direction} reaching {speed}, with gusts to {gust}.", + "wind_dir_gusts_2": "Wind out of the {direction} at {speed}, gusting as high as {gust}.", + "wind_dir_gusts_3": "Expect {speed} from the {direction}, gusting {gust} at times.", + "wind_1": "Wind reaching {speed}.", + "wind_2": "The breeze peaks around {speed}.", + "wind_3": "Air moving at up to {speed}.", + "wind_gusts_1": "Wind reaching {speed}, with gusts to {gust}.", + "wind_gusts_2": "Up to {speed}, with gusts punching through at {gust}.", + "wind_gusts_3": "A gusty day: {speed} sustained, {gust} at the peaks.", + "calm_1": "Barely a breath of wind.", + "calm_2": "The air stays almost still.", + "calm_3": "Next to no wind all day.", + "uv_1": "UV peaks at {value} ({label}), so cover up around midday.", + "uv_2": "The sun bites around noon: UV {value}, {label}.", + "uv_3": "Worth some shade in the middle of the day - UV reaches {value} ({label})." } diff --git a/messages/es.json b/messages/es.json index d132af2..3a8ff6d 100644 --- a/messages/es.json +++ b/messages/es.json @@ -101,26 +101,56 @@ "period_morning": "por la mañana", "period_afternoon": "por la tarde", "period_evening": "al anochecer", - "forecast_sky_all_day": "{condition} todo el día.", - "forecast_sky_two": "{c1} {p1} y {c2} {p2}.", - "forecast_sky_three": "{c1} {p1}, {c2} {p2} y {c3} {p3}.", - "forecast_temp": "Máximas de {high} y mínimas de {low} por la noche.", - "forecast_temp_feels": "Máximas de {high} y mínimas de {low} por la noche, aunque la sensación será de {feels}.", - "forecast_precip_window": "Unos {amount} de precipitación, sobre todo {when}.", - "forecast_precip_spread": "Unos {amount} de precipitación repartidos a lo largo del día.", - "forecast_precip_chance": "Mayormente seco, con hasta un {percent}% de probabilidad de chubascos.", - "forecast_precip_dry": "Se mantendrá seco todo el día.", - "forecast_wind_dir": "Viento del {direction} de hasta {speed}.", - "forecast_wind_dir_gusts": "Viento del {direction} de hasta {speed}, con rachas de {gust}.", - "forecast_wind": "Viento de hasta {speed}.", - "forecast_wind_gusts": "Viento de hasta {speed}, con rachas de {gust}.", - "forecast_uv": "El índice UV llega a {value} ({label}), así que protégete al mediodía.", - "forecast_calm": "Apenas hay viento.", "footer_tagline": "Pronósticos rápidos y directos basados en datos abiertos.", "footer_data_by": "Datos meteorológicos de", "footer_forecasts": "Pronósticos", "footer_popular": "Ubicaciones populares", "footer_about_section": "Acerca de", "model_weather": "Modelo meteorológico", - "model_ensemble": "Modelo de conjunto" + "model_ensemble": "Modelo de conjunto", + "sky_all_1": "{condition} todo el día.", + "sky_all_2": "Un día {condition} de principio a fin.", + "sky_all_3": "Se mantiene {condition} durante toda la jornada.", + "sky_two_1": "{c1} {p1} y {c2} {p2}.", + "sky_two_2": "La jornada empieza {c1} {p1} antes de volverse {c2} {p2}.", + "sky_two_3": "Se espera cielo {c1} {p1} y {c2} {p2}.", + "sky_three_1": "{c1} {p1}, {c2} {p2} y {c3} {p3}.", + "sky_three_2": "Empieza {c1} {p1}, se vuelve {c2} {p2} y acaba {c3} {p3}.", + "sky_three_3": "De cielo {c1} {p1} a {c2} {p2}, para quedarse {c3} {p3}.", + "temp_1": "Máximas de {high} y mínimas de {low} por la noche.", + "temp_2": "Las temperaturas suben hasta {high} y bajan a {low} tras el anochecer.", + "temp_3": "Entre {low} y {high} a lo largo del día.", + "temp_feels_1": "Máximas de {high} y mínimas de {low}, aunque la sensación será de {feels}.", + "temp_feels_2": "Hasta {high} en el termómetro, aunque se sentirán {feels}, antes de bajar a {low}.", + "temp_feels_3": "Alcanza {high} pero se sentirá como {feels}, con descenso a {low} más tarde.", + "precip_window_1": "Unos {amount} de precipitación, sobre todo {when}.", + "precip_window_2": "Se esperan unos {amount}, concentrados {when}.", + "precip_window_3": "El tramo más húmedo será {when}, con un total aproximado de {amount}.", + "precip_spread_1": "Unos {amount} de precipitación repartidos a lo largo del día.", + "precip_spread_2": "Aproximadamente {amount} caen a intervalos durante el día.", + "precip_spread_3": "Chubascos intermitentes que suman unos {amount}.", + "precip_chance_1": "Mayormente seco, con hasta un {percent}% de probabilidad de chubascos.", + "precip_chance_2": "Apenas se espera lluvia, aunque hay un {percent}% de probabilidad de un chubasco pasajero.", + "precip_chance_3": "Un {percent}% de riesgo de chubascos, pero nada que exija paraguas.", + "precip_dry_1": "Se mantendrá seco todo el día.", + "precip_dry_2": "No se espera ni una gota.", + "precip_dry_3": "Seco de principio a fin.", + "wind_dir_1": "Viento del {direction} de hasta {speed}.", + "wind_dir_2": "La brisa del {direction} alcanza los {speed}.", + "wind_dir_3": "El viento sopla del {direction}, con picos cercanos a {speed}.", + "wind_dir_gusts_1": "Viento del {direction} de hasta {speed}, con rachas de {gust}.", + "wind_dir_gusts_2": "Un viento del {direction} de {speed} con rachas de hasta {gust}.", + "wind_dir_gusts_3": "Se esperan {speed} del {direction}, con rachas puntuales de {gust}.", + "wind_1": "Viento de hasta {speed}.", + "wind_2": "La brisa alcanza unos {speed}.", + "wind_3": "Aire en movimiento de hasta {speed}.", + "wind_gusts_1": "Viento de hasta {speed}, con rachas de {gust}.", + "wind_gusts_2": "Hasta {speed}, con rachas que llegan a {gust}.", + "wind_gusts_3": "Un día racheado: {speed} sostenidos y {gust} en los picos.", + "calm_1": "Apenas hay viento.", + "calm_2": "El aire se mantiene casi en calma.", + "calm_3": "Prácticamente sin viento en todo el día.", + "uv_1": "El índice UV llega a {value} ({label}), así que protégete al mediodía.", + "uv_2": "El sol aprieta al mediodía: UV {value}, {label}.", + "uv_3": "Conviene buscar sombra al mediodía: el UV alcanza {value} ({label})." } diff --git a/messages/fr.json b/messages/fr.json index e38b872..0e79b85 100644 --- a/messages/fr.json +++ b/messages/fr.json @@ -101,26 +101,56 @@ "period_morning": "le matin", "period_afternoon": "l'après-midi", "period_evening": "en soirée", - "forecast_sky_all_day": "{condition} toute la journée.", - "forecast_sky_two": "{c1} {p1}, puis {c2} {p2}.", - "forecast_sky_three": "{c1} {p1}, puis {c2} {p2} et enfin {c3} {p3}.", - "forecast_temp": "Maximales proches de {high}, minimales de {low} la nuit.", - "forecast_temp_feels": "Maximales proches de {high}, minimales de {low} la nuit, mais ressenti plutôt {feels}.", - "forecast_precip_window": "Environ {amount} de précipitations, surtout {when}.", - "forecast_precip_spread": "Environ {amount} de précipitations réparties sur la journée.", - "forecast_precip_chance": "Temps plutôt sec, avec jusqu'à {percent}% de risque d'averse.", - "forecast_precip_dry": "Le temps reste sec toute la journée.", - "forecast_wind_dir": "Vent de {direction} atteignant {speed}.", - "forecast_wind_dir_gusts": "Vent de {direction} atteignant {speed}, avec des rafales à {gust}.", - "forecast_wind": "Vent atteignant {speed}.", - "forecast_wind_gusts": "Vent atteignant {speed}, avec des rafales à {gust}.", - "forecast_uv": "Indice UV jusqu'à {value} ({label}) : protégez-vous en milieu de journée.", - "forecast_calm": "Pratiquement pas de vent.", "footer_tagline": "Des prévisions météo rapides et sans fioritures, basées sur des données ouvertes.", "footer_data_by": "Données météo par", "footer_forecasts": "Prévisions", "footer_popular": "Lieux populaires", "footer_about_section": "À propos", "model_weather": "Modèle météo", - "model_ensemble": "Modèle d'ensemble" + "model_ensemble": "Modèle d'ensemble", + "sky_all_1": "{condition} toute la journée.", + "sky_all_2": "Une journée {condition} du matin au soir.", + "sky_all_3": "Le ciel reste {condition} tout du long.", + "sky_two_1": "{c1} {p1}, puis {c2} {p2}.", + "sky_two_2": "La journée débute {c1} {p1} avant de devenir {c2} {p2}.", + "sky_two_3": "Ciel {c1} {p1}, puis {c2} {p2}.", + "sky_three_1": "{c1} {p1}, puis {c2} {p2} et enfin {c3} {p3}.", + "sky_three_2": "Le ciel est {c1} {p1}, devient {c2} {p2} et finit {c3} {p3}.", + "sky_three_3": "D'un ciel {c1} {p1} à {c2} {p2}, avant de rester {c3} {p3}.", + "temp_1": "Maximales proches de {high}, minimales de {low} la nuit.", + "temp_2": "Les températures montent à {high} et retombent à {low} après la tombée de la nuit.", + "temp_3": "Entre {low} et {high} au fil de la journée.", + "temp_feels_1": "Maximales proches de {high}, minimales de {low}, mais ressenti plutôt {feels}.", + "temp_feels_2": "Jusqu'à {high} au thermomètre, ressenti {feels}, avant de redescendre à {low}.", + "temp_feels_3": "Il fera {high} mais on ressentira {feels}, avec {low} plus tard.", + "precip_window_1": "Environ {amount} de précipitations, surtout {when}.", + "precip_window_2": "Comptez environ {amount}, concentrés {when}.", + "precip_window_3": "Le passage le plus humide se situe {when}, pour environ {amount} au total.", + "precip_spread_1": "Environ {amount} de précipitations réparties sur la journée.", + "precip_spread_2": "Environ {amount} tombent par intermittence au cours de la journée.", + "precip_spread_3": "Des averses vont et viennent, pour un total d'environ {amount}.", + "precip_chance_1": "Temps plutôt sec, avec jusqu'à {percent}% de risque d'averse.", + "precip_chance_2": "Peu de pluie attendue, mais {percent}% de risque d'une averse passagère.", + "precip_chance_3": "{percent}% de risque d'averse, rien qui justifie un parapluie.", + "precip_dry_1": "Le temps reste sec toute la journée.", + "precip_dry_2": "Pas une goutte attendue.", + "precip_dry_3": "Sec du début à la fin.", + "wind_dir_1": "Vent de secteur {direction} atteignant {speed}.", + "wind_dir_2": "Une brise de secteur {direction} culmine à {speed}.", + "wind_dir_3": "Le vent s'oriente au secteur {direction}, avec des pointes proches de {speed}.", + "wind_dir_gusts_1": "Vent de secteur {direction} atteignant {speed}, avec des rafales à {gust}.", + "wind_dir_gusts_2": "Un vent de secteur {direction} de {speed}, avec des rafales jusqu'à {gust}.", + "wind_dir_gusts_3": "Attendez-vous à {speed} de secteur {direction}, avec des rafales de {gust} par moments.", + "wind_1": "Vent atteignant {speed}.", + "wind_2": "La brise culmine autour de {speed}.", + "wind_3": "Un vent allant jusqu'à {speed}.", + "wind_gusts_1": "Vent atteignant {speed}, avec des rafales à {gust}.", + "wind_gusts_2": "Jusqu'à {speed}, avec des rafales atteignant {gust}.", + "wind_gusts_3": "Une journée à rafales : {speed} en continu, {gust} en pointe.", + "calm_1": "Pratiquement pas de vent.", + "calm_2": "L'air reste quasiment immobile.", + "calm_3": "Quasiment aucun vent de la journée.", + "uv_1": "Indice UV jusqu'à {value} ({label}) : protégez-vous en milieu de journée.", + "uv_2": "Le soleil tape à la mi-journée : UV {value}, {label}.", + "uv_3": "Mieux vaut chercher l'ombre à midi : l'UV atteint {value} ({label})." } diff --git a/messages/it.json b/messages/it.json index 5c67ad5..d36b1f0 100644 --- a/messages/it.json +++ b/messages/it.json @@ -101,26 +101,56 @@ "period_morning": "al mattino", "period_afternoon": "nel pomeriggio", "period_evening": "in serata", - "forecast_sky_all_day": "{condition} per tutta la giornata.", - "forecast_sky_two": "{c1} {p1}, poi {c2} {p2}.", - "forecast_sky_three": "{c1} {p1}, poi {c2} {p2} e infine {c3} {p3}.", - "forecast_temp": "Massime intorno a {high} e minime di {low} durante la notte.", - "forecast_temp_feels": "Massime intorno a {high} e minime di {low} durante la notte, ma con una percezione di {feels}.", - "forecast_precip_window": "Circa {amount} di precipitazioni, soprattutto {when}.", - "forecast_precip_spread": "Circa {amount} di precipitazioni distribuite nell'arco della giornata.", - "forecast_precip_chance": "Perlopiù asciutto, con una probabilità di rovesci fino al {percent}%.", - "forecast_precip_dry": "Resterà asciutto tutto il giorno.", - "forecast_wind_dir": "Vento da {direction} fino a {speed}.", - "forecast_wind_dir_gusts": "Vento da {direction} fino a {speed}, con raffiche a {gust}.", - "forecast_wind": "Vento fino a {speed}.", - "forecast_wind_gusts": "Vento fino a {speed}, con raffiche a {gust}.", - "forecast_uv": "Indice UV fino a {value} ({label}): proteggiti a metà giornata.", - "forecast_calm": "Quasi assenza di vento.", "footer_tagline": "Previsioni meteo rapide e senza fronzoli, basate su dati aperti.", "footer_data_by": "Dati meteo da", "footer_forecasts": "Previsioni", "footer_popular": "Località popolari", "footer_about_section": "Informazioni", "model_weather": "Modello meteo", - "model_ensemble": "Modello d'insieme" + "model_ensemble": "Modello d'insieme", + "sky_all_1": "{condition} per tutta la giornata.", + "sky_all_2": "Una giornata {condition} dall'inizio alla fine.", + "sky_all_3": "Il cielo resta {condition} per tutto il giorno.", + "sky_two_1": "{c1} {p1}, poi {c2} {p2}.", + "sky_two_2": "La giornata si apre {c1} {p1} prima di diventare {c2} {p2}.", + "sky_two_3": "Cielo {c1} {p1} e poi {c2} {p2}.", + "sky_three_1": "{c1} {p1}, poi {c2} {p2} e infine {c3} {p3}.", + "sky_three_2": "Inizia {c1} {p1}, diventa {c2} {p2} e finisce {c3} {p3}.", + "sky_three_3": "Da cielo {c1} {p1} a {c2} {p2}, per poi restare {c3} {p3}.", + "temp_1": "Massime intorno a {high} e minime di {low} durante la notte.", + "temp_2": "Le temperature salgono fino a {high} e tornano a {low} dopo il tramonto.", + "temp_3": "Tra {low} e {high} nel corso della giornata.", + "temp_feels_1": "Massime intorno a {high} e minime di {low}, ma con una percezione di {feels}.", + "temp_feels_2": "Fino a {high} sul termometro, percepiti {feels}, prima di scendere a {low}.", + "temp_feels_3": "Si arriva a {high} ma se ne percepiscono {feels}, con {low} più tardi.", + "precip_window_1": "Circa {amount} di precipitazioni, soprattutto {when}.", + "precip_window_2": "Sono attesi circa {amount}, concentrati {when}.", + "precip_window_3": "Il periodo più piovoso è {when}, per un totale di circa {amount}.", + "precip_spread_1": "Circa {amount} di precipitazioni distribuite nell'arco della giornata.", + "precip_spread_2": "Circa {amount} cadono a intermittenza durante il giorno.", + "precip_spread_3": "Rovesci a intermittenza, per un totale di circa {amount}.", + "precip_chance_1": "Perlopiù asciutto, con una probabilità di rovesci fino al {percent}%.", + "precip_chance_2": "Poca pioggia prevista, ma c'è il {percent}% di probabilità di un rovescio di passaggio.", + "precip_chance_3": "Un {percent}% di rischio rovesci, ma nulla da ombrello.", + "precip_dry_1": "Resterà asciutto tutto il giorno.", + "precip_dry_2": "Non è attesa una goccia.", + "precip_dry_3": "Asciutto dall'inizio alla fine.", + "wind_dir_1": "Vento da {direction} fino a {speed}.", + "wind_dir_2": "Una brezza da {direction} tocca i {speed}.", + "wind_dir_3": "Il vento si mantiene da {direction}, con punte vicine a {speed}.", + "wind_dir_gusts_1": "Vento da {direction} fino a {speed}, con raffiche a {gust}.", + "wind_dir_gusts_2": "Un vento da {direction} di {speed}, con raffiche fino a {gust}.", + "wind_dir_gusts_3": "Attesi {speed} da {direction}, con raffiche di {gust} a tratti.", + "wind_1": "Vento fino a {speed}.", + "wind_2": "La brezza tocca circa {speed}.", + "wind_3": "Aria in movimento fino a {speed}.", + "wind_gusts_1": "Vento fino a {speed}, con raffiche a {gust}.", + "wind_gusts_2": "Fino a {speed}, con raffiche che arrivano a {gust}.", + "wind_gusts_3": "Giornata ventosa: {speed} costanti, {gust} nelle raffiche.", + "calm_1": "Quasi assenza di vento.", + "calm_2": "L'aria resta quasi immobile.", + "calm_3": "Praticamente senza vento per tutto il giorno.", + "uv_1": "Indice UV fino a {value} ({label}): proteggiti a metà giornata.", + "uv_2": "Il sole picchia a mezzogiorno: UV {value}, {label}.", + "uv_3": "Meglio cercare ombra a metà giornata: l'UV arriva a {value} ({label})." } diff --git a/src/lib/components/language-selector.svelte b/src/lib/components/language-selector.svelte index 8889549..040d025 100644 --- a/src/lib/components/language-selector.svelte +++ b/src/lib/components/language-selector.svelte @@ -1,12 +1,12 @@