copy: simplify user-facing descriptions

This commit is contained in:
zv
2026-07-04 16:04:39 +02:00
parent f15ebd28dc
commit ab6b7b414f
3 changed files with 32 additions and 53 deletions

View File

@@ -32,7 +32,7 @@ export function ForecastSources({ sources }: { sources: ForecastSource[] }) {
>
Open-Meteo <ExternalLink className="size-3" />
</a>
. {t(hasImgw ? "forecast.sourceCombinedDescription" : "forecast.sourceFallbackDescription")}
.
</p>
);
}

View File

@@ -801,7 +801,9 @@ export function SettingsPage() {
</Button>
</div>
{t("settings.notifications.implementationNote") && (
<p className="mt-4 text-xs leading-5 text-muted">{t("settings.notifications.implementationNote")}</p>
)}
</div>
</div>
</Card>

View File

@@ -21,8 +21,7 @@ const translations = {
"theme.dark": "Włącz ciemny motyw",
"settings.section": "Preferencje",
"settings.title": "Ustawienia",
"settings.description":
"Zarządzaj językiem, wyglądem i przygotowaniem powiadomień o ostrzeżeniach meteorologicznych IMGW.",
"settings.description": "Dostosuj wygląd, język, sekcje i powiadomienia.",
"settings.language.title": "Język",
"settings.language.description":
"Zmieniaj język interfejsu. Nazwy stacji i treści IMGW pozostają bez automatycznego tłumaczenia.",
@@ -68,16 +67,12 @@ const translations = {
"Oficjalne ostrzeżenia IMGW są obecnie obsługiwane tylko dla Polski. Dla tej lokalizacji możesz używać briefów opartych o prognozę modelową Open-Meteo.",
"settings.notifications.deviceTitle": "To urządzenie",
"settings.notifications.enable": "Alerty IMGW",
"settings.notifications.enableDescription":
"Subskrypcja zostanie zapisana dla wybranego województwa i użyta przez serwerowy sprawdzacz ostrzeżeń.",
"settings.notifications.enableGlobalDescription":
"Subskrypcja zostanie zapisana dla wybranej lokalizacji i użyta do briefów opartych o prognozę modelową.",
"settings.notifications.enableDescription": "Otrzymuj alerty dla wybranego obszaru.",
"settings.notifications.enableGlobalDescription": "Otrzymuj briefy dla wybranej lokalizacji.",
"settings.notifications.morningBrief": "Brief poranny o 7:00",
"settings.notifications.morningBriefDescription":
"Używa wybranej lokalizacji i prognozy modelowej, aby wysłać krótkie podsumowanie dnia na to urządzenie.",
"settings.notifications.morningBriefDescription": "Krótkie podsumowanie pogody na dziś.",
"settings.notifications.tomorrowBrief": "Brief na jutro o 18:00",
"settings.notifications.tomorrowBriefDescription":
"Wysyła wieczorem krótką prognozę na kolejny dzień, w tym sygnały burz i opadów z modelu.",
"settings.notifications.tomorrowBriefDescription": "Wieczorna prognoza na kolejny dzień.",
"settings.notifications.enableDevice": "Włącz na tym urządzeniu",
"settings.notifications.disable": "Wyłącz na tym urządzeniu",
"settings.notifications.enabledStatus": "Włączone",
@@ -92,7 +87,7 @@ const translations = {
"settings.notifications.testError": "Nie udało się wysłać powiadomienia testowego.",
"settings.notifications.requestPermission": "Sprawdź zgodę",
"settings.notifications.statusChecking": "Sprawdzam obsługę powiadomień w tej przeglądarce.",
"settings.notifications.statusUnconfigured": "Serwer nie ma jeszcze skonfigurowanych kluczy Web Push VAPID.",
"settings.notifications.statusUnconfigured": "Powiadomienia są niedostępne.",
"settings.notifications.statusUnsupported": "Ta przeglądarka nie udostępnia Web Push dla tej aplikacji.",
"settings.notifications.statusNeedsInstall":
"Na iPhonie dodaj aplikację do ekranu początkowego przez Udostępnij → Dodaj do ekranu początkowego, a potem otwórz ją z ikony.",
@@ -100,8 +95,7 @@ const translations = {
"settings.notifications.statusGranted": "To urządzenie ma zgodę na powiadomienia.",
"settings.notifications.statusReady":
"Możesz poprosić system o zgodę na powiadomienia. Android i desktop działają bez instalowania PWA, jeśli przeglądarka obsługuje Web Push.",
"settings.notifications.implementationNote":
"Serwerowy sprawdzacz wysyła nowe ostrzeżenia meteo IMGW oraz briefy przez Web Push. Subskrypcje i historia wysyłek są przechowywane w SQLite.",
"settings.notifications.implementationNote": "",
"pwa.install": "Zainstaluj",
"common.noData": "Brak danych",
"common.loading": "Ładowanie danych",
@@ -110,8 +104,7 @@ const translations = {
"error.description": "Sprawdź połączenie i spróbuj ponownie.",
"dashboard.error": "Nie udało się pobrać listy stacji synoptycznych IMGW.",
"brief.label": "Brief dnia",
"brief.description":
"Automatyczne podsumowanie dla lokalizacji: {location}. Bez zewnętrznego modelu AI, wyłącznie z prognozy i ostrzeżeń.",
"brief.description": "Podsumowanie dla lokalizacji: {location}.",
"brief.tomorrowLabel": "Jutro",
"brief.pushHint":
"Krótkie wersje mogą być wysyłane jako powiadomienia o 7:00 i 18:00 po włączeniu ich w ustawieniach.",
@@ -195,8 +188,7 @@ const translations = {
"weather.temperatureDetail": "Temperatura powietrza",
"forecast.label": "Prognoza modelowa",
"forecast.title": "Najbliższe godziny i dni",
"forecast.description":
"Prognoza dla {location}. Bieżące warunki powyżej pochodzą z IMGW, a poniższe wartości są prognozą modelową preferującą IMGW.",
"forecast.description": "Prognoza dla lokalizacji: {location}.",
"forecast.hourly": "Najbliższe 24 godziny",
"forecast.daily": "Prognoza 7-dniowa",
"forecast.today": "Dzisiaj",
@@ -221,9 +213,8 @@ const translations = {
"forecast.maxProbability": "Maks. szansa opadu",
"forecast.pastHour": "Miniona godzina",
"forecast.source": "Źródło prognozy:",
"forecast.sourceCombinedDescription":
"IMGW ALARO dostarcza dostępne godziny prognozy, a Open-Meteo uzupełnia prawdopodobieństwo opadu i dalszy horyzont do 7 dni.",
"forecast.sourceFallbackDescription": "Prognoza jest wyświetlana jako modelowa prognoza Open-Meteo.",
"forecast.sourceCombinedDescription": "IMGW ALARO i Open-Meteo.",
"forecast.sourceFallbackDescription": "Open-Meteo.",
"forecast.error": "Nie udało się pobrać prognozy modelowej.",
"forecast.emptyTitle": "Brak prognozy",
"forecast.emptyDescription": "Źródła prognozy nie zwróciły teraz kompletnej prognozy dla tej lokalizacji.",
@@ -255,8 +246,7 @@ const translations = {
"Wizualizacja bieżącego odczytu. API synoptyczne IMGW nie udostępnia historii ani prognozy godzinowej.",
"warnings.section": "Komunikaty IMGW",
"warnings.title": "Ostrzeżenia",
"warnings.description":
"Aktualne ostrzeżenia meteorologiczne i hydrologiczne publikowane przez IMGW. Szczegóły obszaru i czasu obowiązywania pochodzą bezpośrednio z API.",
"warnings.description": "Aktualne ostrzeżenia meteorologiczne i hydrologiczne IMGW.",
"warnings.myProvince": "Mój obszar",
"warnings.myProvinceDescription":
"Najpierw pokazujemy komunikaty IMGW dotyczące obszaru {province}, zgodnie z lokalizacją wybraną w pogodzie.",
@@ -269,8 +259,7 @@ const translations = {
"warnings.emptyTitle": "Brak aktywnych ostrzeżeń",
"warnings.emptyDescription": "IMGW nie publikuje obecnie ostrzeżeń meteorologicznych ani hydrologicznych.",
"warnings.globalUnavailableTitle": "Oficjalne ostrzeżenia tylko dla Polski",
"warnings.globalUnavailableDescription":
"Oficjalne ostrzeżenia pogodowe są obecnie obsługiwane tylko dla Polski przez IMGW. Dla tej lokalizacji możesz korzystać z prognozy modelowej Open-Meteo, ale nie traktujemy jej jako oficjalnego alertu.",
"warnings.globalUnavailableDescription": "Oficjalne ostrzeżenia są obecnie dostępne tylko dla Polski.",
"warnings.drought": "Susza hydrologiczna",
"warnings.levelUnknown": "Poziom nieokreślony",
"warnings.level": "Stopień {level}",
@@ -291,8 +280,7 @@ const translations = {
"warnings.dashboard.viewAll": "Zobacz wszystkie",
"hydro.section": "Monitoring wód IMGW",
"hydro.title": "Hydro",
"hydro.description":
"Najnowsze dostępne pomiary poziomu wody, temperatury i przepływu. Każdy parametr może mieć własny czas aktualizacji.",
"hydro.description": "Najnowsze pomiary poziomu, temperatury i przepływu wody.",
"hydro.error": "Nie udało się pobrać stacji hydrologicznych IMGW.",
"hydro.searchLabel": "Szukaj stacji hydrologicznej",
"hydro.searchPlaceholder": "Szukaj stacji, rzeki lub województwa…",
@@ -324,8 +312,7 @@ const translations = {
"theme.dark": "Enable dark theme",
"settings.section": "Preferences",
"settings.title": "Settings",
"settings.description":
"Manage language, appearance and preparation for IMGW meteorological warning notifications.",
"settings.description": "Customize appearance, language, sections and notifications.",
"settings.language.title": "Language",
"settings.language.description":
"Change the interface language. Station names and IMGW content are not translated automatically.",
@@ -370,16 +357,12 @@ const translations = {
"Official IMGW warnings are currently supported only for Poland. For this location you can use briefs based on the Open-Meteo model forecast.",
"settings.notifications.deviceTitle": "This device",
"settings.notifications.enable": "IMGW alerts",
"settings.notifications.enableDescription":
"The subscription will be saved for the selected province and used by the server warning checker.",
"settings.notifications.enableGlobalDescription":
"The subscription will be saved for the selected location and used for model forecast briefs.",
"settings.notifications.enableDescription": "Receive alerts for the selected area.",
"settings.notifications.enableGlobalDescription": "Receive briefs for the selected location.",
"settings.notifications.morningBrief": "Morning brief at 7:00",
"settings.notifications.morningBriefDescription":
"Uses the selected location and model forecast to send a short daily summary to this device.",
"settings.notifications.morningBriefDescription": "A short weather summary for today.",
"settings.notifications.tomorrowBrief": "Tomorrow brief at 18:00",
"settings.notifications.tomorrowBriefDescription":
"Sends a short evening forecast for the next day, including storm and rain signals from the model.",
"settings.notifications.tomorrowBriefDescription": "An evening forecast for the next day.",
"settings.notifications.enableDevice": "Enable on this device",
"settings.notifications.disable": "Disable on this device",
"settings.notifications.enabledStatus": "Enabled",
@@ -394,7 +377,7 @@ const translations = {
"settings.notifications.testError": "Unable to send the test notification.",
"settings.notifications.requestPermission": "Check permission",
"settings.notifications.statusChecking": "Checking notification support in this browser.",
"settings.notifications.statusUnconfigured": "The server does not have Web Push VAPID keys configured yet.",
"settings.notifications.statusUnconfigured": "Notifications are unavailable.",
"settings.notifications.statusUnsupported": "This browser does not provide Web Push for this app.",
"settings.notifications.statusNeedsInstall":
"On iPhone, add the app to the Home Screen using Share → Add to Home Screen, then open it from the icon.",
@@ -402,8 +385,7 @@ const translations = {
"settings.notifications.statusGranted": "This device has notification permission.",
"settings.notifications.statusReady":
"You can ask the system for notification permission. Android and desktop work without installing the PWA when the browser supports Web Push.",
"settings.notifications.implementationNote":
"The server checker sends new IMGW meteorological warnings and briefs through Web Push. Subscriptions and delivery history are stored in SQLite.",
"settings.notifications.implementationNote": "",
"pwa.install": "Install",
"common.noData": "No data",
"common.loading": "Loading data",
@@ -412,7 +394,7 @@ const translations = {
"error.description": "Check your connection and try again.",
"dashboard.error": "Unable to load the IMGW synoptic station list.",
"brief.label": "Daily brief",
"brief.description": "Automatic summary for: {location}. No external AI model, only forecast data and warnings.",
"brief.description": "Summary for: {location}.",
"brief.tomorrowLabel": "Tomorrow",
"brief.pushHint": "Short versions can be sent as 7:00 and 18:00 notifications after enabling them in settings.",
"brief.error": "Unable to prepare the daily brief.",
@@ -497,8 +479,7 @@ const translations = {
"weather.temperatureDetail": "Air temperature",
"forecast.label": "Model forecast",
"forecast.title": "Upcoming hours and days",
"forecast.description":
"Forecast for {location}. The current conditions above come from IMGW. The values below are a model forecast preferring IMGW.",
"forecast.description": "Forecast for: {location}.",
"forecast.hourly": "Next 24 hours",
"forecast.daily": "7-day forecast",
"forecast.today": "Today",
@@ -523,9 +504,8 @@ const translations = {
"forecast.maxProbability": "Max. rain chance",
"forecast.pastHour": "Past hour",
"forecast.source": "Forecast source:",
"forecast.sourceCombinedDescription":
"IMGW ALARO provides the available forecast hours. Open-Meteo supplements precipitation probability and extends the horizon to 7 days.",
"forecast.sourceFallbackDescription": "The forecast is shown as an Open-Meteo model forecast.",
"forecast.sourceCombinedDescription": "IMGW ALARO and Open-Meteo.",
"forecast.sourceFallbackDescription": "Open-Meteo.",
"forecast.error": "Unable to load the model forecast.",
"forecast.emptyTitle": "Forecast unavailable",
"forecast.emptyDescription": "The forecast sources did not return a complete forecast for this location.",
@@ -557,8 +537,7 @@ const translations = {
"Visualisation of the current reading. The IMGW synoptic API does not provide historical data or an hourly forecast.",
"warnings.section": "IMGW notices",
"warnings.title": "Warnings",
"warnings.description":
"Current meteorological and hydrological warnings published by IMGW. Area and validity details come directly from the API.",
"warnings.description": "Current IMGW meteorological and hydrological warnings.",
"warnings.myProvince": "My area",
"warnings.myProvinceDescription":
"IMGW notices for {province} are shown first, based on the location selected in weather.",
@@ -570,8 +549,7 @@ const translations = {
"warnings.emptyTitle": "No active warnings",
"warnings.emptyDescription": "IMGW is not currently publishing any meteorological or hydrological warnings.",
"warnings.globalUnavailableTitle": "Official warnings only for Poland",
"warnings.globalUnavailableDescription":
"Official weather warnings are currently supported only for Poland through IMGW. For this location you can use the Open-Meteo model forecast, but it is not treated as an official alert.",
"warnings.globalUnavailableDescription": "Official warnings are currently available only for Poland.",
"warnings.drought": "Hydrological drought",
"warnings.levelUnknown": "Level not specified",
"warnings.level": "Level {level}",
@@ -592,8 +570,7 @@ const translations = {
"warnings.dashboard.viewAll": "View all",
"hydro.section": "IMGW water monitoring",
"hydro.title": "Hydro",
"hydro.description":
"Latest available water level, temperature and flow readings. Each parameter may have a different update time.",
"hydro.description": "Latest water level, temperature and flow readings.",
"hydro.error": "Unable to load IMGW hydrological stations.",
"hydro.searchLabel": "Search hydrological stations",
"hydro.searchPlaceholder": "Search by station, river or province…",