#pragma once #include enum class StringId : uint8_t { OK = 0, CANCEL, BACK, BACK_ARROW, LOADING, ADD, ON, OFF, NEVER, SPLASH_SD_OK, SPLASH_CONNECTING_WIFI, SPLASH_WIFI_OK_PREFIX, SPLASH_WIFI_FAILED, SPLASH_GETTING_LOCATION, SPLASH_READY, SD_REQUIRED_LINE1, SD_REQUIRED_LINE2, SD_REQUIRED_LINE3, SD_REQUIRED_HINT, CALIB_TITLE, CALIB_PROMPT, CALIB_TOP_LEFT, CALIB_TOP_RIGHT, CALIB_BOTTOM_RIGHT, CALIB_BOTTOM_LEFT, CALIB_SAVED, WIFI_SCANNING, WIFI_NO_NETWORKS, WIFI_SELECT, WIFI_CONNECTED_BANG, WIFI_CONNECTION_FAILED, WIFI_BACK_TO_LIST_MSG, WIFI_PASSWORD_LABEL, WIFI_SPACE, WIFI_CONNECT, WIFI_BACK_TO_LIST_BTN, WIFI_ALREADY_3, WIFI_REMOVE_ONE_FIRST, WIFI_CONNECTING, WIFI_LABEL_PREFIX, MENU_SETTINGS, MENU_SETTINGS_PAGE2, MENU_CALIBRATE, MENU_DISPLAY_INVERTED, MENU_DISPLAY_NORMAL, MENU_MANAGE_WIFI, MENU_LOCATION_PRESETS, MENU_SCREEN_TIMEOUT_PREFIX, MENU_NIGHT_DIMMING, MENU_STATISTICS, MENU_STATS_HISTORY, MENU_LOGBOOK_FILES, MENU_MORE_SETTINGS, MENU_EMERGENCY_ALERT, MENU_PROXIMITY_LED, MENU_LED_HEARTBEAT, MENU_FLIGHT_LOGBOOK, MENU_HIDE_GROUND, MENU_AIRLINE_FILTER, MENU_WATCHLIST, MENU_WATCHLIST_ALERT, MENU_BACKUP, MENU_RESTORE, MENU_BACKUP_SAVED, MENU_BACKUP_FAILED, MENU_RESTORED, MENU_RESTORE_FAILED, MENU_LANGUAGE, MENU_UNITS, AIRLINE_FILTER_TITLE, AIRLINE_FILTER_DESC1, AIRLINE_FILTER_DESC2, AIRLINE_FILTER_ADD, AIRLINE_ADD_TITLE, WATCHLIST_TITLE, WATCHLIST_DESC1, WATCHLIST_DESC2, WATCHLIST_ADD, WATCHLIST_ADD_TITLE, WATCHLIST_EMPTY, WATCHLIST_INFO_TITLE, WATCHLIST_INFO_PARA1, WATCHLIST_INFO_PARA2, LOCATION_TITLE, LOCATION_AUTO, LOCATION_PRESET, LOCATION_PRESET_EMPTY, LOCATION_ADD, LOCATION_LAT_PROMPT, LOCATION_LON_PROMPT, LOCATION_NEAREST_AIRPORT_PREFIX, LOCATION_INFO_TITLE, LOCATION_INFO_PARA1, LOCATION_INFO_PARA2, LOCATION_INFO_PARA3, LOCATION_INFO_PARA4, STATS_TITLE, STATS_TODAY, STATS_ALLTIME, STATS_DAYS, STATS_AVG, STATS_RESET_BTN, STATS_RESET_CONFIRM, STATS_RESET_DONE, STATS_UPTIME_PREFIX, STATS_TOP_ALTITUDE_PREFIX, STATS_HISTORY_TITLE, STATS_HISTORY_EMPTY, STATS_HISTORY_INFO_TITLE, STATS_HISTORY_INFO_PARA1, LOGFILES_TITLE, LOGFILES_EMPTY, LOGFILES_SHOWING_PREFIX, LOGFILES_OF, LOGFILES_DAYS_SUFFIX, LOGFILES_AIRCRAFT_SUFFIX, LOGFILES_INFO_TITLE, LOGFILES_INFO_PARA1, LOGFILES_INFO_PARA2, RADAR_TAP_FOR_DETAILS, RADAR_EMPTY_SKY_PREFIX, DETAIL_MODEL, DETAIL_TYPE, DETAIL_LOADING_DOTS, DETAIL_UNKNOWN, DETAIL_ALT, DETAIL_SPEED, DETAIL_DIST, DETAIL_HDG, DETAIL_SEATS_EST, DETAIL_SEATS_UNKNOWN, DETAIL_TAP_CLOSE, DETAIL_CLIMB, DETAIL_DESCENT, DETAIL_LEVEL, DETAIL_SQUAWK, UNITS_TITLE, UNITS_AUTO, UNITS_METRIC, UNITS_IMPERIAL, LANGUAGE_TITLE, MENU_CATEGORY_REGION, MENU_CATEGORY_WIFI, MENU_CATEGORY_SYSTEM, MENU_CATEGORY_FLIGHT, WIFI_NETWORKS_TITLE, WIFI_ADD_NETWORK, WIFI_EMPTY_SLOT, WIFI_INFO_TITLE, WIFI_INFO_PARA1, WIFI_INFO_PARA2, WIFI_INFO_PARA3, MENU_AIRCRAFT_LIST, AIRCRAFT_LIST_TITLE, AIRCRAFT_LIST_EMPTY, AIRCRAFT_LIST_SORT_PREFIX, AIRCRAFT_LIST_SORT_DISTANCE, AIRCRAFT_LIST_SORT_ALTITUDE, AIRCRAFT_LIST_SORT_CALLSIGN, MENU_ABOUT, ABOUT_DESC1, ABOUT_DESC2, ABOUT_VERSION_PREFIX, MENU_BRIGHTNESS_PREFIX, BRIGHTNESS_TITLE, // Grosse Warn-Ueberlage beim Einschalten des Flugbuchs (Menue > // Flugoptionen > Flugbuch), erklaert die 24h-Sicherheitsabschaltung. MENU_LOGBOOK_WARNING_TITLE, MENU_LOGBOOK_WARNING_BODY, // Preset-Name beim Anlegen (optional), "Presets voll"-Hinweis beim // Antippen der Naechster-Flughafen-Laufschrift, sowie ein zusaetzlicher // Info-Absatz dazu (Menue > Flugoptionen > Standort-Presets > "?"). LOCATION_NAME_PROMPT, LOCATION_NAME_SKIP, LOCATION_PRESETS_FULL, LOCATION_INFO_PARA5, // Neuer, direkt im System-Menue erreichbarer Punkt "Logbuch/WebUI" // (statt nur ueber das versteckte "?" im Logbuch-Dateien-Screen) - // zeigt IP + Erklaerung der Weboberflaeche (Flugbuch // ansehen/herunterladen/loeschen). Die urspruenglich hier mit // enthaltene Screenshot-Verwaltung wurde wieder entfernt, siehe // Entfernung von SCREENSHOT_SAVED_PREFIX/SCREENSHOT_FAILED oben - das // Bildschirm-Auslesen (SPI-Readback) funktioniert auf diesem // CYD-Board hardwareseitig nicht (TFT_MISO nicht angebunden). MENU_LOGBOOK_WEBUI, WEBUI_TITLE, WEBUI_INFO_PARA1, WEBUI_INFO_PARA2, // Kleines Info-Fenster, das beim Antippen des Wetter-Icons im Header // erscheint (siehe main.cpp/showWeatherInfo()) - erklaert, dass das // Wetter zum aktuell aktiven Standort (bzw. aktivem Standort-Preset) // gehoert. WEATHER_INFO_TITLE, WEATHER_INFO_BODY, // Adresssuche (AddressSearchScreen) - Standort per Adresseingabe statt // manueller Koordinaten, per kostenlosem Nominatim-Geokodierungsdienst. // Erreichbar sowohl beim Ersteinrichten (nach der Sprachauswahl) als // auch jederzeit ueber Standort-Presets > "+". LOCATION_ADD_CHOICE_TITLE, LOCATION_ADD_BY_COORDS, LOCATION_ADD_BY_ADDRESS, ADDRESS_SEARCH_TITLE, ADDRESS_SEARCH_SEARCHING, ADDRESS_SEARCH_NO_RESULTS, ADDRESS_SEARCH_ERROR, ADDRESS_SEARCH_CONFIRM_TITLE, ADDRESS_SEARCH_USE_THIS, ADDRESS_SEARCH_TRY_AGAIN, ADDRESS_SEARCH_CANCEL, // Grosser Hinweis-Screen beim allerersten Start (nur einmalig, nach der // Sprachauswahl) - erklaert den Genauigkeitsvorteil eines per Adresse // gesetzten Standorts gegenueber der automatischen IP-Standort- // bestimmung, mit direktem Einstieg in die Adresssuche. Ueberspringbar. FIRST_RUN_LOCATION_TITLE, FIRST_RUN_LOCATION_BODY, FIRST_RUN_LOCATION_SET_BTN, FIRST_RUN_LOCATION_SKIP_BTN, // Zusaetzlicher Info-Absatz im Standort-Presets-Screen (Menue > // Flugoptionen > Standort-Presets > "?") - weist auf den "Per Adresse // suchen"-Weg beim "+"-Button hin (deutlich genauer als die // automatische IP-Standortbestimmung). Ergaenzt die knappe Erwaehnung // in LOCATION_INFO_PARA3 um denselben anschaulichen Vergleich wie im // Ersteinrichtungs-Screen (FIRST_RUN_LOCATION_BODY) und im README. LOCATION_INFO_PARA6, // Format-Hinweis unter dem Titel der Adresssuche (AddressSearchScreen) // - ein Beispiel im lokalen Format (Strasse Hausnr., PLZ Ort), da das // einzelne Freitextfeld sonst ohne jeden Hinweis war und Nutzer nicht // wussten, was/in welcher Reihenfolge sie eingeben sollen. ADDRESS_SEARCH_HINT, // Letzter Screen der Ersteinrichtung (nach der Standort-Adresssuche, // main.cpp) - bestaetigt den Abschluss der Einrichtung, nennt den // SD-Karten-Ordner, in dem alle Daten liegen, und weist darauf hin, // dass sich das WLAN ab dem naechsten Start automatisch verbindet. FIRST_RUN_COMPLETE_TITLE, FIRST_RUN_COMPLETE_BODY1, FIRST_RUN_COMPLETE_BODY2, // Hinweis mit Beispielnamen unter dem Titel der Namens-Tastatur // (location_presets_screen.cpp::runPresetNameKeypad UND // address_search_screen.cpp::runNameKeypad, beide spiegeln sich) - // ohne jeden Hinweis wussten Einsteiger nicht, was fuer ein Name hier // gemeint ist (Preset-Name wie "Zuhause", nicht z.B. ein Ort/Adresse). LOCATION_NAME_HINT, // Legenden-Eintrag auf dem Radar-Screen (radar_screen.cpp::drawLegend) // fuer die blauen Quadrat-Marker der Bodenfahrzeuge - nur sichtbar, // wenn "Bodenfahrzeuge ausblenden" AUS ist (Flugoptionen), da die // Fahrzeuge dann als eigene Legenden-Zeile unter den drei // Hoehen-Farbstufen erscheinen. LEGEND_GROUND_VEHICLE, // Neue "Sicherung & Reset"-Unterseite im System-Menue (fasst die // bisher einzeln im System-Menue stehenden Backup/Restore-Buttons // zusammen und ergaenzt einen dritten Punkt "Einstellungen // zuruecksetzen" - ein kompletter Werksreset fuer Entwickler/Tester, // der den gesamten Flightradar-Ordner von der SD-Karte loescht und // neu startet, siehe settings_backup.cpp::factoryReset()). Titel und // Button-Label teilen sich MENU_BACKUP_RESET, genau wie // MENU_CATEGORY_SYSTEM sowohl fuer den Menue-Button als auch den // Bildschirmtitel der System-Seite verwendet wird. MENU_BACKUP_RESET, MENU_FACTORY_RESET, MENU_FACTORY_RESET_WARNING_BODY, MENU_FACTORY_RESET_DELETING, MENU_FACTORY_RESET_FAILED, // Small, centered hint below the countdown button on the "Setup // complete" screen (first_run_complete_screen.cpp) - makes it visible // that tapping the button skips the 7-second countdown immediately // instead of waiting it out. FIRST_RUN_COMPLETE_TAP_TO_SKIP, // Zeilenpraefix im Radar-Detailpanel (radar_screen.cpp::drawDetailPanel) // fuer die Flugroute (Start- -> Zielflughafen, ICAO-Code), abgefragt // ueber AircraftDetails per Rufzeichen. Faellt wie MODEL/TYPE/SQUAWK auf // DETAIL_UNKNOWN zurueck, wenn kein Rufzeichen bekannt ist oder keine // Route gefunden wurde. DETAIL_ROUTE, // Hinweiszeile ueber dem QR-Code auf dem neuen QR-Unterscreen der // Logbuch/WebUI-Seite (webui_screen.cpp::runQrScreen) - der WEBUI_TITLE- // String wird fuer die Kopfzeile wiederverwendet, kein eigener Titel // noetig. WEBUI_QR_HINT, // Ruhebildschirm bei Inaktivitaets-Timeout (Menue > System > // "Ruhebildschirm", siehe SettingsStore::screensaverEnabled() und // main.cpp). MENU_SCREENSAVER, // OTA-Firmware-Update ueber WLAN (Menue > System > "Nach Update // suchen", siehe menu_screen.cpp::runOtaUpdateScreen() und // ota_update.h/.cpp). MENU_CHECK_UPDATE, OTA_CHECKING, OTA_CHECK_FAILED, OTA_UP_TO_DATE_PREFIX, OTA_UPDATE_AVAILABLE_PREFIX, OTA_CONFIRM_BODY, OTA_INSTALLING_PREFIX, OTA_UPDATE_FAILED, OTA_UPDATE_SUCCESS, // Erfolgs-/Fehler-Ergebnis nach Download+Flash wird jetzt als // dauerhafter Info-Screen mit explizitem Button angezeigt (statt // automatischem Neustart bzw. kurzer, automatisch verschwindender // Meldung) - der Nutzer muss bei einer sicherheitsrelevanten Aktion wie // einem Firmware-Update IMMER aktiv informiert werden und selbst // bestaetigen, siehe menu_screen.cpp::infoScreen(). OTA_SUCCESS_BODY, OTA_RESTART_BUTTON, OTA_FAILED_BODY, // Eigener Bildschirm-Timeout-Screen (Menue > System > Bildschirm- // Timeout, siehe timeout_screen.cpp) mit Schieberegler statt des // vorherigen Durchklickens per wiederholtem Antippen - der // Ruhebildschirm-Umschalter (vorher eigene Zeile im System-Menue, // MENU_SCREENSAVER) zieht mit auf diesen Screen um, da er inhaltlich // eng mit dem Timeout zusammenhaengt und hier genug Platz fuer eine // kurze Erklaerung ist. TIMEOUT_SCREEN_TITLE, TIMEOUT_SCREENSAVER_DESC, COUNT }; namespace I18n { constexpr uint8_t LANG_COUNT = 6; const char* t(StringId id); const char* languageName(uint8_t index); }