## Summary This PR introduces **Focus Reading**, a generic implementation of artificial fixation points (similar to Bionic Reading) designed to improve reading speed and focus by bolding the initial characters of words. This is achieved by dynamically bolding characters during indexing. <img width="500" alt="Focus Reading on X3" src="https://github.com/user-attachments/assets/94a632a5-82da-47be-957c-538b35bf84d9" /> ### Implementation Details #### Core Text Engine (`ParsedText`) - Modified `ParsedText::addWord` to implement a custom bolding algorithm. It uses a 45% ratio for bolding, with a minimum of 1 character and a maximum of 9. - UTF-8 Safety: Integrated `utf8NextCodepoint` to ensure character counting and string slicing occur at safe byte boundaries, preventing corruption of multi-byte characters (e.g., accented letters or smart quotes). - Intelligent Tokenization: This correctly identifies and separates "word" characters (letters, apostrophes, hyphens) from "non-word" characters (numbers, brackets, smart quotes). - Formatting Preservation: The logic ensures that punctuation is not "stolen" for the bolding count and that existing styles (like italics or underlines) are preserved across the bold/regular split. - Processing at indexing stage reduces CPU load at render-time and ensures layout/fit is unaffected. - Split details are tracked with `wordIsFocusSuffix`. After splitting and layout, suffixes are merged back into their preceding word entries to prevent a doubling of RAM usage. #### Settings and UI - Version Management: Bumped `SECTION_FILE_VERSION` to `21` - Global Settings: Added `focusReadingEnabled` to `CrossPointSettings`. - User Interface: Added a new toggle in the "Reader" section of the settings menu, positioned after the "Embedded Style" option. - Localization: Added the `STR_FOCUS_READING` string #### Plumbing - Plumbed the `focusReadingEnabled` boolean through `EpubReaderActivity`, `Section`, and `ChapterHtmlSlimParser` to ensure the user's setting reaches the `ParsedText` constructor during chapter indexing. ## Additional Context ### Files Changed - `lib/Epub/Epub/ParsedText.h / .cpp`: Core fixation logic and UTF-8 tokenization. - `lib/Epub/Epub/Section.h / .cpp`: Cache header updates and invalidation logic. - `lib/Epub/Epub/parsers/ChapterHtmlSlimParser.h / .cpp`: Plumbing the setting to text blocks. - `src/CrossPointSettings.h`: Data persistence for the new setting. - `src/SettingsList.h`: UI toggle implementation. - `src/activities/reader/EpubReaderActivity.cpp`: Handling settings changes during reading sessions. - `lib/I18n/translations/*.yaml`: UI strings. --- ### 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? _**YES**_
329 lines
17 KiB
YAML
329 lines
17 KiB
YAML
_language_name: "Українська"
|
||
_language_code: "UK"
|
||
_order: "10"
|
||
|
||
STR_CROSSPOINT: "CrossPoint"
|
||
STR_BOOTING: "ЗАВАНТАЖЕННЯ"
|
||
STR_SLEEPING: "СПИТЬ"
|
||
STR_ENTERING_SLEEP: "Перехід у режим сну"
|
||
STR_BROWSE_FILES: "Перегляд файлів"
|
||
STR_FILE_TRANSFER: "Передача файлів"
|
||
STR_SETTINGS_TITLE: "Налаштування"
|
||
STR_CONTINUE_READING: "Продовжити читання"
|
||
STR_NO_OPEN_BOOK: "Немає відкритої книги"
|
||
STR_START_READING: "Почніть читання нижче"
|
||
STR_NO_FILES_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_WIFI_NETWORKS: "Мережі WiFi"
|
||
STR_NO_NETWORKS: "Мереж не знайдено"
|
||
STR_NETWORKS_FOUND: "мереж %zu"
|
||
STR_SCANNING: "Сканування..."
|
||
STR_CONNECTING: "Підключення..."
|
||
STR_CONNECTED: "Підключено!"
|
||
STR_CONNECTION_FAILED: "Помилка підключення"
|
||
STR_FORGET_NETWORK: "Забути мережу?"
|
||
STR_SAVE_PASSWORD: "Зберегти пароль на наступний раз?"
|
||
STR_PRESS_OK_SCAN: "Натисніть OK для повторного сканування"
|
||
STR_JOIN_NETWORK: "Приєднатися до мережі"
|
||
STR_CREATE_HOTSPOT: "Створити точку доступу"
|
||
STR_JOIN_DESC: "Підключитися до існуючої мережі WiFi"
|
||
STR_HOTSPOT_DESC: "Дозволити іншим підключення по Wi-Fi"
|
||
STR_STARTING_HOTSPOT: "Запуск точки доступу..."
|
||
STR_HOTSPOT_MODE: "Режим точки доступу"
|
||
STR_CONNECT_WIFI_HINT: "Підключіть пристрій до Цієї мережі WiFi"
|
||
STR_OPEN_URL_HINT: "Відкрийте посилання у своєму браузері"
|
||
STR_OR_HTTP_PREFIX: "або http://"
|
||
STR_SCAN_QR_HINT: "або відскануйте QR-код телефоном:"
|
||
STR_CALIBRE_WIRELESS: "Отримати з Calibre"
|
||
STR_CALIBRE_WEB_URL: "OPDS URL"
|
||
STR_NETWORK_LEGEND: "* = Зашифровано | + = Збережено"
|
||
STR_MAC_ADDRESS: "MAC адреса:"
|
||
STR_CHECKING_WIFI: "Перевірка WiFi..."
|
||
STR_ENTER_WIFI_PASSWORD: "Введіть пароль WiFi"
|
||
STR_TO_PREFIX: "до "
|
||
STR_CALIBRE_RECEIVING: "Отримання: "
|
||
STR_CALIBRE_RECEIVED: "Отримано: "
|
||
STR_CALIBRE_INSTRUCTION_1: "1) Встановіть плагін CrossPoint Reader"
|
||
STR_CALIBRE_INSTRUCTION_2: "2) Перебувайте в тій самій мережі WiFi"
|
||
STR_CALIBRE_INSTRUCTION_3: "3) В Calibre: \"Надіслати на пристрій\""
|
||
STR_CALIBRE_INSTRUCTION_4: "\"Тримайте цей екран відкритим під час надсилання\""
|
||
STR_CAT_DISPLAY: "Екран"
|
||
STR_CAT_READER: "Читач"
|
||
STR_CAT_CONTROLS: "Кнопки"
|
||
STR_CAT_SYSTEM: "Система"
|
||
STR_SLEEP_SCREEN: "Екран у режимі сну"
|
||
STR_SLEEP_COVER_MODE: "Режим заповнення"
|
||
STR_HIDE_BATTERY: "Приховати % батареї"
|
||
STR_EXTRA_SPACING: "Додатковий інтервал між абзацами"
|
||
STR_TEXT_AA: "Згладжування тексту"
|
||
STR_IMAGES: "Зображення"
|
||
STR_IMAGES_DISPLAY: "Показати"
|
||
STR_IMAGES_PLACEHOLDER: "Заглушка"
|
||
STR_IMAGES_SUPPRESS: "Приховати"
|
||
STR_SHORT_PWR_BTN: "Короткий натиск кн. живл."
|
||
STR_ORIENTATION: "Орієнтація читання"
|
||
STR_SIDE_BTN_LAYOUT: "Схема бічних кнопок"
|
||
STR_LONG_PRESS_BEHAVIOR: "Поведінка при довгому настику"
|
||
STR_LONG_PRESS_BEHAVIOR_OFF: "Немає"
|
||
STR_LONG_PRESS_BEHAVIOR_SKIP: "Наступ. розділ (утримув.)"
|
||
STR_LONG_PRESS_BEHAVIOR_ORIENTATION: "Зміна орієнтації екрану"
|
||
STR_FONT_FAMILY: "Шрифт"
|
||
STR_FONT_SIZE: "Розмір шрифту"
|
||
STR_LINE_SPACING: "Міжрядковий інтервал"
|
||
STR_SCREEN_MARGIN: "Відступи від країв"
|
||
STR_PARA_ALIGNMENT: "Вирівнювання тексту"
|
||
STR_HYPHENATION: "Перенесення слів"
|
||
STR_TIME_TO_SLEEP: "Перехід в режим сну"
|
||
STR_SHOW_HIDDEN_FILES: "Показати приховані файли"
|
||
STR_REFRESH_FREQ: "Частота оновлення екрану"
|
||
STR_KOREADER_SYNC: "Синхронізація KOReader"
|
||
STR_CHECK_UPDATES: "Перевірити оновлення"
|
||
STR_LANGUAGE: "Мова"
|
||
STR_CLEAR_READING_CACHE: "Очистити кеш книг"
|
||
STR_USERNAME: "Ім'я користувача"
|
||
STR_PASSWORD: "Пароль"
|
||
STR_SYNC_SERVER_URL: "URL для синхронізації"
|
||
STR_DOCUMENT_MATCHING: "Порівняння документів"
|
||
STR_AUTHENTICATE: "Автентифікувати"
|
||
STR_KOREADER_USERNAME: "Ім'я користувача KOReader"
|
||
STR_KOREADER_PASSWORD: "Пароль KOReader"
|
||
STR_FILENAME: "Ім'я файлу"
|
||
STR_BINARY: "Побайтово"
|
||
STR_SET_CREDENTIALS_FIRST: "Спочатку вкажіть облікові дані"
|
||
STR_WIFI_CONN_FAILED: "Помилка підключення WiFi"
|
||
STR_AUTHENTICATING: "Автентифікація..."
|
||
STR_AUTH_SUCCESS: "Успішно автентифіковано!"
|
||
STR_KOREADER_AUTH: "Автентифікація KOReader"
|
||
STR_SYNC_READY: "Синхронізація KOReader активована"
|
||
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_NEVER: "Ніколи"
|
||
STR_IN_READER: "В читачі"
|
||
STR_ALWAYS: "Завжди"
|
||
STR_IGNORE: "Ігнорувати"
|
||
STR_SLEEP: "Сон"
|
||
STR_PAGE_TURN: "Наст. сторінка"
|
||
STR_FORCE_REFRESH: "Оновити екран"
|
||
STR_PORTRAIT: "Книжкова"
|
||
STR_LANDSCAPE_CW: "Альбом. за год."
|
||
STR_INVERTED: "Перевернутий"
|
||
STR_LANDSCAPE_CCW: "Альбом. проти год."
|
||
STR_PREV_NEXT: "Попер/Наст"
|
||
STR_NEXT_PREV: "Наст/Попер"
|
||
STR_NOTO_SERIF: "Noto Serif"
|
||
STR_NOTO_SANS: "Noto Sans"
|
||
STR_OPEN_DYSLEXIC: "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: "1 хв"
|
||
STR_MIN_5: "5 хв"
|
||
STR_MIN_10: "10 хв"
|
||
STR_MIN_15: "15 хв"
|
||
STR_MIN_30: "30 хв"
|
||
STR_PAGES_1: "1 сторінка"
|
||
STR_PAGES_5: "5 сторінок"
|
||
STR_PAGES_10: "10 сторінок"
|
||
STR_PAGES_15: "15 сторінок"
|
||
STR_PAGES_30: "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_NO_ENTRIES: "Записів не знайдено"
|
||
STR_DOWNLOADING: "Завантаження..."
|
||
STR_DOWNLOAD_FAILED: "Завантаження не вдалося"
|
||
STR_ERROR_MSG: "Помилка:"
|
||
STR_UNNAMED: "Без назви"
|
||
STR_NO_SERVER_URL: "URL сервера не налаштовано"
|
||
STR_FETCH_FEED_FAILED: "Не вдалося отримати стрічку"
|
||
STR_PARSE_FEED_FAILED: "Не вдалося розпарсити стрічку"
|
||
STR_NEXT_PAGE: "Наступна с.»"
|
||
STR_PREV_PAGE: "« Попередня с."
|
||
STR_NETWORK_PREFIX: "Мережа: "
|
||
STR_IP_ADDRESS_PREFIX: "IP адреса: "
|
||
STR_ERROR_GENERAL_FAILURE: "Помилка: Загальна помилка"
|
||
STR_ERROR_NETWORK_NOT_FOUND: "Помилка: Мережу не знайдено"
|
||
STR_ERROR_CONNECTION_TIMEOUT: "Помилка: Таймаут підключення"
|
||
STR_SD_CARD: "SD картка"
|
||
STR_BACK: "« Назад"
|
||
STR_EXIT: "« Вихід"
|
||
STR_HOME: "« Додому"
|
||
STR_SELECT: "Вибрати"
|
||
STR_SELECTED: "Вибрано"
|
||
STR_TOGGLE: "Обрати"
|
||
STR_CONFIRM: "Підтвердити"
|
||
STR_CANCEL: "Скасувати"
|
||
STR_CONNECT: "Приєдн."
|
||
STR_OPEN: "Відкрити"
|
||
STR_DOWNLOAD: "Завант."
|
||
STR_RETRY: "Повтор."
|
||
STR_YES: "Так"
|
||
STR_NO: "Ні"
|
||
STR_SHOW: "Показати"
|
||
STR_HIDE: "Сховати"
|
||
STR_STATE_ON: "УВІМК"
|
||
STR_STATE_OFF: "ВИМК"
|
||
STR_NOT_SET: "Не встановлено"
|
||
STR_DIR_LEFT: "Вліво"
|
||
STR_DIR_RIGHT: "Вправо"
|
||
STR_DIR_UP: "Вгору"
|
||
STR_DIR_DOWN: "Вниз"
|
||
STR_OK_BUTTON: "OK"
|
||
STR_SLEEP_COVER_FILTER: "Ефект заставки"
|
||
STR_FILTER_CONTRAST: "Контраст"
|
||
STR_CUSTOMISE_STATUS_BAR: "Налаштувати рядок стану"
|
||
STR_CHAPTER_PAGE_COUNT: "Кількість сторінок у розділі"
|
||
STR_BOOK_PROGRESS_PERCENTAGE: "Відсоток прочитаного"
|
||
STR_PROGRESS_BAR: "Рядок прогресу"
|
||
STR_PROGRESS_BAR_THICKNESS: "Товщина рядку прогресу"
|
||
STR_PROGRESS_BAR_THIN: "Тонкий"
|
||
STR_PROGRESS_BAR_MEDIUM: "Середній"
|
||
STR_PROGRESS_BAR_THICK: "Жирний"
|
||
STR_BOOK: "Книга"
|
||
STR_CHAPTER: "Розділ"
|
||
STR_EXAMPLE_CHAPTER: "Розділ 21"
|
||
STR_EXAMPLE_BOOK: "Назва книги"
|
||
STR_PREVIEW: "Перегляд"
|
||
STR_TITLE: "Назва"
|
||
STR_BATTERY: "Акумулятор"
|
||
STR_UI_THEME: "Тема інтерфейсу"
|
||
STR_THEME_CLASSIC: "Класична"
|
||
STR_THEME_LYRA: "Lyra"
|
||
STR_THEME_ROUNDEDRAFF: "RoundedRaff"
|
||
STR_THEME_LYRA_EXTENDED: "Lyra Extended"
|
||
STR_SUNLIGHT_FADING_FIX: "Виправлення вицвітання на сонці"
|
||
STR_REMAP_FRONT_BUTTONS: "Налаштувати передні кнопки"
|
||
STR_OPDS_BROWSER: "Браузер OPDS"
|
||
STR_SEARCH: "Пошук"
|
||
STR_COVER_CUSTOM: "Обкл. + власне"
|
||
STR_MENU_RECENT_BOOKS: "Останні книги"
|
||
STR_NO_RECENT_BOOKS: "Немає останніх книг"
|
||
STR_CALIBRE_DESC: "Бездротова передача на пристрій із Calibre"
|
||
STR_FORGET_AND_REMOVE: "Забути мережу та видалити збережений пароль?"
|
||
STR_FORGET_BUTTON: "Забути"
|
||
STR_CALIBRE_STARTING: "Запуск Calibre..."
|
||
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: "Назад (1-ша кнопка)"
|
||
STR_HW_CONFIRM_LABEL: "Підтвердити (2-га кнопка)"
|
||
STR_HW_LEFT_LABEL: "Вліво (3-тя кнопка)"
|
||
STR_HW_RIGHT_LABEL: "Вправо (4-та кнопка)"
|
||
STR_GO_TO_PERCENT: "Перейти до %"
|
||
STR_GO_HOME_BUTTON: "На головну"
|
||
STR_SYNC_PROGRESS: "Прогрес синхронізації"
|
||
STR_DELETE_CACHE: "Видалити кеш книги"
|
||
STR_DELETE: "Видалити"
|
||
STR_DISPLAY_QR: "Показати сторінку як QR-код"
|
||
STR_CHAPTER_PREFIX: "Розділ: "
|
||
STR_PAGES_SEPARATOR: " сторінок | "
|
||
STR_BOOK_PREFIX: "Книга: "
|
||
STR_CALIBRE_URL_HINT: "Для Calibre додайте /opds до вашої URL"
|
||
STR_PERCENT_STEP_HINT: "Вліво/Вправо: 1% Вгору/Вниз: 10%"
|
||
STR_SYNCING_TIME: "Синхронізація часу..."
|
||
STR_CALC_HASH: "Обчислення хешу документа..."
|
||
STR_HASH_FAILED: "Не вдалося обчислити хеш документа"
|
||
STR_FETCH_PROGRESS: "Отримання віддаленого прогресу..."
|
||
STR_UPLOAD_PROGRESS: "Завантаження прогресу..."
|
||
STR_NO_CREDENTIALS_MSG: "Облікові дані не налаштовано"
|
||
STR_KOREADER_SETUP_HINT: "Налаштуйте обліковий запис KOReader в Налаштуваннях"
|
||
STR_PROGRESS_FOUND: "Прогрес знайдено!"
|
||
STR_REMOTE_LABEL: "Віддалений:"
|
||
STR_LOCAL_LABEL: "Локальний:"
|
||
STR_PAGE_OVERALL_FORMAT: "Сторінка %d, %.2f%% загалом"
|
||
STR_PAGE_TOTAL_OVERALL_FORMAT: "Сторінка %d/%d, %.2f%% загалом"
|
||
STR_DEVICE_FROM_FORMAT: " Від: %s"
|
||
STR_APPLY_REMOTE: "Застосувати віддалений прогрес"
|
||
STR_UPLOAD_LOCAL: "Завантажити локальний прогрес"
|
||
STR_NO_REMOTE_MSG: "Віддаленого прогресу не знайдено"
|
||
STR_UPLOAD_PROMPT: "Завантажити поточну позицію?"
|
||
STR_UPLOAD_SUCCESS: "Прогрес завантажено!"
|
||
STR_SYNC_FAILED_MSG: "Синхронізація не вдалася"
|
||
STR_SAVE_PROGRESS_FAILED: "Не вдалося зберегти прогрес"
|
||
STR_SECTION_PREFIX: "Розділ "
|
||
STR_UPLOAD: "Завантажити"
|
||
STR_BOOK_S_STYLE: "Стиль книги"
|
||
STR_EMBEDDED_STYLE: "Вбудований стиль"
|
||
STR_FOCUS_READING: "Фокусне читання"
|
||
STR_OPDS_SERVER_URL: "URL сервера OPDS"
|
||
STR_FOOTNOTES: "Примітки"
|
||
STR_NO_FOOTNOTES: "На цій сторінці немає приміток"
|
||
STR_LINK: "[посилання]"
|
||
STR_SCREENSHOT_BUTTON: "Знімок екрана"
|
||
STR_ADD_SERVER: "Додати сервер"
|
||
STR_SERVER_NAME: "Назва сервера"
|
||
STR_NO_SERVERS: "Не налаштовано жодного сервера OPDS"
|
||
STR_DELETE_SERVER: "Видалити сервер"
|
||
STR_DELETE_CONFIRM: "Видалити цей сервер?"
|
||
STR_OPDS_SERVERS: "Сервери OPDS"
|
||
STR_AUTO_TURN_ENABLED: "Автоперегортання увімк: "
|
||
STR_AUTO_TURN_PAGES_PER_MIN: "Автоперегортання (ст/хв)"
|
||
STR_CRASH_TITLE: "Збій Системи"
|
||
STR_CRASH_DESCRIPTION: "Дані про збій збережено в crash_report.txt. Додайте цей файл до вашого звіту про помилку."
|
||
STR_CRASH_REASON: "Причина збою:"
|
||
STR_CRASH_NO_REASON: "(Причину не вказано)"
|
||
STR_TILT_PAGE_TURN: "Перегортання нахилом"
|
||
STR_KB_HINT_MOVE_CURSOR: "Натисніть ВЛІВО / ВПРАВО для переміщення курсору"
|
||
STR_KB_HINT_RETURN_CURSOR: "Натисніть ВЛІВО для повернення до курсору"
|
||
STR_KB_HINT_HIDE_PASSWORD: "Затисніть ВПРАВО, натисніть [***], щоб приховати пароль"
|
||
STR_KB_HINT_SHOW_PASSWORD: "Затисніть ВПРАВО, натисніть [abc], щоб показати пароль"
|
||
STR_KB_HINT_TOGGLE_HIDE_PASSWORD: "Натисніть [***], щоб приховати пароль"
|
||
STR_KB_HINT_TOGGLE_SHOW_PASSWORD: "Натисніть [abc], щоб показати пароль"
|
||
STR_KB_HINT_EDIT_ENTRY: "Затисніть ВГОРУ для редагування"
|
||
STR_KB_TIPS: "Поради:"
|
||
STR_KB_HINT_RETURN_KEYBOARD: "Натисніть ВНИЗ, щоб повернутися до клавіатури"
|
||
STR_KB_HINT_EXIT_URL_MODE: "Натисніть [ABC] для виходу з режиму URL"
|
||
STR_KB_HINT_CLEAR_TEXT: "Затисніть <--, щоб видалити весь текст"
|
||
STR_KB_HINT_SECONDARY_CHAR: "Затисніть ВИБРАТИ для додаткових символів"
|
||
STR_KB_HINT_UPPER_SECONDARY: "Затисніть ВИБРАТИ для ВЕЛИКИХ літер / символів"
|
||
STR_KB_HINT_LOWER_SECONDARY: "Затисніть ВИБРАТИ для малих літер / символів"
|
||
STR_KB_HINT_URL_SNIPPETS: "Натисніть URL для вибору шаблонів"
|