Files
Crosspoint/lib/I18n/translations/danish.yaml
T
fa2a3d2539 feat: add OPDS search support & next/prev page navigation (#1462)
## Summary

**What is the goal of this PR?**
Adds OPDS search support, allowing users to search a catalog directly
from the book browser when the server exposes an OpenSearch template.

**What changes are included?**
- `OpdsParser`: parses the OpenSearch template URL from feed-level
`<link rel="search">` elements and exposes it via `getSearchTemplate()`
- `OpdsBookBrowserActivity`: fetches and stores the search template
after each feed load; shows a Search hint on the Left button when a
template is available; launches the existing `KeyboardEntryActivity` for
query input; URL-encodes the query and fetches the result feed
- Absolute search result URLs are handled correctly in `fetchFeed`
(skips prepending the server base URL)
- A `consumeConfirm` guard prevents the Confirm release that submits the
keyboard from immediately triggering a book download on the first
browsing frame after search results load

## Additional Context

- Search is silently unavailable if the server does not advertise an
OpenSearch template — no UI change in that case
- Tested against a Calibre-Web OPDS endpoint which exposes `<link
rel="search" type="application/opensearchdescription+xml">`
- The inline URL encoder in `performSearch` was necessary as
`StringUtils` has no such utility; worth considering extracting to
`StringUtils` in a follow-up
- No new dependencies introduced

---

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

---------

Co-authored-by: kira <rammah@tuta.io>
Co-authored-by: Justin Mitchell <justin@jmitch.com>
2026-04-12 12:24:27 -04:00

293 lines
10 KiB
YAML

_language_name: "Dansk"
_language_code: "DA"
_order: "15"
STR_CROSSPOINT: "CrossPoint"
STR_BOOTING: "STARTER"
STR_SLEEPING: "HVILE"
STR_ENTERING_SLEEP: "Går i hvile"
STR_BROWSE_FILES: "Gennemsøg filer"
STR_FILE_TRANSFER: "Filoverførelse"
STR_SETTINGS_TITLE: "Indstillinger"
STR_CONTINUE_READING: "Fortsæt med at læse"
STR_NO_OPEN_BOOK: "Ingen åben bog"
STR_START_READING: "Start læsning nedenfor"
STR_NO_FILES_FOUND: "Ingen filer fundet"
STR_SELECT_CHAPTER: "Vælg kapitel"
STR_NO_CHAPTERS: "Ingen kapitler"
STR_END_OF_BOOK: "Bogen er færdig"
STR_EMPTY_CHAPTER: "Tomt kapitel"
STR_INDEXING: "Indekserer"
STR_MEMORY_ERROR: "Hukommelsesfejl"
STR_PAGE_LOAD_ERROR: "Fejl ved sideindlæsning"
STR_EMPTY_FILE: "Tom fil"
STR_OUT_OF_BOUNDS: "Uden for grænsen"
STR_LOADING: "Indlæser..."
STR_LOADING_POPUP: "Indlæser"
STR_WIFI_NETWORKS: "Trådløse netværk"
STR_NO_NETWORKS: "Intet netværk fundet"
STR_NETWORKS_FOUND: "%zu netværk fundet"
STR_SCANNING: "Skanner..."
STR_CONNECTING: "Forbinder..."
STR_CONNECTED: "Forbundet!"
STR_CONNECTION_FAILED: "Forbindelsen mislykkedes"
STR_FORGET_NETWORK: "Glem netværk?"
STR_SAVE_PASSWORD: "Gem adgangskode til næste gang?"
STR_PRESS_OK_SCAN: "Tryk OK for at scanne igen"
STR_JOIN_NETWORK: "Tilslut netværk"
STR_CREATE_HOTSPOT: "Opret Hotspot"
STR_JOIN_DESC: "Opret forbindelse til et eksisterende WiFi-netværk"
STR_HOTSPOT_DESC: "Opret et WiFi-netværk andre kan tilslutte sig"
STR_STARTING_HOTSPOT: "Starter Hotspot..."
STR_HOTSPOT_MODE: "Hotspot-tilstand"
STR_CONNECT_WIFI_HINT: "Opret forbindelse fra din enhed til dette WiFi-netværk"
STR_OPEN_URL_HINT: "Åbn denne URL i din browser"
STR_OR_HTTP_PREFIX: "eller http://"
STR_SCAN_QR_HINT: "eller scan QR-kode med din telefon:"
STR_CALIBRE_WIRELESS: "Calibre Wireless"
STR_CALIBRE_WEB_URL: "OPDS URL"
STR_NETWORK_LEGEND: "* = Krypteret | + = Gemt"
STR_MAC_ADDRESS: "MAC-adresse:"
STR_CHECKING_WIFI: "Tjekker WiFi..."
STR_ENTER_WIFI_PASSWORD: "Indtast WiFi-adgangskode"
STR_TO_PREFIX: "til "
STR_CALIBRE_RECEIVING: "Modtager: "
STR_CALIBRE_RECEIVED: "Modtaget: "
STR_CALIBRE_INSTRUCTION_1: "1) Installer CrossPoint Reader-plugin"
STR_CALIBRE_INSTRUCTION_2: "2) Vær på det samme WiFi-netværk"
STR_CALIBRE_INSTRUCTION_3: "3) I Calibre: \"Send til enhed\""
STR_CALIBRE_INSTRUCTION_4: "\"Hold denne skærm åben under afsendelse\""
STR_CAT_DISPLAY: "Skærm"
STR_CAT_READER: "Læser"
STR_CAT_CONTROLS: "Brugerflade"
STR_CAT_SYSTEM: "System"
STR_SLEEP_SCREEN: "Hvile-skærm"
STR_SLEEP_COVER_MODE: "Hvile-skærm omslag-tilstand"
STR_HIDE_BATTERY: "Skjul batteri %"
STR_EXTRA_SPACING: "Ekstra afsnitsafstand"
STR_TEXT_AA: "Tekst Anti-Aliasing"
STR_IMAGES: "Billeder"
STR_IMAGES_DISPLAY: "Vis"
STR_IMAGES_PLACEHOLDER: "Pladsholder"
STR_IMAGES_SUPPRESS: "Skjul"
STR_SHORT_PWR_BTN: "Kort tryk på tænd/sluk-knap"
STR_ORIENTATION: "Læseretning"
STR_SIDE_BTN_LAYOUT: "Knaplayout på siden (læser)"
STR_LONG_PRESS_SKIP: "Langt tryk spring kapitel over"
STR_FONT_FAMILY: "Læser skrifttype"
STR_FONT_SIZE: "Læser skriftstørrelse"
STR_LINE_SPACING: "Linjeafstand"
STR_SCREEN_MARGIN: "Skærmmargen"
STR_PARA_ALIGNMENT: "Afsnitsjustering"
STR_HYPHENATION: "Orddeling"
STR_TIME_TO_SLEEP: "Tid til hvile"
STR_SHOW_HIDDEN_FILES: "Vis skjulte filer"
STR_REFRESH_FREQ: "Opdateringsfrekvens"
STR_KOREADER_SYNC: "KOReader Sync"
STR_CHECK_UPDATES: "Søg efter opdateringer"
STR_LANGUAGE: "Sprog"
STR_CLEAR_READING_CACHE: "Ryd læsecache"
STR_USERNAME: "Brugernavn"
STR_PASSWORD: "Adgangskode"
STR_SYNC_SERVER_URL: "Synkroniseringsserver-URL"
STR_DOCUMENT_MATCHING: "Dokumentsammenkobling"
STR_AUTHENTICATE: "Godkend"
STR_KOREADER_USERNAME: "KOReader brugernavn"
STR_KOREADER_PASSWORD: "KOReader adgangskode"
STR_FILENAME: "Filnavn"
STR_BINARY: "Binær"
STR_SET_CREDENTIALS_FIRST: "Angiv legitimationsoplysninger først"
STR_WIFI_CONN_FAILED: "WiFi-forbindelsen mislykkedes"
STR_AUTHENTICATING: "Godkender..."
STR_AUTH_SUCCESS: "Godkendt!"
STR_KOREADER_AUTH: "KOReader-godkendelse"
STR_SYNC_READY: "KOReader-synkronisering er klar til brug"
STR_AUTH_FAILED: "Godkendelse mislykkedes"
STR_DONE: "Færdig"
STR_CLEAR_CACHE_WARNING_1: "Dette vil rydde alle cachelagrede bogdata."
STR_CLEAR_CACHE_WARNING_2: "Al læsefremskridt vil gå tabt!"
STR_CLEAR_CACHE_WARNING_3: "Bøger skal indekseres igen"
STR_CLEAR_CACHE_WARNING_4: "når de åbnes igen."
STR_CLEARING_CACHE: "Rydder cache..."
STR_CACHE_CLEARED: "Cache ryddet"
STR_ITEMS_REMOVED: "elementer fjernet"
STR_FAILED_LOWER: "mislykkedes"
STR_CLEAR_CACHE_FAILED: "Kunne ikke rydde cache"
STR_CHECK_SERIAL_OUTPUT: "Tjek serielt output for detaljer"
STR_DARK: "Mørk"
STR_LIGHT: "Lys"
STR_CUSTOM: "Brugerdefineret"
STR_COVER: "Omslag"
STR_NONE_OPT: "Ingen"
STR_FIT: "Tilpas"
STR_CROP: "Beskær"
STR_NEVER: "Aldrig"
STR_IN_READER: "I læseren"
STR_ALWAYS: "Altid"
STR_IGNORE: "Ignorer"
STR_SLEEP: "Hvile"
STR_PAGE_TURN: "Sideskift"
STR_PORTRAIT: "Portræt"
STR_LANDSCAPE_CW: "Liggende med uret"
STR_INVERTED: "Inverteret"
STR_LANDSCAPE_CCW: "Liggende mod uret"
STR_PREV_NEXT: "Forrige/Næste"
STR_NEXT_PREV: "Næste/Forrige"
STR_BOOKERLY: "Bookerly"
STR_NOTO_SANS: "Noto Sans"
STR_OPEN_DYSLEXIC: "Open Dyslexic"
STR_SMALL: "Lille"
STR_MEDIUM: "Mellem"
STR_LARGE: "Stor"
STR_X_LARGE: "Ekstra stor"
STR_TIGHT: "Tæt"
STR_NORMAL: "Normal"
STR_WIDE: "Bred"
STR_JUSTIFY: "Justeret"
STR_ALIGN_LEFT: "Venstre"
STR_CENTER: "Centreret"
STR_ALIGN_RIGHT: "Højre"
STR_MIN_1: "1 min"
STR_MIN_5: "5 min"
STR_MIN_10: "10 min"
STR_MIN_15: "15 min"
STR_MIN_30: "30 min"
STR_PAGES_1: "1 side"
STR_PAGES_5: "5 sider"
STR_PAGES_10: "10 sider"
STR_PAGES_15: "15 sider"
STR_PAGES_30: "30 sider"
STR_UPDATE: "Opdater"
STR_CHECKING_UPDATE: "Søger efter opdatering..."
STR_NEW_UPDATE: "Ny opdatering tilgængelig!"
STR_CURRENT_VERSION: "Nuværende version: "
STR_NEW_VERSION: "Ny version: "
STR_UPDATING: "Opdaterer..."
STR_NO_UPDATE: "Ingen opdatering tilgængelig"
STR_UPDATE_FAILED: "Opdatering mislykkedes"
STR_UPDATE_COMPLETE: "Opdatering færdig"
STR_POWER_ON_HINT: "Hold tænd/sluk-knappen nede for at tænde igen"
STR_NO_ENTRIES: "Ingen poster fundet"
STR_DOWNLOADING: "Downloader..."
STR_DOWNLOAD_FAILED: "Download mislykkedes"
STR_ERROR_MSG: "Fejl:"
STR_UNNAMED: "Unavngivet"
STR_NO_SERVER_URL: "Ingen server-URL konfigureret"
STR_FETCH_FEED_FAILED: "Kunne ikke hente feed"
STR_PARSE_FEED_FAILED: "Kunne ikke fortolke feed"
STR_NETWORK_PREFIX: "Netværk: "
STR_IP_ADDRESS_PREFIX: "IP-adresse: "
STR_ERROR_GENERAL_FAILURE: "Fejl: Generel fejl"
STR_ERROR_NETWORK_NOT_FOUND: "Fejl: Netværk ikke fundet"
STR_ERROR_CONNECTION_TIMEOUT: "Fejl: Forbindelses timeout"
STR_SD_CARD: "SD-kort"
STR_BACK: "« Tilbage"
STR_EXIT: "« Afslut"
STR_HOME: "« Hjem"
STR_SELECT: "Vælg"
STR_SELECTED: "Valgt"
STR_TOGGLE: "Skift"
STR_CONFIRM: "Bekræft"
STR_CANCEL: "Annuller"
STR_CONNECT: "Forbind"
STR_OPEN: "Åbn"
STR_DOWNLOAD: "Download"
STR_RETRY: "Prøv igen"
STR_YES: "Ja"
STR_NO: "Nej"
STR_SHOW: "Vis"
STR_HIDE: "Skjul"
STR_STATE_ON: "TÆNDT"
STR_STATE_OFF: "SLUKKET"
STR_NOT_SET: "Ikke indstillet"
STR_DIR_LEFT: "Venstre"
STR_DIR_RIGHT: "Højre"
STR_DIR_UP: "Op"
STR_DIR_DOWN: "Ned"
STR_OK_BUTTON: "OK"
STR_SLEEP_COVER_FILTER: "Hvile-skærm omslag-filter"
STR_FILTER_CONTRAST: "Kontrast"
STR_CUSTOMISE_STATUS_BAR: "Tilpas statuslinje"
STR_CHAPTER_PAGE_COUNT: "Kapitelsidetæller"
STR_BOOK_PROGRESS_PERCENTAGE: "Bogfremskridtsprocent"
STR_PROGRESS_BAR: "Fremskridtslinje"
STR_PROGRESS_BAR_THICKNESS: "Fremskridtslinjens tykkelse"
STR_PROGRESS_BAR_THIN: "Tynd"
STR_PROGRESS_BAR_MEDIUM: "Mellem"
STR_PROGRESS_BAR_THICK: "Tyk"
STR_BOOK: "Bog"
STR_CHAPTER: "Kapitel"
STR_EXAMPLE_CHAPTER: "Kapitel 21"
STR_EXAMPLE_BOOK: "Bogtitel"
STR_PREVIEW: "Forhåndsvisning"
STR_TITLE: "Titel"
STR_BATTERY: "Batteri"
STR_UI_THEME: "Brugergrænseflade tema"
STR_THEME_CLASSIC: "Klassisk"
STR_THEME_LYRA: "Lyra"
STR_THEME_LYRA_EXTENDED: "Lyra Extended"
STR_SUNLIGHT_FADING_FIX: "Sollysfading-rettelse"
STR_REMAP_FRONT_BUTTONS: "Omtildel frontknapper"
STR_OPDS_BROWSER: "OPDS Browser"
STR_COVER_CUSTOM: "Omslag + Brugerdefineret"
STR_MENU_RECENT_BOOKS: "Seneste bøger"
STR_NO_RECENT_BOOKS: "Ingen seneste bøger"
STR_CALIBRE_DESC: "Brug Calibre trådløs enhedsoverførelse"
STR_FORGET_AND_REMOVE: "Glem netværk og fjern gemt adgangskode?"
STR_FORGET_BUTTON: "Glem"
STR_CALIBRE_STARTING: "Starter Calibre..."
STR_CALIBRE_SETUP: "Opsætning"
STR_CALIBRE_STATUS: "Status"
STR_CLEAR_BUTTON: "Ryd"
STR_DEFAULT_VALUE: "Standard"
STR_REMAP_PROMPT: "Tryk på en frontknap for hver rolle"
STR_UNASSIGNED: "Ikke tildelt"
STR_ALREADY_ASSIGNED: "Allerede tildelt"
STR_REMAP_RESET_HINT: "Sideknap op: Nulstil til standardlayout"
STR_REMAP_CANCEL_HINT: "Sideknap ned: Annuller omtildeling"
STR_HW_BACK_LABEL: "Tilbage (1. knap)"
STR_HW_CONFIRM_LABEL: "Bekræft (2. knap)"
STR_HW_LEFT_LABEL: "Venstre (3. knap)"
STR_HW_RIGHT_LABEL: "Højre (4. knap)"
STR_GO_TO_PERCENT: "Gå til %"
STR_GO_HOME_BUTTON: "Gå til start"
STR_SYNC_PROGRESS: "Synkroniser fremskridt"
STR_DELETE_CACHE: "Slet bogcache"
STR_DELETE: "Slet"
STR_DISPLAY_QR: "Vis side som QR"
STR_CHAPTER_PREFIX: "Kapitel: "
STR_PAGES_SEPARATOR: " sider | "
STR_BOOK_PREFIX: "Bog: "
STR_CALIBRE_URL_HINT: "Tilføj /opds til din URL for Calibre"
STR_PERCENT_STEP_HINT: "Venstre/Højre: 1% Op/Ned: 10%"
STR_SYNCING_TIME: "Synkroniserer tid..."
STR_CALC_HASH: "Beregner dokument-hash..."
STR_HASH_FAILED: "Kunne ikke beregne dokument-hash"
STR_FETCH_PROGRESS: "Henter fjernfremskridt..."
STR_UPLOAD_PROGRESS: "Uploader fremskridt..."
STR_NO_CREDENTIALS_MSG: "Ingen legitimationsoplysninger konfigureret"
STR_KOREADER_SETUP_HINT: "Opsæt KOReader-konto i Indstillinger"
STR_PROGRESS_FOUND: "Fremskridt fundet!"
STR_REMOTE_LABEL: "Ekstern:"
STR_LOCAL_LABEL: "Lokal:"
STR_PAGE_OVERALL_FORMAT: "Side %d, %.2f%% samlet"
STR_PAGE_TOTAL_OVERALL_FORMAT: "Side %d/%d, %.2f%% samlet"
STR_DEVICE_FROM_FORMAT: " Fra: %s"
STR_APPLY_REMOTE: "Anvend fjernfremskridt"
STR_UPLOAD_LOCAL: "Upload lokalt fremskridt"
STR_NO_REMOTE_MSG: "Ingen fjernfremskridt fundet"
STR_UPLOAD_PROMPT: "Upload nuværende position?"
STR_UPLOAD_SUCCESS: "Fremskridt uploadet!"
STR_SYNC_FAILED_MSG: "Synkronisering mislykkedes"
STR_SECTION_PREFIX: "Afsnit "
STR_UPLOAD: "Upload"
STR_BOOK_S_STYLE: "Bogens stil"
STR_EMBEDDED_STYLE: "Indlejret stil"
STR_OPDS_SERVER_URL: "OPDS Server URL"
STR_FOOTNOTES: "Fodnoter"
STR_NO_FOOTNOTES: "Ingen fodnoter på denne side"
STR_LINK: "[link]"
STR_SCREENSHOT_BUTTON: "Tag skærmbillede"
STR_AUTO_TURN_ENABLED: "Automatisk sidevendning aktiveret: "
STR_AUTO_TURN_PAGES_PER_MIN: "Automatisk vending (sider per minut)"