#pragma once

#include "Strings.h"

namespace meshtastic
{
namespace l10n
{

// English string table
// The strings are stored as const arrays to save RAM on constrained devices.
// Each locale file defines the same set of strings in its own language.

static const char STR_BACK_EN[] = "Back";
static const char STR_OK_EN[] = "OK";
static const char STR_GOT_IT_EN[] = "Got it!";
static const char STR_WELCOME_TO_MESHTASTIC_EN[] = "Welcome to Meshtastic!";
static const char STR_SWIPE_TO_NAVIGATE_EN[] = "Swipe to navigate.";
static const char STR_CLICK_TO_NAVIGATE_EN[] = "Click to navigate.";
static const char STR_USE_SELECT_BUTTON_EN[] = "Use the Select button.";
static const char STR_DEVICE_ROLE_EN[] = "Device Role";
static const char STR_RADIO_PRESET_EN[] = "Radio Preset";
static const char STR_FREQUENCY_SLOT_EN[] = "Frequency Slot";
static const char STR_LORA_REGION_EN[] = "LoRa Region";
static const char STR_CLIENT_EN[] = "Client";
static const char STR_CLIENT_MUTE_EN[] = "Client Mute";
static const char STR_LOST_AND_FOUND_EN[] = "Lost and Found";
static const char STR_TRACKER_EN[] = "Tracker";
static const char STR_12HOUR_EN[] = "12-hour";
static const char STR_24HOUR_EN[] = "24-hour";
static const char STR_CLOCK_ACTION_EN[] = "Clock Action";
static const char STR_CLOCK_FACE_EN[] = "Clock Face";
static const char STR_TIME_FORMAT_EN[] = "Time Format";
static const char STR_TIMEZONE_EN[] = "Timezone";
static const char STR_MESSAGE_ACTION_EN[] = "Message Action";
static const char STR_REPLY_EN[] = "Reply";
static const char STR_VIEW_CHATS_EN[] = "View Chats";
static const char STR_UNMUTE_CHANNEL_EN[] = "Unmute Channel";
static const char STR_MUTE_CHANNEL_EN[] = "Mute Channel";
static const char STR_DELETE_EN[] = "Delete";
static const char STR_READ_ALOUD_EN[] = "Read Aloud";
static const char STR_BRIGHTNESS_EN[] = "Brightness";
static const char STR_FRAME_VISIBILITY_EN[] = "Frame Visibility";
static const char STR_DISPLAY_UNITS_EN[] = "Display Units";
static const char STR_MESSAGE_BUBBLES_EN[] = "Message Bubbles";
static const char STR_THEME_EN[] = "Theme";
static const char STR_REBOOT_EN[] = "Reboot";
static const char STR_SHUTDOWN_EN[] = "Shutdown";
static const char STR_SWITCH_TO_MUI_EN[] = "Switch to MUI";
static const char STR_DISPLAY_OPTIONS_EN[] = "Display Options";
static const char STR_LANGUAGE_EN[] = "Language";
static const char STR_CHINESE_EN[] = "Chinese";
static const char STR_ENGLISH_EN[] = "English";
static const char STR_NO_GPS_EN[] = "No GPS";
static const char STR_GPS_OFF_EN[] = "GPS off";
static const char STR_GPS_NOT_PRESENT_EN[] = "GPS not present";
static const char STR_GPS_IS_DISABLED_EN[] = "GPS is disabled";
static const char STR_NODE_EN[] = "Node";
static const char STR_HOP_EN[] = "Hop:";
static const char STR_USB_EN[] = "USB";
static const char STR_BT_OFF_EN[] = "BT off";
static const char STR_WIFI_EN[] = "WiFi";
static const char STR_WIFI_NOT_CONNECTED_EN[] = "WiFi: Not Connected";
static const char STR_WIFI_CONNECTED_EN[] = "WiFi: Connected";
static const char STR_SSID_EN[] = "SSID:";
static const char STR_LORA_INFO_EN[] = "LoRa Info";
static const char STR_LORA_EN[] = "LoRa";
static const char STR_ROLE_EN[] = "Role:";
static const char STR_FREQ_EN[] = "Freq:";
static const char STR_CHUTIL_EN[] = "ChUtil";
static const char STR_SYSTEM_EN[] = "System";
static const char STR_HEAP_EN[] = "Heap:";
static const char STR_PSRAM_EN[] = "PSRAM:";
static const char STR_FLASH_EN[] = "Flash:";
static const char STR_SD_EN[] = "SD:";
static const char STR_VER_EN[] = "Ver:";
static const char STR_UP_EN[] = "Up:";
static const char STR_CLIENT_APP_EN[] = "Client";
static const char STR_NO_CONNECTED_EN[] = "No Connected";
static const char STR_LOCKED_EN[] = "LOCKED";
static const char STR_CONNECT_TO_UNLOCK_EN[] = "Connect to unlock";
static const char STR_BATTERY_EN[] = "Battery";
static const char STR_RESUMING_EN[] = "Resuming...";
static const char STR_LAST_HEARD_EN[] = "Last Heard";
static const char STR_HOPS_SIG_EN[] = "Hops/Sig";
static const char STR_HOPS_SIGNAL_EN[] = "Hops/Signal";
static const char STR_NODES_EN[] = "Nodes";
static const char STR_DISTANCE_EN[] = "Distance";
static const char STR_BEARINGS_EN[] = "Bearings";
static const char STR_CREATING_SSL_EN[] = "Creating SSL certificate";
static const char STR_PLEASE_WAIT_EN[] = "Please wait . . .";
static const char STR_CRITICAL_FAULT_EN[] = "Critical fault";
static const char STR_FOR_HELP_VISIT_EN[] = "For help, please visit";
static const char STR_UPDATING_EN[] = "Updating";
static const char STR_PLEASE_BE_PATIENT_EN[] = "Please be patient and do not power off.";
static const char STR_REBOOT_IN_PROGRESS_EN[] = "Reboot in progress...";
static const char STR_POWER_MENU_EN[] = "Power";
static const char STR_SYSTEM_MENU_EN[] = "System";
static const char STR_SCREEN_OPTIONS_EN[] = "Screen";
static const char STR_WIFI_TOGGLE_EN[] = "WiFi";
static const char STR_BLUETOOTH_TOGGLE_EN[] = "Bluetooth";
static const char STR_NODE_DB_RESET_EN[] = "Reset NodeDB";
static const char STR_MANAGE_NODE_EN[] = "Manage Node";
static const char STR_REMOVE_FAVORITE_EN[] = "Remove Favorite";
static const char STR_ADD_FAVORITE_EN[] = "Add Favorite";
static const char STR_TEST_MENU_EN[] = "Test";
static const char STR_TRACE_ROUTE_EN[] = "Trace Route";
static const char STR_THROTTLE_MSG_EN[] = "Message Throttled";
static const char STR_MSG_VIEW_MODE_EN[] = "View Mode";
static const char STR_DELETE_MESSAGES_EN[] = "Delete Messages";
static const char STR_NODE_NAME_LENGTH_EN[] = "Name Length";
static const char STR_GPS_MENU_EN[] = "GPS";
static const char STR_GPS_TOGGLE_EN[] = "GPS Toggle";
static const char STR_GPS_FORMAT_EN[] = "GPS Format";
static const char STR_GPS_SMART_POS_EN[] = "Smart Position";
static const char STR_GPS_UPDATE_INTERVAL_EN[] = "Update Interval";
static const char STR_GPS_POS_BCAST_EN[] = "Position Broadcast";
static const char STR_COMPASS_NORTH_EN[] = "Compass North";
static const char STR_BUZZER_MODE_EN[] = "Buzzer";
static const char STR_HAM_MODE_EN[] = "Ham Mode";
static const char STR_LICENSED_NORMAL_EN[] = "Normal Mode";
static const char STR_KEY_VERIFY_EN[] = "Verify Key";
static const char STR_REGION_UNSET_EN[] = "Select a Region";
static const char STR_SELECT_REGION_EN[] = "Please select your LoRa region:";
static const char STR_REBOOTING_EN[] = "Rebooting...";

inline const char *getStringEN(StringKey key)
{
    switch (key) {
    case StringKey::Back:
        return STR_BACK_EN;
    case StringKey::OK:
        return STR_OK_EN;
    case StringKey::GotIt:
        return STR_GOT_IT_EN;
    case StringKey::WelcomeToMeshtastic:
        return STR_WELCOME_TO_MESHTASTIC_EN;
    case StringKey::SwipeToNavigate:
        return STR_SWIPE_TO_NAVIGATE_EN;
    case StringKey::ClickToNavigate:
        return STR_CLICK_TO_NAVIGATE_EN;
    case StringKey::UseSelectButton:
        return STR_USE_SELECT_BUTTON_EN;
    case StringKey::DeviceRole:
        return STR_DEVICE_ROLE_EN;
    case StringKey::RadioPreset:
        return STR_RADIO_PRESET_EN;
    case StringKey::FrequencySlot:
        return STR_FREQUENCY_SLOT_EN;
    case StringKey::LoRaRegion:
        return STR_LORA_REGION_EN;
    case StringKey::Client:
        return STR_CLIENT_EN;
    case StringKey::ClientMute:
        return STR_CLIENT_MUTE_EN;
    case StringKey::LostAndFound:
        return STR_LOST_AND_FOUND_EN;
    case StringKey::Tracker:
        return STR_TRACKER_EN;
    case StringKey::Hour12:
        return STR_12HOUR_EN;
    case StringKey::Hour24:
        return STR_24HOUR_EN;
    case StringKey::ClockAction:
        return STR_CLOCK_ACTION_EN;
    case StringKey::ClockFace:
        return STR_CLOCK_FACE_EN;
    case StringKey::TimeFormat:
        return STR_TIME_FORMAT_EN;
    case StringKey::Timezone:
        return STR_TIMEZONE_EN;
    case StringKey::MessageAction:
        return STR_MESSAGE_ACTION_EN;
    case StringKey::Reply:
        return STR_REPLY_EN;
    case StringKey::ViewChats:
        return STR_VIEW_CHATS_EN;
    case StringKey::UnmuteChannel:
        return STR_UNMUTE_CHANNEL_EN;
    case StringKey::MuteChannel:
        return STR_MUTE_CHANNEL_EN;
    case StringKey::Delete:
        return STR_DELETE_EN;
    case StringKey::ReadAloud:
        return STR_READ_ALOUD_EN;
    case StringKey::Brightness:
        return STR_BRIGHTNESS_EN;
    case StringKey::FrameVisibility:
        return STR_FRAME_VISIBILITY_EN;
    case StringKey::DisplayUnits:
        return STR_DISPLAY_UNITS_EN;
    case StringKey::MessageBubbles:
        return STR_MESSAGE_BUBBLES_EN;
    case StringKey::Theme:
        return STR_THEME_EN;
    case StringKey::Reboot:
        return STR_REBOOT_EN;
    case StringKey::Shutdown:
        return STR_SHUTDOWN_EN;
    case StringKey::SwitchToMUI:
        return STR_SWITCH_TO_MUI_EN;
    case StringKey::DisplayOptions:
        return STR_DISPLAY_OPTIONS_EN;
    case StringKey::Language:
        return STR_LANGUAGE_EN;
    case StringKey::Chinese:
        return STR_CHINESE_EN;
    case StringKey::English:
        return STR_ENGLISH_EN;
    case StringKey::NoGPS:
        return STR_NO_GPS_EN;
    case StringKey::GPSoff:
        return STR_GPS_OFF_EN;
    case StringKey::GPSnotPresent:
        return STR_GPS_NOT_PRESENT_EN;
    case StringKey::GPSisDisabled:
        return STR_GPS_IS_DISABLED_EN;
    case StringKey::Node:
        return STR_NODE_EN;
    case StringKey::Hop:
        return STR_HOP_EN;
    case StringKey::USB:
        return STR_USB_EN;
    case StringKey::BT_off:
        return STR_BT_OFF_EN;
    case StringKey::WiFi:
        return STR_WIFI_EN;
    case StringKey::WiFiNotConnected:
        return STR_WIFI_NOT_CONNECTED_EN;
    case StringKey::WiFiConnected:
        return STR_WIFI_CONNECTED_EN;
    case StringKey::SSID:
        return STR_SSID_EN;
    case StringKey::LoRaInfo:
        return STR_LORA_INFO_EN;
    case StringKey::LoRa:
        return STR_LORA_EN;
    case StringKey::Role:
        return STR_ROLE_EN;
    case StringKey::Freq:
        return STR_FREQ_EN;
    case StringKey::ChUtil:
        return STR_CHUTIL_EN;
    case StringKey::System:
        return STR_SYSTEM_EN;
    case StringKey::Heap:
        return STR_HEAP_EN;
    case StringKey::PSRAM:
        return STR_PSRAM_EN;
    case StringKey::Flash:
        return STR_FLASH_EN;
    case StringKey::SD:
        return STR_SD_EN;
    case StringKey::Ver:
        return STR_VER_EN;
    case StringKey::Up:
        return STR_UP_EN;
    case StringKey::ClientApp:
        return STR_CLIENT_APP_EN;
    case StringKey::NoConnected:
        return STR_NO_CONNECTED_EN;
    case StringKey::LOCKED:
        return STR_LOCKED_EN;
    case StringKey::ConnectToUnlock:
        return STR_CONNECT_TO_UNLOCK_EN;
    case StringKey::Battery:
        return STR_BATTERY_EN;
    case StringKey::Resuming:
        return STR_RESUMING_EN;
    case StringKey::LastHeard:
        return STR_LAST_HEARD_EN;
    case StringKey::HopsSig:
        return STR_HOPS_SIG_EN;
    case StringKey::HopsSignal:
        return STR_HOPS_SIGNAL_EN;
    case StringKey::Nodes:
        return STR_NODES_EN;
    case StringKey::Distance:
        return STR_DISTANCE_EN;
    case StringKey::Bearings:
        return STR_BEARINGS_EN;
    case StringKey::CreatingSSLCert:
        return STR_CREATING_SSL_EN;
    case StringKey::PleaseWait:
        return STR_PLEASE_WAIT_EN;
    case StringKey::CriticalFault:
        return STR_CRITICAL_FAULT_EN;
    case StringKey::ForHelpVisit:
        return STR_FOR_HELP_VISIT_EN;
    case StringKey::Updating:
        return STR_UPDATING_EN;
    case StringKey::PleaseBePatient:
        return STR_PLEASE_BE_PATIENT_EN;
    case StringKey::RebootInProgress:
        return STR_REBOOT_IN_PROGRESS_EN;
    case StringKey::PowerMenu:
        return STR_POWER_MENU_EN;
    case StringKey::SystemMenu:
        return STR_SYSTEM_MENU_EN;
    case StringKey::ScreenOptions:
        return STR_SCREEN_OPTIONS_EN;
    case StringKey::WifiToggle:
        return STR_WIFI_TOGGLE_EN;
    case StringKey::BluetoothToggle:
        return STR_BLUETOOTH_TOGGLE_EN;
    case StringKey::NodeDbReset:
        return STR_NODE_DB_RESET_EN;
    case StringKey::ManageNode:
        return STR_MANAGE_NODE_EN;
    case StringKey::RemoveFavorite:
        return STR_REMOVE_FAVORITE_EN;
    case StringKey::AddFavorite:
        return STR_ADD_FAVORITE_EN;
    case StringKey::TestMenu:
        return STR_TEST_MENU_EN;
    case StringKey::TraceRoute:
        return STR_TRACE_ROUTE_EN;
    case StringKey::ThrottleMessage:
        return STR_THROTTLE_MSG_EN;
    case StringKey::MessageViewMode:
        return STR_MSG_VIEW_MODE_EN;
    case StringKey::DeleteMessages:
        return STR_DELETE_MESSAGES_EN;
    case StringKey::NodeNameLength:
        return STR_NODE_NAME_LENGTH_EN;
    case StringKey::GPSMenu:
        return STR_GPS_MENU_EN;
    case StringKey::GPSToggle:
        return STR_GPS_TOGGLE_EN;
    case StringKey::GPSFormat:
        return STR_GPS_FORMAT_EN;
    case StringKey::GPSSmartPosition:
        return STR_GPS_SMART_POS_EN;
    case StringKey::GPSUpdateInterval:
        return STR_GPS_UPDATE_INTERVAL_EN;
    case StringKey::GPSPositionBroadcast:
        return STR_GPS_POS_BCAST_EN;
    case StringKey::CompassNorth:
        return STR_COMPASS_NORTH_EN;
    case StringKey::BuzzerMode:
        return STR_BUZZER_MODE_EN;
    case StringKey::HamModeConfirm:
        return STR_HAM_MODE_EN;
    case StringKey::LicensedToNormal:
        return STR_LICENSED_NORMAL_EN;
    case StringKey::KeyVerification:
        return STR_KEY_VERIFY_EN;
    case StringKey::RegionUnset:
        return STR_REGION_UNSET_EN;
    case StringKey::SelectRegionMessage:
        return STR_SELECT_REGION_EN;
    case StringKey::Rebooting:
        return STR_REBOOTING_EN;
    default:
        return "?";
    }
}

} // namespace l10n
} // namespace meshtastic
