## Summary * **What is the goal of this PR?** A Ukrainian translation for the GUI * **What changes are included?** Everything according to https://github.com/crosspoint-reader/crosspoint-reader/blob/master/docs/i18n.md ## Additional Context * Add any other information that might be helpful for the reviewer (e.g., performance implications, potential risks, specific areas to focus on). Nope --- ### AI Usage 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? _**< PARTIALLY >**_ as a consistency validation
397 lines
8.5 KiB
C++
397 lines
8.5 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[];
|
|
extern const char* const STRINGS_RO[];
|
|
extern const char* const STRINGS_CA[];
|
|
extern const char* const STRINGS_UK[];
|
|
} // 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,
|
|
ROMANIAN = 8,
|
|
CATALAN = 9,
|
|
UKRAINIAN = 10,
|
|
_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_LOADING_POPUP,
|
|
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_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_SCREENSHOT_BUTTON,
|
|
// 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;
|
|
case Language::ROMANIAN:
|
|
return i18n_strings::STRINGS_RO;
|
|
case Language::CATALAN:
|
|
return i18n_strings::STRINGS_CA;
|
|
case Language::UKRAINIAN:
|
|
return i18n_strings::STRINGS_UK;
|
|
default:
|
|
return i18n_strings::STRINGS_EN;
|
|
}
|
|
}
|
|
|
|
// Helper function to get language count
|
|
constexpr uint8_t getLanguageCount() { return static_cast<uint8_t>(Language::_COUNT); }
|