Files
Crosspoint/lib/I18n/translations/slovenian.yaml
T
Uri TauberandJulia Nguyen 1db1442319 fix: several bookmarks UX improvments (#2372)
## Summary

This PR enhances the EPUB reader's bookmark system with two
complementary improvements: a per-page bookmark indicator icon and
toggle behavior on the existing long-press action.

---

### What Changed

**Bookmark Toggle (was: add-only)**

The long-press Confirm action now toggles bookmarks rather than always
adding. `addBookmark()` checks whether a bookmark with the same xpath
already exists in the in-memory cache:
- If found → removes it and shows "Bookmark removed."
- If not found → adds it and shows "Bookmark added."

A new `STR_BOOKMARK_REMOVED` translation string was added to support the
removal message.

**Bookmark Icon Indicator**

A `BookmarkIcon` is now drawn at the top-right corner of the page
whenever the current page has a bookmark. `updateBookmarkFlag()` is
called at render time to determine whether the current page is
bookmarked.

**In-Memory Bookmark Cache**

Bookmarks are now loaded into `cachedBookmarks` on `onEnter()` rather
than being re-read from disk on every toggle. All subsequent add/remove
operations work against this cache and flush to disk, avoiding redundant
file reads on each bookmark action.

**Faster bookmarks list**

Previously, calculating "page X/Y" for each entry required decompressing
the entire spine item. We now persist `si`/`pc`/`pp` (spine index, page
count, and page progress) in the bookmark JSON when saving, and restore
them when loading. This avoids the expensive `toCrossPoint()` loop in
`onEnter()`, significantly reducing the cost of initializing the
bookmarks list.

---

### Files Changed

- `EpubReaderActivity.cpp` — `addBookmark()` toggle logic,
`updateBookmarkFlag()` (new), icon rendering in `renderContents()`,
cache initialization in `onEnter()`
- `EpubReaderActivity.h` — new fields: `currentPageBookmarked`,
`bookmarkRemoved`, `cachedBookmarks`; new method declaration
`updateBookmarkFlag()`

---

### 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 >**_

---------

Co-authored-by: Julia Nguyen <julia@uxj.io>
2026-06-23 14:55:01 -04:00

302 lines
11 KiB
YAML

_language_name: "Slovenščina"
_language_code: "SI"
_order: "21"
STR_CROSSPOINT: "CrossPoint"
STR_BOOTING: "ZAGON"
STR_SLEEPING: "SPANJE"
STR_ENTERING_SLEEP: "Prehajanje v spanje"
STR_BROWSE_FILES: "Prebrskaj datoteke"
STR_FILE_TRANSFER: "Prenos datotek"
STR_SETTINGS_TITLE: "Nastavitve"
STR_CONTINUE_READING: "Nadaljuj z branjem"
STR_NO_OPEN_BOOK: "Ni odprte knjige"
STR_START_READING: "Začni brati spodaj"
STR_NO_FILES_FOUND: "Ni najdenih datotek"
STR_SELECT_CHAPTER: "Izberi poglavje"
STR_NO_CHAPTERS: "Ni poglavij"
STR_END_OF_BOOK: "Konec knjige"
STR_EMPTY_CHAPTER: "Prazno poglavje"
STR_INDEXING: "Indeksiranje"
STR_MEMORY_ERROR: "Napaka pomnilnika"
STR_PAGE_LOAD_ERROR: "Napaka pri nalaganju strani"
STR_EMPTY_FILE: "Prazna datoteka"
STR_OUT_OF_BOUNDS: "Izven meja"
STR_LOADING: "Nalaganje..."
STR_LOADING_POPUP: "Nalaganje"
STR_WIFI_NETWORKS: "Wi-Fi omrežja"
STR_NO_NETWORKS: "Ni najdenih omrežij"
STR_NETWORKS_FOUND: "Najdenih omrežij: %zu"
STR_SCANNING: "Iskanje..."
STR_CONNECTING: "Povezovanje..."
STR_CONNECTED: "Povezano!"
STR_CONNECTION_FAILED: "Povezava ni uspela"
STR_FORGET_NETWORK: "Pozabi omrežje?"
STR_SAVE_PASSWORD: "Shranim geslo za naslednjič?"
STR_PRESS_OK_SCAN: "Pritisni OK za ponovno iskanje"
STR_JOIN_NETWORK: "Poveži se v omrežje"
STR_CREATE_HOTSPOT: "Ustvari dostopno točko"
STR_JOIN_DESC: "Poveži se v obstoječe Wi-Fi omrežje"
STR_HOTSPOT_DESC: "Ustvari Wi-Fi omrežje, v katerega se lahko povežejo drugi"
STR_STARTING_HOTSPOT: "Zaganjanje dostopne točke..."
STR_HOTSPOT_MODE: "Način dostopne točke"
STR_CONNECT_WIFI_HINT: "Poveži svojo napravo v to Wi-Fi omrežje"
STR_OPEN_URL_HINT: "Odpri ta URL v svojem brskalniku"
STR_OR_HTTP_PREFIX: "ali http://"
STR_SCAN_QR_HINT: "ali skeniraj QR kodo s telefonom:"
STR_CALIBRE_WIRELESS: "Brezžični Calibre"
STR_NETWORK_LEGEND: "* = Šifrirano | + = Shranjeno"
STR_MAC_ADDRESS: "MAC naslov:"
STR_CHECKING_WIFI: "Preverjanje Wi-Fi-ja..."
STR_ENTER_WIFI_PASSWORD: "Vnesi Wi-Fi geslo"
STR_TO_PREFIX: "v "
STR_CALIBRE_RECEIVING: "Prejemanje: "
STR_CALIBRE_RECEIVED: "Prejeto: "
STR_CALIBRE_INSTRUCTION_1: "1) Namesti vtičnik CrossPoint Reader"
STR_CALIBRE_INSTRUCTION_2: "2) Bodi v istem Wi-Fi omrežju"
STR_CALIBRE_INSTRUCTION_3: "3) V Calibre: \"Pošlji v napravo\""
STR_CALIBRE_INSTRUCTION_4: "\"Med pošiljanjem pusti ta zaslon odprt\""
STR_CAT_DISPLAY: "Zaslon"
STR_CAT_READER: "Bralnik"
STR_CAT_CONTROLS: "Kontrole"
STR_CAT_SYSTEM: "Sistem"
STR_SLEEP_SCREEN: "Zaslon za spanje"
STR_SLEEP_COVER_MODE: "Način naslovnice v spanju"
STR_HIDE_BATTERY: "Skrij % baterije"
STR_EXTRA_SPACING: "Dodaten razmik med odstavki"
STR_TEXT_AA: "Glajenje besedila (AA)"
STR_IMAGES: "Slike"
STR_IMAGES_DISPLAY: "Prikaži"
STR_IMAGES_PLACEHOLDER: "Oznaka mesta"
STR_IMAGES_SUPPRESS: "Zatdi"
STR_SHORT_PWR_BTN: "Kratek pritisk na gumb za vklop"
STR_ORIENTATION: "Orientacija branja"
STR_SIDE_BTN_LAYOUT: "Razpored stranskih gumbov"
STR_FRONT_BTN_FOLLOW_ORIENTATION: "Usmeri sprednje gumbe"
STR_LONG_PRESS_SKIP: "Dolgi pritisk za preskok poglavja"
STR_FONT_PREVIEW_TEXT: "V kožuščku hudobnega fanta stopiclja mizar"
STR_FONT_FAMILY: "Pisava bralnika"
STR_FONT_SIZE: "Velikost pisave"
STR_LINE_SPACING: "Razmik med vrsticami"
STR_SCREEN_MARGIN: "Robovi zaslona"
STR_PARA_ALIGNMENT: "Poravnava odstavkov"
STR_HYPHENATION: "Deljenje besed"
STR_TIME_TO_SLEEP: "Čas do spanja"
STR_SHOW_HIDDEN_FILES: "Prikaži skrite datoteke"
STR_REMOVE_READ_FROM_RECENTS: "Počisti prebrane knjige s seznama nedavnih"
STR_MOVE_FINISHED_TO_READ: "Premakni prebrane knjige v mapo Read"
STR_REFRESH_FREQ: "Pogostost osveževanja"
STR_KOREADER_SYNC: "KOReader sinhronizacija"
STR_CHECK_UPDATES: "Preveri posodobitve"
STR_LANGUAGE: "Jezik"
STR_CLEAR_READING_CACHE: "Počisti predpomnilnik branja"
STR_USERNAME: "Uporabniško ime"
STR_PASSWORD: "Geslo"
STR_SYNC_SERVER_URL: "URL strežnika za sinhronizacijo"
STR_DOCUMENT_MATCHING: "Ujemanje dokumentov"
STR_AUTHENTICATE: "Avtentikacija"
STR_KOREADER_USERNAME: "KOReader uporabnik"
STR_KOREADER_PASSWORD: "KOReader geslo"
STR_FILENAME: "Ime datoteke"
STR_BINARY: "Binarno"
STR_SET_CREDENTIALS_FIRST: "Najprej nastavi podatke za prijavo"
STR_WIFI_CONN_FAILED: "Wi-Fi povezava ni uspela"
STR_AUTHENTICATING: "Preverjanje..."
STR_AUTH_SUCCESS: "Uspešna prijava!"
STR_KOREADER_AUTH: "KOReader avtentikacija"
STR_SYNC_READY: "KOReader sinhronizacija je pripravljena"
STR_AUTH_FAILED: "Prijava ni uspela"
STR_DONE: "Končano"
STR_CLEAR_CACHE_WARNING_1: "To bo izbrisalo vse predpomnjene podatke o knjigah."
STR_CLEAR_CACHE_WARNING_2: "Ves napredek pri branju bo izgubljen!"
STR_CLEAR_CACHE_WARNING_3: "Knjige bo treba ob ponovnem odpiranju"
STR_CLEAR_CACHE_WARNING_4: "ponovno indeksirati."
STR_CLEARING_CACHE: "Čiščenje predpomnilnika..."
STR_CACHE_CLEARED: "Predpomnilnik očiščen"
STR_ITEMS_REMOVED: "elementov odstranjenih"
STR_FAILED_LOWER: "ni uspelo"
STR_CLEAR_CACHE_FAILED: "Čiščenje predpomnilnika ni uspelo"
STR_CHECK_SERIAL_OUTPUT: "Za podrobnosti preveri serijski izhod"
STR_DARK: "Temno"
STR_LIGHT: "Svetlo"
STR_CUSTOM: "Po meri"
STR_COVER: "Naslovnica"
STR_NONE_OPT: "Brez"
STR_FIT: "Prilagodi"
STR_CROP: "Obreži"
STR_NEVER: "Nikoli"
STR_IN_READER: "V bralniku"
STR_ALWAYS: "Vedno"
STR_IGNORE: "Prezri"
STR_SLEEP: "Spanje"
STR_PAGE_TURN: "Obračanje strani"
STR_PORTRAIT: "Pokončno"
STR_LANDSCAPE_CW: "Ležeče (v smeri urinega kazalca)"
STR_INVERTED: "Obrnjeno"
STR_LANDSCAPE_CCW: "Ležeče (proti smeri urinega kazalca)"
STR_PREV_NEXT: "Nazaj/Naprej"
STR_NEXT_PREV: "Naprej/Nazaj"
STR_NOTO_SERIF: "Noto Serif"
STR_NOTO_SANS: "Noto Sans"
STR_SMALL: "Majhno"
STR_MEDIUM: "Srednje"
STR_LARGE: "Veliko"
STR_X_LARGE: "Zelo veliko"
STR_TIGHT: "Tesno"
STR_NORMAL: "Normalno"
STR_WIDE: "Široko"
STR_JUSTIFY: "Obojestransko"
STR_ALIGN_LEFT: "Levo"
STR_CENTER: "Sredinsko"
STR_ALIGN_RIGHT: "Desno"
STR_PAGES_1: "1 stran"
STR_PAGES_5: "5 strani"
STR_PAGES_10: "10 strani"
STR_PAGES_15: "15 strani"
STR_PAGES_30: "30 strani"
STR_UPDATE: "Posodobi"
STR_CHECKING_UPDATE: "Preverjanje posodobitev..."
STR_NEW_UPDATE: "Na voljo je nova posodobitev!"
STR_CURRENT_VERSION: "Trenutna različica: "
STR_NEW_VERSION: "Nova različica: "
STR_UPDATING: "Posodabljanje..."
STR_NO_UPDATE: "Ni novih posodobitev"
STR_UPDATE_FAILED: "Posodobitev ni uspela"
STR_UPDATE_COMPLETE: "Posodobitev končana"
STR_POWER_ON_HINT: "Pridrži gumb za vklop, da napravo znova vklopiš"
STR_NO_ENTRIES: "Ni najdenih vnosov"
STR_DOWNLOADING: "Prenašanje..."
STR_DOWNLOAD_FAILED: "Prenos ni uspel"
STR_ERROR_MSG: "Napaka:"
STR_UNNAMED: "Neimenovano"
STR_NO_SERVER_URL: "URL strežnika ni nastavljen"
STR_FETCH_FEED_FAILED: "Nalaganje vira ni uspelo"
STR_PARSE_FEED_FAILED: "Razčlenjevanje vira ni uspelo"
STR_NETWORK_PREFIX: "Omrežje: "
STR_IP_ADDRESS_PREFIX: "IP naslov: "
STR_ERROR_GENERAL_FAILURE: "Napaka: Splošna napaka"
STR_ERROR_NETWORK_NOT_FOUND: "Napaka: Omrežje ni najdeno"
STR_ERROR_CONNECTION_TIMEOUT: "Napaka: Časovna omejitev povezave"
STR_SD_CARD: "SD kartica"
STR_BACK: "« Nazaj"
STR_EXIT: "« Izhod"
STR_HOME: "« Domov"
STR_SELECT: "Izberi"
STR_SELECTED: "Izbrano"
STR_TOGGLE: "Preklopi"
STR_TOGGLE_BOOKMARK: "Preklopi zaznamek"
STR_BOOKMARK_REMOVED: "Zaznamek odstranjen."
STR_HOLD_OPEN_TO_DELETE: "Držite Odpri za brisanje"
STR_CONFIRM: "Potrdi"
STR_CANCEL: "Prekliči"
STR_CONNECT: "Poveži"
STR_OPEN: "Odpri"
STR_DOWNLOAD: "Prenesi"
STR_RETRY: "Poskusi znova"
STR_YES: "Da"
STR_NO: "Ne"
STR_SHOW: "Prikaži"
STR_HIDE: "Skrij"
STR_STATE_ON: "VKLOP"
STR_STATE_OFF: "IZKLOP"
STR_NOT_SET: "Ni nastavljeno"
STR_DIR_LEFT: "Levo"
STR_DIR_RIGHT: "Desno"
STR_DIR_UP: "Gor"
STR_DIR_DOWN: "Dol"
STR_OK_BUTTON: "V redu"
STR_SLEEP_COVER_FILTER: "Filter naslovnice v spanju"
STR_FILTER_CONTRAST: "Kontrast"
STR_CUSTOMISE_STATUS_BAR: "Prilagodi vrstico stanja"
STR_CHAPTER_PAGE_COUNT: "Število strani v poglavju"
STR_BOOK_PROGRESS_PERCENTAGE: "Odstotek napredka v knjigi"
STR_PROGRESS_BAR: "Vrstica napredka"
STR_PROGRESS_BAR_THICKNESS: "Debelina vrstice napredka"
STR_PROGRESS_BAR_THIN: "Tanko"
STR_PROGRESS_BAR_MEDIUM: "Srednje"
STR_PROGRESS_BAR_THICK: "Debelo"
STR_BOOK: "Knjiga"
STR_CHAPTER: "Poglavje"
STR_EXAMPLE_CHAPTER: "Poglavje 21"
STR_EXAMPLE_BOOK: "Naslov knjige"
STR_PREVIEW: "Predogled"
STR_TITLE: "Naslov"
STR_BATTERY: "Baterija"
STR_UI_THEME: "Tema uporabniškega vmesnika"
STR_THEME_CLASSIC: "Klasična"
STR_THEME_LYRA: "Lyra"
STR_THEME_LYRA_EXTENDED: "Lyra razširjena"
STR_SUNLIGHT_FADING_FIX: "Popravek bledenja na soncu"
STR_QUICK_RESUME_TIMEOUT: "Hitro nadaljevanje po izteku"
STR_REMAP_FRONT_BUTTONS: "Prenastavi sprednje gumbe"
STR_OPDS_BROWSER: "OPDS brskalnik"
STR_COVER_CUSTOM: "Naslovnica + po meri"
STR_QUICK_RESUME: "Hitro nadaljevanje"
STR_MENU_RECENT_BOOKS: "Zadnje knjige"
STR_REMOVE_FROM_RECENTS: "Odstrani iz zadnjih knjig?"
STR_NO_RECENT_BOOKS: "Ni zadnjih knjig"
STR_CALIBRE_DESC: "Uporabi brezžični prenos Calibre"
STR_FORGET_AND_REMOVE: "Pozabi omrežje in odstrani shranjeno geslo?"
STR_FORGET_BUTTON: "Pozabi"
STR_CALIBRE_STARTING: "Zaganjanje Calibre..."
STR_CALIBRE_SETUP: "Nastavitev"
STR_CALIBRE_STATUS: "Stanje"
STR_CLEAR_BUTTON: "Počisti"
STR_DEFAULT_VALUE: "Privzeto"
STR_REMAP_PROMPT: "Pritisni sprednji gumb za vsako vlogo"
STR_UNASSIGNED: "Nedodeljeno"
STR_ALREADY_ASSIGNED: "Že dodeljeno"
STR_REMAP_RESET_HINT: "Stranski gumb gor: Ponastavi na privzeto"
STR_REMAP_CANCEL_HINT: "Stranski gumb dol: Prekliči nastavljanje"
STR_HW_BACK_LABEL: "Nazaj (1. gumb)"
STR_HW_CONFIRM_LABEL: "Potrdi (2. gumb)"
STR_HW_LEFT_LABEL: "Levo (3. gumb)"
STR_HW_RIGHT_LABEL: "Desno (4. gumb)"
STR_GO_TO_PERCENT: "Pojdi na %"
STR_GO_HOME_BUTTON: "Pojdi domov"
STR_SYNC_PROGRESS: "Sinhroniziraj napredek"
STR_DELETE_CACHE: "Izbriši predpomnilnik knjige"
STR_DELETE: "Izbriši"
STR_DISPLAY_QR: "Prikaži stran kot QR"
STR_CHAPTER_PREFIX: "Poglavje: "
STR_PAGES_SEPARATOR: " strani | "
STR_BOOK_PREFIX: "Knjiga: "
STR_CALIBRE_URL_HINT: "Za Calibre dodaj /opds svojemu URL-ju"
STR_PERCENT_STEP_HINT: "Levo/desno: 1% Gor/dol: 10%"
STR_SYNCING_TIME: "Sinhronizacija časa..."
STR_CALC_HASH: "Izračunavanje podpisa dokumenta..."
STR_HASH_FAILED: "Izračun podpisa dokumenta ni uspel"
STR_FETCH_PROGRESS: "Pridobivanje napredka iz oblaka..."
STR_UPLOAD_PROGRESS: "Nalaganje napredka..."
STR_NO_CREDENTIALS_MSG: "Podatki za prijavo niso nastavljeni"
STR_KOREADER_SETUP_HINT: "Nastavi KOReader račun v nastavitvah"
STR_PROGRESS_FOUND: "Najden napredek!"
STR_REMOTE_LABEL: "Oddaljeno:"
STR_LOCAL_LABEL: "Lokalno:"
STR_PAGE_OVERALL_FORMAT: "Stran %d, %.2f%% skupno"
STR_PAGE_TOTAL_OVERALL_FORMAT: "Stran %d/%d, %.2f%% skupno"
STR_DEVICE_FROM_FORMAT: " Iz: %s"
STR_APPLY_REMOTE: "Uporabi oddaljen napredek"
STR_UPLOAD_LOCAL: "Naloži lokalni napredek"
STR_NO_REMOTE_MSG: "Oddaljen napredek ni bil najden"
STR_UPLOAD_PROMPT: "Naložim trenutno pozicijo?"
STR_UPLOAD_SUCCESS: "Napredek naložen!"
STR_SYNC_FAILED_MSG: "Sinhronizacija ni uspela"
STR_SAVE_PROGRESS_FAILED: "Napredka ni bilo mogoče shraniti"
STR_SECTION_PREFIX: "Razdelek "
STR_UPLOAD: "Naloži"
STR_BOOK_S_STYLE: "Slog knjige"
STR_EMBEDDED_STYLE: "Vgrajen slog"
STR_FOCUS_READING: "Fokusirano branje"
STR_OPDS_SERVER_URL: "URL OPDS strežnika"
STR_FOOTNOTES: "Opombe"
STR_NO_FOOTNOTES: "Na tej strani ni opomb"
STR_LINK: "[povezava]"
STR_SLEEP_TIMER_VALUE_FORMAT: "%u min"
STR_SLEEP_NEVER: "Nikoli"
STR_SLEEP_TIMER_STEP_HINT: "Levo/desno: 1 min Gor/dol: 5 min"
STR_SCREENSHOT_BUTTON: "Naredi posnetek zaslona"
STR_AUTO_TURN_ENABLED: "Samodejno obračanje: "
STR_AUTO_TURN_PAGES_PER_MIN: "Samodejno obračanje (strani na minuto)"
STR_TILT_PAGE_TURN: "Obračanje s priklonom"