Implements Lyra theme for some more Crosspoint screens:       - A bit of refactoring for list scrolling logic --- While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it helps set the right context for reviewers. Did you use AI tools to help write this code? _**NO**_ --------- Co-authored-by: Dave Allie <dave@daveallie.com>
428 lines
9.0 KiB
C++
428 lines
9.0 KiB
C++
#pragma once
|
|
#include <cstdint>
|
|
|
|
// THIS FILE IS AUTO-GENERATED BY gen_i18n.py. DO NOT EDIT.
|
|
|
|
// Forward declaration for string arrays
|
|
namespace i18n_strings {
|
|
extern const char* const STRINGS_EN[];
|
|
extern const char* const STRINGS_ES[];
|
|
extern const char* const STRINGS_FR[];
|
|
extern const char* const STRINGS_DE[];
|
|
extern const char* const STRINGS_CZ[];
|
|
extern const char* const STRINGS_PO[];
|
|
extern const char* const STRINGS_RU[];
|
|
extern const char* const STRINGS_SV[];
|
|
} // namespace i18n_strings
|
|
|
|
// Language enum
|
|
enum class Language : uint8_t {
|
|
ENGLISH = 0,
|
|
SPANISH = 1,
|
|
FRENCH = 2,
|
|
GERMAN = 3,
|
|
CZECH = 4,
|
|
PORTUGUESE = 5,
|
|
RUSSIAN = 6,
|
|
SWEDISH = 7,
|
|
_COUNT
|
|
};
|
|
|
|
// Language display names (defined in I18nStrings.cpp)
|
|
extern const char* const LANGUAGE_NAMES[];
|
|
|
|
// Character sets for each language (defined in I18nStrings.cpp)
|
|
extern const char* const CHARACTER_SETS[];
|
|
|
|
// String IDs
|
|
enum class StrId : uint16_t {
|
|
STR_CROSSPOINT,
|
|
STR_BOOTING,
|
|
STR_SLEEPING,
|
|
STR_ENTERING_SLEEP,
|
|
STR_BROWSE_FILES,
|
|
STR_FILE_TRANSFER,
|
|
STR_SETTINGS_TITLE,
|
|
STR_CALIBRE_LIBRARY,
|
|
STR_CONTINUE_READING,
|
|
STR_NO_OPEN_BOOK,
|
|
STR_START_READING,
|
|
STR_BOOKS,
|
|
STR_NO_BOOKS_FOUND,
|
|
STR_SELECT_CHAPTER,
|
|
STR_NO_CHAPTERS,
|
|
STR_END_OF_BOOK,
|
|
STR_EMPTY_CHAPTER,
|
|
STR_INDEXING,
|
|
STR_MEMORY_ERROR,
|
|
STR_PAGE_LOAD_ERROR,
|
|
STR_EMPTY_FILE,
|
|
STR_OUT_OF_BOUNDS,
|
|
STR_LOADING,
|
|
STR_LOAD_XTC_FAILED,
|
|
STR_LOAD_TXT_FAILED,
|
|
STR_LOAD_EPUB_FAILED,
|
|
STR_SD_CARD_ERROR,
|
|
STR_WIFI_NETWORKS,
|
|
STR_NO_NETWORKS,
|
|
STR_NETWORKS_FOUND,
|
|
STR_SCANNING,
|
|
STR_CONNECTING,
|
|
STR_CONNECTED,
|
|
STR_CONNECTION_FAILED,
|
|
STR_CONNECTION_TIMEOUT,
|
|
STR_FORGET_NETWORK,
|
|
STR_SAVE_PASSWORD,
|
|
STR_REMOVE_PASSWORD,
|
|
STR_PRESS_OK_SCAN,
|
|
STR_PRESS_ANY_CONTINUE,
|
|
STR_SELECT_HINT,
|
|
STR_HOW_CONNECT,
|
|
STR_JOIN_NETWORK,
|
|
STR_CREATE_HOTSPOT,
|
|
STR_JOIN_DESC,
|
|
STR_HOTSPOT_DESC,
|
|
STR_STARTING_HOTSPOT,
|
|
STR_HOTSPOT_MODE,
|
|
STR_CONNECT_WIFI_HINT,
|
|
STR_OPEN_URL_HINT,
|
|
STR_OR_HTTP_PREFIX,
|
|
STR_SCAN_QR_HINT,
|
|
STR_CALIBRE_WIRELESS,
|
|
STR_CALIBRE_WEB_URL,
|
|
STR_CONNECT_WIRELESS,
|
|
STR_NETWORK_LEGEND,
|
|
STR_MAC_ADDRESS,
|
|
STR_CHECKING_WIFI,
|
|
STR_ENTER_WIFI_PASSWORD,
|
|
STR_ENTER_TEXT,
|
|
STR_TO_PREFIX,
|
|
STR_CALIBRE_DISCOVERING,
|
|
STR_CALIBRE_CONNECTING_TO,
|
|
STR_CALIBRE_CONNECTED_TO,
|
|
STR_CALIBRE_WAITING_COMMANDS,
|
|
STR_CONNECTION_FAILED_RETRYING,
|
|
STR_CALIBRE_DISCONNECTED,
|
|
STR_CALIBRE_WAITING_TRANSFER,
|
|
STR_CALIBRE_TRANSFER_HINT,
|
|
STR_CALIBRE_RECEIVING,
|
|
STR_CALIBRE_RECEIVED,
|
|
STR_CALIBRE_WAITING_MORE,
|
|
STR_CALIBRE_FAILED_CREATE_FILE,
|
|
STR_CALIBRE_PASSWORD_REQUIRED,
|
|
STR_CALIBRE_TRANSFER_INTERRUPTED,
|
|
STR_CALIBRE_INSTRUCTION_1,
|
|
STR_CALIBRE_INSTRUCTION_2,
|
|
STR_CALIBRE_INSTRUCTION_3,
|
|
STR_CALIBRE_INSTRUCTION_4,
|
|
STR_CAT_DISPLAY,
|
|
STR_CAT_READER,
|
|
STR_CAT_CONTROLS,
|
|
STR_CAT_SYSTEM,
|
|
STR_CAT_CLOCK,
|
|
STR_SLEEP_SCREEN,
|
|
STR_SLEEP_COVER_MODE,
|
|
STR_STATUS_BAR,
|
|
STR_HIDE_BATTERY,
|
|
STR_EXTRA_SPACING,
|
|
STR_TEXT_AA,
|
|
STR_SHORT_PWR_BTN,
|
|
STR_ORIENTATION,
|
|
STR_FRONT_BTN_LAYOUT,
|
|
STR_SIDE_BTN_LAYOUT,
|
|
STR_LONG_PRESS_SKIP,
|
|
STR_FONT_FAMILY,
|
|
STR_EXT_READER_FONT,
|
|
STR_EXT_CHINESE_FONT,
|
|
STR_EXT_UI_FONT,
|
|
STR_FONT_SIZE,
|
|
STR_LINE_SPACING,
|
|
STR_ASCII_LETTER_SPACING,
|
|
STR_ASCII_DIGIT_SPACING,
|
|
STR_CJK_SPACING,
|
|
STR_COLOR_MODE,
|
|
STR_SCREEN_MARGIN,
|
|
STR_PARA_ALIGNMENT,
|
|
STR_HYPHENATION,
|
|
STR_TIME_TO_SLEEP,
|
|
STR_REFRESH_FREQ,
|
|
STR_CALIBRE_SETTINGS,
|
|
STR_KOREADER_SYNC,
|
|
STR_CHECK_UPDATES,
|
|
STR_LANGUAGE,
|
|
STR_SELECT_WALLPAPER,
|
|
STR_CLEAR_READING_CACHE,
|
|
STR_CALIBRE,
|
|
STR_USERNAME,
|
|
STR_PASSWORD,
|
|
STR_SYNC_SERVER_URL,
|
|
STR_DOCUMENT_MATCHING,
|
|
STR_AUTHENTICATE,
|
|
STR_KOREADER_USERNAME,
|
|
STR_KOREADER_PASSWORD,
|
|
STR_FILENAME,
|
|
STR_BINARY,
|
|
STR_SET_CREDENTIALS_FIRST,
|
|
STR_WIFI_CONN_FAILED,
|
|
STR_AUTHENTICATING,
|
|
STR_AUTH_SUCCESS,
|
|
STR_KOREADER_AUTH,
|
|
STR_SYNC_READY,
|
|
STR_AUTH_FAILED,
|
|
STR_DONE,
|
|
STR_CLEAR_CACHE_WARNING_1,
|
|
STR_CLEAR_CACHE_WARNING_2,
|
|
STR_CLEAR_CACHE_WARNING_3,
|
|
STR_CLEAR_CACHE_WARNING_4,
|
|
STR_CLEARING_CACHE,
|
|
STR_CACHE_CLEARED,
|
|
STR_ITEMS_REMOVED,
|
|
STR_FAILED_LOWER,
|
|
STR_CLEAR_CACHE_FAILED,
|
|
STR_CHECK_SERIAL_OUTPUT,
|
|
STR_DARK,
|
|
STR_LIGHT,
|
|
STR_CUSTOM,
|
|
STR_COVER,
|
|
STR_NONE_OPT,
|
|
STR_FIT,
|
|
STR_CROP,
|
|
STR_NO_PROGRESS,
|
|
STR_FULL_OPT,
|
|
STR_NEVER,
|
|
STR_IN_READER,
|
|
STR_ALWAYS,
|
|
STR_IGNORE,
|
|
STR_SLEEP,
|
|
STR_PAGE_TURN,
|
|
STR_PORTRAIT,
|
|
STR_LANDSCAPE_CW,
|
|
STR_INVERTED,
|
|
STR_LANDSCAPE_CCW,
|
|
STR_FRONT_LAYOUT_BCLR,
|
|
STR_FRONT_LAYOUT_LRBC,
|
|
STR_FRONT_LAYOUT_LBCR,
|
|
STR_PREV_NEXT,
|
|
STR_NEXT_PREV,
|
|
STR_BOOKERLY,
|
|
STR_NOTO_SANS,
|
|
STR_OPEN_DYSLEXIC,
|
|
STR_SMALL,
|
|
STR_MEDIUM,
|
|
STR_LARGE,
|
|
STR_X_LARGE,
|
|
STR_TIGHT,
|
|
STR_NORMAL,
|
|
STR_WIDE,
|
|
STR_JUSTIFY,
|
|
STR_ALIGN_LEFT,
|
|
STR_CENTER,
|
|
STR_ALIGN_RIGHT,
|
|
STR_MIN_1,
|
|
STR_MIN_5,
|
|
STR_MIN_10,
|
|
STR_MIN_15,
|
|
STR_MIN_30,
|
|
STR_PAGES_1,
|
|
STR_PAGES_5,
|
|
STR_PAGES_10,
|
|
STR_PAGES_15,
|
|
STR_PAGES_30,
|
|
STR_UPDATE,
|
|
STR_CHECKING_UPDATE,
|
|
STR_NEW_UPDATE,
|
|
STR_CURRENT_VERSION,
|
|
STR_NEW_VERSION,
|
|
STR_UPDATING,
|
|
STR_NO_UPDATE,
|
|
STR_UPDATE_FAILED,
|
|
STR_UPDATE_COMPLETE,
|
|
STR_POWER_ON_HINT,
|
|
STR_EXTERNAL_FONT,
|
|
STR_BUILTIN_DISABLED,
|
|
STR_NO_ENTRIES,
|
|
STR_DOWNLOADING,
|
|
STR_DOWNLOAD_FAILED,
|
|
STR_ERROR_MSG,
|
|
STR_UNNAMED,
|
|
STR_NO_SERVER_URL,
|
|
STR_FETCH_FEED_FAILED,
|
|
STR_PARSE_FEED_FAILED,
|
|
STR_NETWORK_PREFIX,
|
|
STR_IP_ADDRESS_PREFIX,
|
|
STR_SCAN_QR_WIFI_HINT,
|
|
STR_ERROR_GENERAL_FAILURE,
|
|
STR_ERROR_NETWORK_NOT_FOUND,
|
|
STR_ERROR_CONNECTION_TIMEOUT,
|
|
STR_SD_CARD,
|
|
STR_BACK,
|
|
STR_EXIT,
|
|
STR_HOME,
|
|
STR_SAVE,
|
|
STR_SELECT,
|
|
STR_TOGGLE,
|
|
STR_CONFIRM,
|
|
STR_CANCEL,
|
|
STR_CONNECT,
|
|
STR_OPEN,
|
|
STR_DOWNLOAD,
|
|
STR_RETRY,
|
|
STR_YES,
|
|
STR_NO,
|
|
STR_STATE_ON,
|
|
STR_STATE_OFF,
|
|
STR_SET,
|
|
STR_NOT_SET,
|
|
STR_DIR_LEFT,
|
|
STR_DIR_RIGHT,
|
|
STR_DIR_UP,
|
|
STR_DIR_DOWN,
|
|
STR_CAPS_ON,
|
|
STR_CAPS_OFF,
|
|
STR_OK_BUTTON,
|
|
STR_ON_MARKER,
|
|
STR_SLEEP_COVER_FILTER,
|
|
STR_FILTER_CONTRAST,
|
|
STR_STATUS_BAR_FULL_PERCENT,
|
|
STR_STATUS_BAR_FULL_BOOK,
|
|
STR_STATUS_BAR_BOOK_ONLY,
|
|
STR_STATUS_BAR_FULL_CHAPTER,
|
|
STR_UI_THEME,
|
|
STR_THEME_CLASSIC,
|
|
STR_THEME_LYRA,
|
|
STR_THEME_LYRA_EXTENDED,
|
|
STR_SUNLIGHT_FADING_FIX,
|
|
STR_REMAP_FRONT_BUTTONS,
|
|
STR_OPDS_BROWSER,
|
|
STR_COVER_CUSTOM,
|
|
STR_RECENTS,
|
|
STR_MENU_RECENT_BOOKS,
|
|
STR_NO_RECENT_BOOKS,
|
|
STR_CALIBRE_DESC,
|
|
STR_FORGET_AND_REMOVE,
|
|
STR_FORGET_BUTTON,
|
|
STR_CALIBRE_STARTING,
|
|
STR_CALIBRE_SETUP,
|
|
STR_CALIBRE_STATUS,
|
|
STR_CLEAR_BUTTON,
|
|
STR_DEFAULT_VALUE,
|
|
STR_REMAP_PROMPT,
|
|
STR_UNASSIGNED,
|
|
STR_ALREADY_ASSIGNED,
|
|
STR_REMAP_RESET_HINT,
|
|
STR_REMAP_CANCEL_HINT,
|
|
STR_HW_BACK_LABEL,
|
|
STR_HW_CONFIRM_LABEL,
|
|
STR_HW_LEFT_LABEL,
|
|
STR_HW_RIGHT_LABEL,
|
|
STR_GO_TO_PERCENT,
|
|
STR_GO_HOME_BUTTON,
|
|
STR_SYNC_PROGRESS,
|
|
STR_DELETE_CACHE,
|
|
STR_CHAPTER_PREFIX,
|
|
STR_PAGES_SEPARATOR,
|
|
STR_BOOK_PREFIX,
|
|
STR_KBD_SHIFT,
|
|
STR_KBD_SHIFT_CAPS,
|
|
STR_KBD_LOCK,
|
|
STR_CALIBRE_URL_HINT,
|
|
STR_PERCENT_STEP_HINT,
|
|
STR_SYNCING_TIME,
|
|
STR_CALC_HASH,
|
|
STR_HASH_FAILED,
|
|
STR_FETCH_PROGRESS,
|
|
STR_UPLOAD_PROGRESS,
|
|
STR_NO_CREDENTIALS_MSG,
|
|
STR_KOREADER_SETUP_HINT,
|
|
STR_PROGRESS_FOUND,
|
|
STR_REMOTE_LABEL,
|
|
STR_LOCAL_LABEL,
|
|
STR_PAGE_OVERALL_FORMAT,
|
|
STR_PAGE_TOTAL_OVERALL_FORMAT,
|
|
STR_DEVICE_FROM_FORMAT,
|
|
STR_APPLY_REMOTE,
|
|
STR_UPLOAD_LOCAL,
|
|
STR_NO_REMOTE_MSG,
|
|
STR_UPLOAD_PROMPT,
|
|
STR_UPLOAD_SUCCESS,
|
|
STR_SYNC_FAILED_MSG,
|
|
STR_SECTION_PREFIX,
|
|
STR_UPLOAD,
|
|
STR_BOOK_S_STYLE,
|
|
STR_EMBEDDED_STYLE,
|
|
STR_OPDS_SERVER_URL,
|
|
STR_LETTERBOX_FILL,
|
|
STR_DITHERED,
|
|
STR_SOLID,
|
|
STR_ADD_BOOKMARK,
|
|
STR_REMOVE_BOOKMARK,
|
|
STR_LOOKUP_WORD,
|
|
STR_LOOKUP_HISTORY,
|
|
STR_GO_TO_BOOKMARK,
|
|
STR_CLOSE_BOOK,
|
|
STR_DELETE_DICT_CACHE,
|
|
STR_DEFAULT_OPTION,
|
|
STR_BOOKMARK_ADDED,
|
|
STR_BOOKMARK_REMOVED,
|
|
STR_DICT_CACHE_DELETED,
|
|
STR_NO_CACHE_TO_DELETE,
|
|
STR_TABLE_OF_CONTENTS,
|
|
STR_TOGGLE_ORIENTATION,
|
|
STR_TOGGLE_FONT_SIZE,
|
|
STR_OVERRIDE_LETTERBOX_FILL,
|
|
STR_PREFERRED_PORTRAIT,
|
|
STR_PREFERRED_LANDSCAPE,
|
|
STR_CHOOSE_SOMETHING,
|
|
STR_CLOCK,
|
|
STR_CLOCK_AMPM,
|
|
STR_CLOCK_24H,
|
|
STR_SET_TIME,
|
|
STR_CLOCK_SIZE,
|
|
STR_CLOCK_SIZE_SMALL,
|
|
STR_CLOCK_SIZE_MEDIUM,
|
|
STR_CLOCK_SIZE_LARGE,
|
|
STR_TIMEZONE,
|
|
STR_TZ_UTC,
|
|
STR_TZ_EASTERN,
|
|
STR_TZ_CENTRAL,
|
|
STR_TZ_MOUNTAIN,
|
|
STR_TZ_PACIFIC,
|
|
STR_TZ_ALASKA,
|
|
STR_TZ_HAWAII,
|
|
STR_TZ_CUSTOM,
|
|
STR_SET_UTC_OFFSET,
|
|
STR_INDEXING_DISPLAY,
|
|
STR_INDEXING_POPUP,
|
|
STR_INDEXING_STATUS_TEXT,
|
|
STR_INDEXING_STATUS_ICON,
|
|
// Sentinel - must be last
|
|
_COUNT
|
|
};
|
|
|
|
// Helper function to get string array for a language
|
|
inline const char* const* getStringArray(Language lang) {
|
|
switch (lang) {
|
|
case Language::ENGLISH:
|
|
return i18n_strings::STRINGS_EN;
|
|
case Language::SPANISH:
|
|
return i18n_strings::STRINGS_ES;
|
|
case Language::FRENCH:
|
|
return i18n_strings::STRINGS_FR;
|
|
case Language::GERMAN:
|
|
return i18n_strings::STRINGS_DE;
|
|
case Language::CZECH:
|
|
return i18n_strings::STRINGS_CZ;
|
|
case Language::PORTUGUESE:
|
|
return i18n_strings::STRINGS_PO;
|
|
case Language::RUSSIAN:
|
|
return i18n_strings::STRINGS_RU;
|
|
case Language::SWEDISH:
|
|
return i18n_strings::STRINGS_SV;
|
|
default:
|
|
return i18n_strings::STRINGS_EN;
|
|
}
|
|
}
|
|
|
|
// Helper function to get language count
|
|
constexpr uint8_t getLanguageCount() { return static_cast<uint8_t>(Language::_COUNT); }
|