diff --git a/.gitignore b/.gitignore
index 3b87454..39548b6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -33,3 +33,16 @@ AGENTS.md
# Claude Code scratch: throwaway probe scripts, never committed
/.scratch
+
+# Empty stubs the Claude Code sandbox mounts over shell/editor dotfiles while it
+# runs. They are not project files and keep sneaking into commits via `git add -A`.
+/.bash_profile
+/.bashrc
+/.profile
+/.zprofile
+/.zshrc
+/.gitconfig
+/.gitmodules
+/.ripgreprc
+/.idea
+/.mcp.json
diff --git a/README.md b/README.md
index 6e7136a..0790d6e 100644
--- a/README.md
+++ b/README.md
@@ -46,6 +46,12 @@ Pages that are not prerendered (unlisted cities, GPS coordinate routes like
and resolves the location client-side. Configure the server to serve
`404.html` for unknown paths.
+Serve it as an **internal rewrite (200)**, not as an error page. `error_page
+404 /404.html` sends the right body with a 404 status: the page works, but
+every hard reload of an unprerendered URL logs a 404 in the network panel and
+tells crawlers the page does not exist. `try_files` with a URI as its last
+argument does an internal redirect instead, and answers 200.
+
### 2. Cross-origin isolation (SharedArrayBuffer for the embedded map)
The `/weather/maps/` page embeds `maps.open-meteo.com`, which uses
@@ -83,11 +89,12 @@ drizzli.example.com {
server {
server_name drizzli.example.com;
root /srv/drizzli;
- error_page 404 /404.html;
add_header Cross-Origin-Opener-Policy "same-origin" always;
add_header Cross-Origin-Embedder-Policy "require-corp" always;
location / {
- try_files $uri $uri/ =404;
+ # the trailing /404.html is a URI, so nginx rewrites internally and
+ # answers 200 - `error_page 404 /404.html` would answer 404 instead
+ try_files $uri $uri/index.html /404.html;
}
}
```
diff --git a/messages/de.json b/messages/de.json
index 56e29ee..93a7c0e 100644
--- a/messages/de.json
+++ b/messages/de.json
@@ -1,6 +1,6 @@
{
"$schema": "https://inlang.com/schema/inlang-message-format",
- "nav_week": "7-Tage-Vorhersage",
+ "nav_week": "Wochenvorhersage",
"nav_compare": "Modellvergleich",
"nav_14day": "14-Tage-Vorhersage",
"nav_seasonal": "Saisonal",
@@ -44,7 +44,7 @@
"day_today": "Heute",
"day_tomorrow": "Morgen",
"day_yesterday": "Gestern",
- "page_week_subtitle": "7-Tage-Vorhersage",
+ "page_week_subtitle": "Wochenvorhersage",
"page_compare_subtitle": "Modellvergleich",
"page_14day_subtitle": "14-Tage-Ensemblevorhersage",
"page_seasonal_subtitle": "Saisonale Aussichten",
@@ -101,7 +101,7 @@
"period_morning": "morgens",
"period_afternoon": "nachmittags",
"period_evening": "in den Abendstunden",
- "footer_tagline": "Schnelle, unkomplizierte Wettervorhersagen auf Basis offener Daten.",
+ "footer_tagline": "Schnelle, gratis, unkomplizierte Wettervorhersagen auf Basis offener Daten.",
"footer_data_by": "Wetterdaten von",
"footer_forecasts": "Vorhersagen",
"footer_popular": "Beliebte Orte",
@@ -260,6 +260,8 @@
"table_interval_aria": "Stundenintervall",
"table_now": "Jetzt",
"interval_toggle": "Zwischen 1- und 3-Stunden-Intervall wechseln",
+ "page_loading": "Wird geladen…",
+ "page_loading_dismiss": "Schließen",
"charts_loading": "Diagramme werden geladen…",
"chart_download": "Meteogramm als PNG-Bild herunterladen",
"chart_credit_viz": "Visualisierung von",
@@ -267,7 +269,7 @@
"legend_show": "Legende anzeigen",
"meteograms_none_before": "Keine Meteogramme konfiguriert,",
"meteograms_none_action": "fügen Sie Variablen hinzu",
- "meteograms_none_historical": "Keine Meteogramme konfiguriert. Fügen Sie Variablen auf der 7-Tage-Seite hinzu.",
+ "meteograms_none_historical": "Keine Meteogramme konfiguriert. Fügen Sie Variablen auf der Wochenvorhersage-Seite hinzu.",
"search_searching": "Wird gesucht…",
"search_favorites": "Favoriten",
"search_recent": "Zuletzt",
@@ -280,6 +282,7 @@
"model_automatic_selection": "Automatische Auswahl",
"model_selector_aria": "Auswahl: {label}",
"compare_models_heading": "Modelle",
+ "compare_models_choose": "Modelle für den Vergleich wählen",
"compare_variables_heading": "Stündliche Wettervariablen",
"compare_standard_preset": "Standardvergleich",
"compare_weather_conditions": "Wetterlage & Gesamtbewölkung",
@@ -385,5 +388,35 @@
"cadence_varies": "variiert",
"model_group_automatic": "Automatisch",
"model_group_reanalysis": "ECMWF-Reanalyse",
- "model_group_regional_reanalysis": "Regionale Reanalyse"
+ "model_group_regional_reanalysis": "Regionale Reanalyse",
+ "wmo_0": "Klarer Himmel",
+ "wmo_1": "Überwiegend klar",
+ "wmo_2": "Teils bewölkt",
+ "wmo_3": "Bedeckt",
+ "wmo_45": "Nebel",
+ "wmo_48": "Gefrierender Nebel",
+ "wmo_51": "Leichter Nieselregen",
+ "wmo_53": "Mäßiger Nieselregen",
+ "wmo_55": "Starker Nieselregen",
+ "wmo_56": "Leichter gefrierender Nieselregen",
+ "wmo_57": "Starker gefrierender Nieselregen",
+ "wmo_61": "Leichter Regen",
+ "wmo_63": "Mäßiger Regen",
+ "wmo_65": "Starker Regen",
+ "wmo_66": "Leichter gefrierender Regen",
+ "wmo_67": "Starker gefrierender Regen",
+ "wmo_71": "Leichter Schneefall",
+ "wmo_73": "Mäßiger Schneefall",
+ "wmo_75": "Starker Schneefall",
+ "wmo_77": "Schneegriesel",
+ "wmo_80": "Leichte Regenschauer",
+ "wmo_81": "Mäßige Regenschauer",
+ "wmo_82": "Heftige Regenschauer",
+ "wmo_85": "Leichte Schneeschauer",
+ "wmo_86": "Starke Schneeschauer",
+ "wmo_95": "Gewitter",
+ "wmo_96": "Gewitter mit leichtem Hagel",
+ "wmo_99": "Gewitter mit starkem Hagel",
+ "summary_read_more": "Mehr anzeigen",
+ "summary_read_less": "Weniger anzeigen"
}
diff --git a/messages/en.json b/messages/en.json
index 162b91a..b26aeb1 100644
--- a/messages/en.json
+++ b/messages/en.json
@@ -1,6 +1,6 @@
{
"$schema": "https://inlang.com/schema/inlang-message-format",
- "nav_week": "7-Day Forecast",
+ "nav_week": "Weekly Forecast",
"nav_compare": "Model Comparison",
"nav_14day": "14-Day Forecast",
"nav_seasonal": "Seasonal",
@@ -44,7 +44,7 @@
"day_today": "Today",
"day_tomorrow": "Tomorrow",
"day_yesterday": "Yesterday",
- "page_week_subtitle": "7-day forecast",
+ "page_week_subtitle": "Weekly forecast",
"page_compare_subtitle": "Model comparison",
"page_14day_subtitle": "14-day ensemble forecast",
"page_seasonal_subtitle": "Seasonal outlook",
@@ -101,7 +101,7 @@
"period_morning": "in the morning",
"period_afternoon": "in the afternoon",
"period_evening": "in the evening",
- "footer_tagline": "Fast, no-nonsense weather forecasts built on open data.",
+ "footer_tagline": "Fast, free, no-nonsense weather forecasts built on open data.",
"footer_data_by": "Weather data by",
"footer_forecasts": "Forecasts",
"footer_popular": "Popular locations",
@@ -260,6 +260,8 @@
"table_interval_aria": "Hourly interval",
"table_now": "Now",
"interval_toggle": "Toggle between 1-hour and 3-hour intervals",
+ "page_loading": "Loading…",
+ "page_loading_dismiss": "Dismiss",
"charts_loading": "Loading charts...",
"chart_download": "Download meteogram as PNG image",
"chart_credit_viz": "visualisation by",
@@ -267,7 +269,7 @@
"legend_show": "Show legend",
"meteograms_none_before": "No meteograms configured,",
"meteograms_none_action": "add some variables",
- "meteograms_none_historical": "No meteograms configured. Add variables from the 7-day forecast page.",
+ "meteograms_none_historical": "No meteograms configured. Add variables from the weekly forecast page.",
"search_searching": "Searching...",
"search_favorites": "Favorites",
"search_recent": "Recent",
@@ -280,6 +282,7 @@
"model_automatic_selection": "Automatic selection",
"model_selector_aria": "{label} selection",
"compare_models_heading": "Models",
+ "compare_models_choose": "Choose which models to plot",
"compare_variables_heading": "Hourly Weather Variables",
"compare_standard_preset": "Standard comparison",
"compare_weather_conditions": "Weather conditions & cloud cover",
@@ -385,5 +388,35 @@
"cadence_varies": "varies",
"model_group_automatic": "Automatic",
"model_group_reanalysis": "ECMWF reanalysis",
- "model_group_regional_reanalysis": "Regional reanalysis"
+ "model_group_regional_reanalysis": "Regional reanalysis",
+ "wmo_0": "Clear sky",
+ "wmo_1": "Mainly clear",
+ "wmo_2": "Partly cloudy",
+ "wmo_3": "Overcast",
+ "wmo_45": "Fog",
+ "wmo_48": "Depositing rime fog",
+ "wmo_51": "Light drizzle",
+ "wmo_53": "Moderate drizzle",
+ "wmo_55": "Dense drizzle",
+ "wmo_56": "Light freezing drizzle",
+ "wmo_57": "Dense freezing drizzle",
+ "wmo_61": "Slight rain",
+ "wmo_63": "Moderate rain",
+ "wmo_65": "Heavy rain",
+ "wmo_66": "Light freezing rain",
+ "wmo_67": "Heavy freezing rain",
+ "wmo_71": "Slight snowfall",
+ "wmo_73": "Moderate snowfall",
+ "wmo_75": "Heavy snowfall",
+ "wmo_77": "Snow grains",
+ "wmo_80": "Slight rain showers",
+ "wmo_81": "Moderate rain showers",
+ "wmo_82": "Violent rain showers",
+ "wmo_85": "Slight snow showers",
+ "wmo_86": "Heavy snow showers",
+ "wmo_95": "Thunderstorm",
+ "wmo_96": "Thunderstorm with slight hail",
+ "wmo_99": "Thunderstorm with heavy hail",
+ "summary_read_more": "Read more",
+ "summary_read_less": "Show less"
}
diff --git a/messages/es.json b/messages/es.json
index 52c1847..1b383ee 100644
--- a/messages/es.json
+++ b/messages/es.json
@@ -1,6 +1,6 @@
{
"$schema": "https://inlang.com/schema/inlang-message-format",
- "nav_week": "Pronóstico de 7 días",
+ "nav_week": "Pronóstico semanal",
"nav_compare": "Comparación de modelos",
"nav_14day": "Pronóstico de 14 días",
"nav_seasonal": "Estacional",
@@ -44,11 +44,11 @@
"day_today": "Hoy",
"day_tomorrow": "Mañana",
"day_yesterday": "Ayer",
- "page_week_subtitle": "pronóstico de 7 días",
- "page_compare_subtitle": "comparación de modelos",
- "page_14day_subtitle": "pronóstico de conjunto a 14 días",
- "page_seasonal_subtitle": "previsión estacional",
- "page_historical_subtitle": "clima histórico",
+ "page_week_subtitle": "Pronóstico semanal",
+ "page_compare_subtitle": "Comparación de modelos",
+ "page_14day_subtitle": "Pronóstico de conjunto a 14 días",
+ "page_seasonal_subtitle": "Previsión estacional",
+ "page_historical_subtitle": "Clima histórico",
"hourly_heading": "por horas",
"hourly_variables": "Variables",
"meteograms_heading": "Meteogramas",
@@ -260,6 +260,8 @@
"table_interval_aria": "Intervalo horario",
"table_now": "Ahora",
"interval_toggle": "Alternar entre intervalos de 1 y 3 horas",
+ "page_loading": "Cargando…",
+ "page_loading_dismiss": "Descartar",
"charts_loading": "Cargando gráficos…",
"chart_download": "Descargar el meteograma como imagen PNG",
"chart_credit_viz": "visualización de",
@@ -267,7 +269,7 @@
"legend_show": "Mostrar leyenda",
"meteograms_none_before": "No hay meteogramas configurados,",
"meteograms_none_action": "añade algunas variables",
- "meteograms_none_historical": "No hay meteogramas configurados. Añade variables desde la página de 7 días.",
+ "meteograms_none_historical": "No hay meteogramas configurados. Añade variables desde la página del pronóstico semanal.",
"search_searching": "Buscando…",
"search_favorites": "Favoritos",
"search_recent": "Recientes",
@@ -280,6 +282,7 @@
"model_automatic_selection": "Selección automática",
"model_selector_aria": "Selección de {label}",
"compare_models_heading": "Modelos",
+ "compare_models_choose": "Elige los modelos a comparar",
"compare_variables_heading": "Variables meteorológicas horarias",
"compare_standard_preset": "Comparación estándar",
"compare_weather_conditions": "Condiciones y nubosidad",
@@ -385,5 +388,35 @@
"cadence_varies": "variable",
"model_group_automatic": "Automático",
"model_group_reanalysis": "Reanálisis del ECMWF",
- "model_group_regional_reanalysis": "Reanálisis regional"
+ "model_group_regional_reanalysis": "Reanálisis regional",
+ "wmo_0": "Cielo despejado",
+ "wmo_1": "Mayormente despejado",
+ "wmo_2": "Parcialmente nublado",
+ "wmo_3": "Cubierto",
+ "wmo_45": "Niebla",
+ "wmo_48": "Niebla engelante",
+ "wmo_51": "Llovizna débil",
+ "wmo_53": "Llovizna moderada",
+ "wmo_55": "Llovizna intensa",
+ "wmo_56": "Llovizna engelante débil",
+ "wmo_57": "Llovizna engelante intensa",
+ "wmo_61": "Lluvia débil",
+ "wmo_63": "Lluvia moderada",
+ "wmo_65": "Lluvia intensa",
+ "wmo_66": "Lluvia engelante débil",
+ "wmo_67": "Lluvia engelante intensa",
+ "wmo_71": "Nevada débil",
+ "wmo_73": "Nevada moderada",
+ "wmo_75": "Nevada intensa",
+ "wmo_77": "Granos de nieve",
+ "wmo_80": "Chubascos débiles",
+ "wmo_81": "Chubascos moderados",
+ "wmo_82": "Chubascos violentos",
+ "wmo_85": "Chubascos de nieve débiles",
+ "wmo_86": "Chubascos de nieve intensos",
+ "wmo_95": "Tormenta",
+ "wmo_96": "Tormenta con granizo ligero",
+ "wmo_99": "Tormenta con granizo fuerte",
+ "summary_read_more": "Leer más",
+ "summary_read_less": "Mostrar menos"
}
diff --git a/messages/fr.json b/messages/fr.json
index 2e04997..96bfd6d 100644
--- a/messages/fr.json
+++ b/messages/fr.json
@@ -1,6 +1,6 @@
{
"$schema": "https://inlang.com/schema/inlang-message-format",
- "nav_week": "Prévisions à 7 jours",
+ "nav_week": "Prévisions hebdomadaires",
"nav_compare": "Comparaison des modèles",
"nav_14day": "Prévisions à 14 jours",
"nav_seasonal": "Saisonnier",
@@ -44,11 +44,11 @@
"day_today": "Aujourd'hui",
"day_tomorrow": "Demain",
"day_yesterday": "Hier",
- "page_week_subtitle": "prévisions à 7 jours",
- "page_compare_subtitle": "comparaison des modèles",
- "page_14day_subtitle": "prévision d'ensemble à 14 jours",
- "page_seasonal_subtitle": "tendances saisonnières",
- "page_historical_subtitle": "météo historique",
+ "page_week_subtitle": "Prévisions hebdomadaires",
+ "page_compare_subtitle": "Comparaison des modèles",
+ "page_14day_subtitle": "Prévision d'ensemble à 14 jours",
+ "page_seasonal_subtitle": "Tendances saisonnières",
+ "page_historical_subtitle": "Météo historique",
"hourly_heading": "par heure",
"hourly_variables": "Variables",
"meteograms_heading": "Météogrammes",
@@ -260,6 +260,8 @@
"table_interval_aria": "Intervalle horaire",
"table_now": "Maintenant",
"interval_toggle": "Basculer entre les intervalles de 1 h et 3 h",
+ "page_loading": "Chargement…",
+ "page_loading_dismiss": "Fermer",
"charts_loading": "Chargement des graphiques…",
"chart_download": "Télécharger le météogramme en PNG",
"chart_credit_viz": "visualisation par",
@@ -267,7 +269,7 @@
"legend_show": "Afficher la légende",
"meteograms_none_before": "Aucun météogramme configuré,",
"meteograms_none_action": "ajoutez des variables",
- "meteograms_none_historical": "Aucun météogramme configuré. Ajoutez des variables depuis la page 7 jours.",
+ "meteograms_none_historical": "Aucun météogramme configuré. Ajoutez des variables depuis la page des prévisions hebdomadaires.",
"search_searching": "Recherche…",
"search_favorites": "Favoris",
"search_recent": "Récents",
@@ -280,6 +282,7 @@
"model_automatic_selection": "Sélection automatique",
"model_selector_aria": "Sélection : {label}",
"compare_models_heading": "Modèles",
+ "compare_models_choose": "Choisir les modèles à comparer",
"compare_variables_heading": "Variables météo horaires",
"compare_standard_preset": "Comparaison standard",
"compare_weather_conditions": "Conditions & couverture nuageuse",
@@ -385,5 +388,35 @@
"cadence_varies": "variable",
"model_group_automatic": "Automatique",
"model_group_reanalysis": "Réanalyse ECMWF",
- "model_group_regional_reanalysis": "Réanalyse régionale"
+ "model_group_regional_reanalysis": "Réanalyse régionale",
+ "wmo_0": "Ciel dégagé",
+ "wmo_1": "Plutôt dégagé",
+ "wmo_2": "Partiellement nuageux",
+ "wmo_3": "Couvert",
+ "wmo_45": "Brouillard",
+ "wmo_48": "Brouillard givrant",
+ "wmo_51": "Bruine faible",
+ "wmo_53": "Bruine modérée",
+ "wmo_55": "Bruine dense",
+ "wmo_56": "Bruine verglaçante faible",
+ "wmo_57": "Bruine verglaçante dense",
+ "wmo_61": "Pluie faible",
+ "wmo_63": "Pluie modérée",
+ "wmo_65": "Pluie forte",
+ "wmo_66": "Pluie verglaçante faible",
+ "wmo_67": "Pluie verglaçante forte",
+ "wmo_71": "Neige faible",
+ "wmo_73": "Neige modérée",
+ "wmo_75": "Neige forte",
+ "wmo_77": "Grésil",
+ "wmo_80": "Averses faibles",
+ "wmo_81": "Averses modérées",
+ "wmo_82": "Averses violentes",
+ "wmo_85": "Averses de neige faibles",
+ "wmo_86": "Averses de neige fortes",
+ "wmo_95": "Orage",
+ "wmo_96": "Orage avec grêle légère",
+ "wmo_99": "Orage avec forte grêle",
+ "summary_read_more": "Lire la suite",
+ "summary_read_less": "Afficher moins"
}
diff --git a/messages/it.json b/messages/it.json
index 3d16c06..b0d8e3d 100644
--- a/messages/it.json
+++ b/messages/it.json
@@ -1,6 +1,6 @@
{
"$schema": "https://inlang.com/schema/inlang-message-format",
- "nav_week": "Previsioni a 7 giorni",
+ "nav_week": "Previsioni settimanali",
"nav_compare": "Confronto modelli",
"nav_14day": "Previsioni a 14 giorni",
"nav_seasonal": "Stagionale",
@@ -44,11 +44,11 @@
"day_today": "Oggi",
"day_tomorrow": "Domani",
"day_yesterday": "Ieri",
- "page_week_subtitle": "previsioni a 7 giorni",
- "page_compare_subtitle": "confronto modelli",
- "page_14day_subtitle": "previsione d'insieme a 14 giorni",
- "page_seasonal_subtitle": "tendenze stagionali",
- "page_historical_subtitle": "meteo storico",
+ "page_week_subtitle": "Previsioni settimanali",
+ "page_compare_subtitle": "Confronto modelli",
+ "page_14day_subtitle": "Previsione d'insieme a 14 giorni",
+ "page_seasonal_subtitle": "Tendenze stagionali",
+ "page_historical_subtitle": "Meteo storico",
"hourly_heading": "orario",
"hourly_variables": "Variabili",
"meteograms_heading": "Meteogrammi",
@@ -260,6 +260,8 @@
"table_interval_aria": "Intervallo orario",
"table_now": "Ora",
"interval_toggle": "Alterna tra intervalli di 1 e 3 ore",
+ "page_loading": "Caricamento…",
+ "page_loading_dismiss": "Chiudi",
"charts_loading": "Caricamento dei grafici…",
"chart_download": "Scarica il meteogramma come immagine PNG",
"chart_credit_viz": "visualizzazione di",
@@ -267,7 +269,7 @@
"legend_show": "Mostra legenda",
"meteograms_none_before": "Nessun meteogramma configurato,",
"meteograms_none_action": "aggiungi qualche variabile",
- "meteograms_none_historical": "Nessun meteogramma configurato. Aggiungi variabili dalla pagina a 7 giorni.",
+ "meteograms_none_historical": "Nessun meteogramma configurato. Aggiungi variabili dalla pagina delle previsioni settimanali.",
"search_searching": "Ricerca in corso…",
"search_favorites": "Preferiti",
"search_recent": "Recenti",
@@ -280,6 +282,7 @@
"model_automatic_selection": "Selezione automatica",
"model_selector_aria": "Selezione di {label}",
"compare_models_heading": "Modelli",
+ "compare_models_choose": "Scegli i modelli da confrontare",
"compare_variables_heading": "Variabili meteo orarie",
"compare_standard_preset": "Confronto standard",
"compare_weather_conditions": "Condizioni e copertura nuvolosa",
@@ -385,5 +388,35 @@
"cadence_varies": "variabile",
"model_group_automatic": "Automatico",
"model_group_reanalysis": "Rianalisi ECMWF",
- "model_group_regional_reanalysis": "Rianalisi regionale"
+ "model_group_regional_reanalysis": "Rianalisi regionale",
+ "wmo_0": "Cielo sereno",
+ "wmo_1": "Prevalentemente sereno",
+ "wmo_2": "Parzialmente nuvoloso",
+ "wmo_3": "Coperto",
+ "wmo_45": "Nebbia",
+ "wmo_48": "Nebbia gelata",
+ "wmo_51": "Pioviggine debole",
+ "wmo_53": "Pioviggine moderata",
+ "wmo_55": "Pioviggine intensa",
+ "wmo_56": "Pioviggine congelantesi debole",
+ "wmo_57": "Pioviggine congelantesi intensa",
+ "wmo_61": "Pioggia debole",
+ "wmo_63": "Pioggia moderata",
+ "wmo_65": "Pioggia forte",
+ "wmo_66": "Pioggia congelantesi debole",
+ "wmo_67": "Pioggia congelantesi forte",
+ "wmo_71": "Nevicata debole",
+ "wmo_73": "Nevicata moderata",
+ "wmo_75": "Nevicata forte",
+ "wmo_77": "Granuli di neve",
+ "wmo_80": "Rovesci deboli",
+ "wmo_81": "Rovesci moderati",
+ "wmo_82": "Rovesci violenti",
+ "wmo_85": "Rovesci di neve deboli",
+ "wmo_86": "Rovesci di neve forti",
+ "wmo_95": "Temporale",
+ "wmo_96": "Temporale con grandine leggera",
+ "wmo_99": "Temporale con grandine forte",
+ "summary_read_more": "Leggi tutto",
+ "summary_read_less": "Mostra meno"
}
diff --git a/src/app.html b/src/app.html
index cb618ef..c833eb1 100644
--- a/src/app.html
+++ b/src/app.html
@@ -3,6 +3,11 @@
+
+
-
+
+
+
+
+{#if loadingOverlay}
+
+
+
+
+
+
{m.page_loading()}
+
+
+{/if}
+
-
+
@@ -221,10 +389,7 @@
{:else}
-
+
{@render children()}
{#snippet heroActions()}
-
+
{
@@ -340,42 +344,52 @@
{/if}
-{#if fetchedData}
-
-
- {#each chartDefs as def, i (i)}
-
-
-
{def.title}
- {#if def.subtitle}
-
{def.subtitle}
- {/if}
+
+
+ {#if fetchedData}
+
+
+ {#each chartDefs as def, i (i)}
+
+
+
{def.title}
+ {#if def.subtitle}
+
{def.subtitle}
+ {/if}
+
+
+
+
-
-
-
-
- {/each}
-
-{:else}
-
-
-{/if}
+ {/each}
+
+ {:else}
+
+
+
+
+ {/if}
+
diff --git a/src/routes/weather/compare/[location]/+page.svelte b/src/routes/weather/compare/[location]/+page.svelte
index 1080eb1..028f147 100644
--- a/src/routes/weather/compare/[location]/+page.svelte
+++ b/src/routes/weather/compare/[location]/+page.svelte
@@ -1,6 +1,7 @@
{#snippet heroActions()}
-
+
-
+
{/if}
-
+
{#if result && fetchedHourly && fetchedDaily}
{:else}
-
-
+
diff --git a/src/routes/weather/historical/[location]/HistoricalDaily.svelte b/src/routes/weather/historical/[location]/HistoricalDaily.svelte
index 1d5f989..3c7d27e 100644
--- a/src/routes/weather/historical/[location]/HistoricalDaily.svelte
+++ b/src/routes/weather/historical/[location]/HistoricalDaily.svelte
@@ -9,7 +9,7 @@
} from '$lib/services/weather';
import { getColor, getTempStyle } from '../../utils/colors';
- import { getWeatherIconName } from '../../utils/weather-codes';
+ import { getWeatherDescription, getWeatherIconName } from '../../utils/weather-codes';
import { type WeatherUnits, getPrecipUnit, getTempUnit } from '../../week/[location]/types';
interface Props {
@@ -202,7 +202,8 @@
>{formatZoned(date, timezone, 'd MMM')}
-