localization

This commit is contained in:
2026-08-16 14:33:27 +02:00
parent 9c634b819e
commit fb09b2b7a1
65 changed files with 1621 additions and 1679 deletions

View File

@@ -2,40 +2,40 @@
#include <Arduino.h>
namespace Config {
// Wird bei jedem Versions-Release von Karl aktualisiert (siehe
// CLAUDE.md-Workflow "Standard-Workflow: Push & Release") - erscheint
// im Info-Screen (Menue > System > Info) und muss zum jeweiligen
// Git-Tag passen.
// Updated by Karl on every version release (see
// CLAUDE.md workflow "Standard Workflow: Push & Release") - shown
// in the info screen (Menu > System > Info) and must match the
// corresponding Git tag.
constexpr const char* APP_VERSION = "3.6.3";
// Display-Helligkeit (Menue > System > Helligkeit), in Prozent.
// MIN bewusst nicht 0 - ein komplett dunkles Display koennte sonst wie
// ein Defekt wirken statt wie eine Einstellung.
// Display brightness (Menu > System > Brightness), in percent.
// MIN intentionally not 0 - a completely dark display could otherwise
// look like a defect rather than a setting.
constexpr uint8_t BRIGHTNESS_MIN_PERCENT = 10;
constexpr uint8_t BRIGHTNESS_MAX_PERCENT = 100;
constexpr uint8_t BRIGHTNESS_STEP_PERCENT = 10;
// Bildschirm-Timeout (Menue > System > Bildschirm-Timeout), in Minuten,
// per Schieberegler einstellbar (siehe timeout_screen.cpp) - danach
// folgt "Nie" (kein Timeout) als eigene Endposition. Vorher nur per
// wiederholtem Antippen 0-10 durchklickbar (0 = Nie), was bei z.B. 10
// Minuten zehn einzelne Tipps brauchte.
// Screen timeout (Menu > System > Screen Timeout), in minutes,
// adjustable via slider (see timeout_screen.cpp) - followed by
// "Never" (no timeout) as a separate end position. Previously only
// clickable 0-10 by repeated tapping (0 = Never), which needed e.g. ten
// individual taps for 10 minutes.
constexpr uint8_t SCREEN_TIMEOUT_MIN_MINUTES = 1;
constexpr uint8_t SCREEN_TIMEOUT_MAX_MINUTES = 15;
// Nachtmodus (22-6 Uhr) dimmt relativ zur jeweils eingestellten normalen
// Helligkeit, nicht auf einen festen Absolutwert - sonst waere der
// Dimm-Effekt bei niedrig eingestellter Normalhelligkeit wirkungslos
// oder wuerde das Display nachts sogar heller machen als tagsueber.
// Night mode (10pm-6am) dims relative to the currently set normal
// brightness, not to a fixed absolute value - otherwise the
// dimming effect would be useless at low normal brightness
// or would even make the display brighter at night than during the day.
constexpr uint8_t NIGHT_DIM_REDUCTION_PERCENT = 40;
constexpr const char* IP_GEO_HOST = "ip-api.com";
constexpr const char* IP_GEO_PATH = "/json/?fields=status,lat,lon,offset,countryCode";
// Adresssuche (AddressSearchScreen) - kostenloser, anmeldefreier
// Geokodierungs-Dienst (OpenStreetMap Nominatim). Deren Nutzungsregeln
// verlangen einen aussagekraeftigen User-Agent statt des HTTPClient-
// Standardwerts, siehe https://operations.osmfoundation.org/policies/nominatim/.
// Address search (AddressSearchScreen) - free, no-registration
// geocoding service (OpenStreetMap Nominatim). Their usage policies
// require a meaningful User-Agent instead of the HTTPClient
// default, see https://operations.osmfoundation.org/policies/nominatim/.
constexpr const char* NOMINATIM_HOST = "nominatim.openstreetmap.org";
constexpr const char* NOMINATIM_USER_AGENT = "EiswolfsFlightradarCYD (github.com/Eiswolf-BG/eiswolfs-flightradar-CYD)";
@@ -50,9 +50,9 @@ constexpr float RANGE_STEPS_KM[] = {10.0f, 25.0f, 50.0f, 100.0f};
constexpr uint8_t RANGE_STEP_COUNT = 4;
constexpr uint8_t DEFAULT_RANGE_INDEX = 1;
// Eco-Mode: reduziert die ADS-B-Abfragefrequenz auf dieses Intervall
// (statt FETCH_INTERVAL_MS), wenn der Bildschirm durch Inaktivitaets-
// Timeout abgeschaltet ist (siehe main.cpp).
// Eco mode: reduces the ADS-B fetch frequency to this interval
// (instead of FETCH_INTERVAL_MS), when the screen is turned off by
// inactivity timeout (see main.cpp).
constexpr uint32_t ECO_FETCH_INTERVAL_MS = 60000;
constexpr uint8_t ALT_FILTER_COUNT = 3;
@@ -63,11 +63,11 @@ constexpr float RANGE_STEPS_KM[] = {10.0f, 25.0f, 50.0f, 100.0f};
constexpr uint32_t FETCH_INTERVAL_MS = 8000;
constexpr uint32_t HTTP_TIMEOUT_MS = 6000;
// Wetter-Icon im Header (siehe weather.cpp) - deutlich seltener
// abgefragt als die ADS-B-Daten, das Wetter aendert sich nicht
// minuetlich und die kostenlose Open-Meteo-API soll nicht unnoetig oft
// belastet werden.
constexpr uint32_t WEATHER_FETCH_INTERVAL_MS = 600000; // 10 Minuten
// Weather icon in the header (see weather.cpp) - queried much less
// frequently than ADS-B data, weather does not change
// every minute and the free Open-Meteo API should not be needlessly
// stressed.
constexpr uint32_t WEATHER_FETCH_INTERVAL_MS = 600000; // 10 minutes
constexpr float DEFAULT_PROXIMITY_ALERT_KM = 8.0f;
@@ -97,8 +97,8 @@ constexpr float RANGE_STEPS_KM[] = {10.0f, 25.0f, 50.0f, 100.0f};
constexpr uint8_t TOUCH_MISO_PIN = 39;
constexpr uint8_t TOUCH_IRQ_PIN = 36;
// Display-Rotation: 0 = normal (USB-Anschluss unten), 2 = 180 Grad
// gedreht (USB oben) - fuer Montage mit Ladebuchse oben.
// Display rotation: 0 = normal (USB connector at bottom), 2 = 180 degrees
// rotated (USB at top) - for mounting with charging port on top.
constexpr uint8_t DISPLAY_ROTATION = 2;
constexpr int16_t SCREEN_WIDTH = 240;