## 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>
292 lines
10 KiB
YAML
292 lines
10 KiB
YAML
_language_name: "Nederlands"
|
|
_language_code: "NL"
|
|
_order: "16"
|
|
|
|
STR_CROSSPOINT: "CrossPoint"
|
|
STR_BOOTING: "OPSTARTEN"
|
|
STR_SLEEPING: "SLAAPSTAND"
|
|
STR_ENTERING_SLEEP: "Gaat in slaapstand"
|
|
STR_BROWSE_FILES: "Bestanden bladeren"
|
|
STR_FILE_TRANSFER: "Bestandsoverdracht"
|
|
STR_SETTINGS_TITLE: "Instellingen"
|
|
STR_CONTINUE_READING: "Verder lezen"
|
|
STR_NO_OPEN_BOOK: "Geen geopend boek"
|
|
STR_START_READING: "Begin hieronder met lezen"
|
|
STR_NO_FILES_FOUND: "Geen bestanden gevonden"
|
|
STR_SELECT_CHAPTER: "Selecteer hoofdstuk"
|
|
STR_NO_CHAPTERS: "Geen hoofdstukken"
|
|
STR_END_OF_BOOK: "Einde van boek"
|
|
STR_EMPTY_CHAPTER: "Leeg hoofdstuk"
|
|
STR_INDEXING: "Indexeren"
|
|
STR_MEMORY_ERROR: "Geheugenfout"
|
|
STR_PAGE_LOAD_ERROR: "Fout bij laden pagina"
|
|
STR_EMPTY_FILE: "Leeg bestand"
|
|
STR_OUT_OF_BOUNDS: "Buiten bereik"
|
|
STR_LOADING: "Laden..."
|
|
STR_LOADING_POPUP: "Laden"
|
|
STR_WIFI_NETWORKS: "Wifi-netwerken"
|
|
STR_NO_NETWORKS: "Geen netwerken gevonden"
|
|
STR_NETWORKS_FOUND: "%zu netwerken gevonden"
|
|
STR_SCANNING: "Scannen..."
|
|
STR_CONNECTING: "Verbinden..."
|
|
STR_CONNECTED: "Verbonden!"
|
|
STR_CONNECTION_FAILED: "Verbinding mislukt"
|
|
STR_FORGET_NETWORK: "Netwerk vergeten?"
|
|
STR_SAVE_PASSWORD: "Wachtwoord opslaan voor volgende keer?"
|
|
STR_PRESS_OK_SCAN: "Druk op OK om opnieuw te scannen"
|
|
STR_JOIN_NETWORK: "Verbind met netwerk"
|
|
STR_CREATE_HOTSPOT: "Hotspot maken"
|
|
STR_JOIN_DESC: "Verbind met een bestaand wifi-netwerk"
|
|
STR_HOTSPOT_DESC: "Maak een wifi-netwerk waar anderen mee kunnen verbinden"
|
|
STR_STARTING_HOTSPOT: "Hotspot starten..."
|
|
STR_HOTSPOT_MODE: "Hotspot-modus"
|
|
STR_CONNECT_WIFI_HINT: "Verbind je apparaat met dit wifi-netwerk"
|
|
STR_OPEN_URL_HINT: "Open deze URL in je browser"
|
|
STR_OR_HTTP_PREFIX: "of http://"
|
|
STR_SCAN_QR_HINT: "of scan de QR-code met je telefoon:"
|
|
STR_CALIBRE_WIRELESS: "Calibre Wireless"
|
|
STR_CALIBRE_WEB_URL: "OPDS URL"
|
|
STR_NETWORK_LEGEND: "* = Beveiligd | + = Opgeslagen"
|
|
STR_MAC_ADDRESS: "MAC-adres:"
|
|
STR_CHECKING_WIFI: "Wifi controleren..."
|
|
STR_ENTER_WIFI_PASSWORD: "Voer wifi-wachtwoord in"
|
|
STR_TO_PREFIX: "met "
|
|
STR_CALIBRE_RECEIVING: "Bezig met ontvangen: "
|
|
STR_CALIBRE_RECEIVED: "Ontvangen: "
|
|
STR_CALIBRE_INSTRUCTION_1: "1) Installeer CrossPoint Reader plugin"
|
|
STR_CALIBRE_INSTRUCTION_2: "2) Gebruik hetzelfde wifi-netwerk"
|
|
STR_CALIBRE_INSTRUCTION_3: "3) In Calibre: \"Send to device\""
|
|
STR_CALIBRE_INSTRUCTION_4: "\"Houd dit scherm open tijdens verzenden\""
|
|
STR_CAT_DISPLAY: "Scherm"
|
|
STR_CAT_READER: "Lezer"
|
|
STR_CAT_CONTROLS: "Bediening"
|
|
STR_CAT_SYSTEM: "Systeem"
|
|
STR_SLEEP_SCREEN: "Slaapscherm"
|
|
STR_SLEEP_COVER_MODE: "Slaapscherm omslag-modus"
|
|
STR_HIDE_BATTERY: "Batterij % verbergen"
|
|
STR_EXTRA_SPACING: "Extra regelafstand alinea"
|
|
STR_TEXT_AA: "Tekst Anti-Aliasing"
|
|
STR_IMAGES: "Afbeeldingen"
|
|
STR_IMAGES_DISPLAY: "Weergave"
|
|
STR_IMAGES_PLACEHOLDER: "Placeholder"
|
|
STR_IMAGES_SUPPRESS: "Verbergen"
|
|
STR_SHORT_PWR_BTN: "Korte klik aan/uit-knop"
|
|
STR_ORIENTATION: "Leesstand"
|
|
STR_SIDE_BTN_LAYOUT: "Indeling zijknoppen (lezer)"
|
|
STR_LONG_PRESS_SKIP: "Hoofdstuk overslaan (lang indrukken)"
|
|
STR_FONT_FAMILY: "Lettertype lezer"
|
|
STR_FONT_SIZE: "Lettergrootte lezer"
|
|
STR_LINE_SPACING: "Regelafstand lezer"
|
|
STR_SCREEN_MARGIN: "Schermmarge lezer"
|
|
STR_PARA_ALIGNMENT: "Uitlijning alinea lezer"
|
|
STR_HYPHENATION: "Woordafbreking"
|
|
STR_TIME_TO_SLEEP: "Tijd tot slaapstand"
|
|
STR_SHOW_HIDDEN_FILES: "Toon verborgen bestanden"
|
|
STR_REFRESH_FREQ: "Verversingsfrequentie"
|
|
STR_KOREADER_SYNC: "KOReader Sync"
|
|
STR_CHECK_UPDATES: "Controleren op updates"
|
|
STR_LANGUAGE: "Taal"
|
|
STR_CLEAR_READING_CACHE: "Leescache wissen"
|
|
STR_USERNAME: "Gebruikersnaam"
|
|
STR_PASSWORD: "Wachtwoord"
|
|
STR_SYNC_SERVER_URL: "Sync-server URL"
|
|
STR_DOCUMENT_MATCHING: "Documentkoppeling"
|
|
STR_AUTHENTICATE: "Authenticatie"
|
|
STR_KOREADER_USERNAME: "KOReader gebruikersnaam"
|
|
STR_KOREADER_PASSWORD: "KOReader wachtwoord"
|
|
STR_FILENAME: "Bestandsnaam"
|
|
STR_BINARY: "Binair"
|
|
STR_SET_CREDENTIALS_FIRST: "Stel eerst inloggegevens in"
|
|
STR_WIFI_CONN_FAILED: "Wifi-verbinding mislukt"
|
|
STR_AUTHENTICATING: "Authenticeren..."
|
|
STR_AUTH_SUCCESS: "Authenticatie geslaagd!"
|
|
STR_KOREADER_AUTH: "KOReader-authenticatie"
|
|
STR_SYNC_READY: "KOReader sync is klaar voor gebruik"
|
|
STR_AUTH_FAILED: "Authenticatie mislukt"
|
|
STR_DONE: "Klaar"
|
|
STR_CLEAR_CACHE_WARNING_1: "Dit wist alle gecachte boekgegevens."
|
|
STR_CLEAR_CACHE_WARNING_2: "Alle leesvoortgang gaat verloren!"
|
|
STR_CLEAR_CACHE_WARNING_3: "Boeken moeten opnieuw worden geïndexeerd"
|
|
STR_CLEAR_CACHE_WARNING_4: "wanneer ze weer worden geopend."
|
|
STR_CLEARING_CACHE: "Cache wissen..."
|
|
STR_CACHE_CLEARED: "Cache gewist"
|
|
STR_ITEMS_REMOVED: "items verwijderd"
|
|
STR_FAILED_LOWER: "mislukt"
|
|
STR_CLEAR_CACHE_FAILED: "Cache wissen mislukt"
|
|
STR_CHECK_SERIAL_OUTPUT: "Check seriële output voor details"
|
|
STR_DARK: "Donker"
|
|
STR_LIGHT: "Licht"
|
|
STR_CUSTOM: "Aangepast"
|
|
STR_COVER: "Omslag"
|
|
STR_NONE_OPT: "Geen"
|
|
STR_FIT: "Passend"
|
|
STR_CROP: "Bijsnijden"
|
|
STR_NEVER: "Nooit"
|
|
STR_IN_READER: "In lezer"
|
|
STR_ALWAYS: "Altijd"
|
|
STR_IGNORE: "Negeren"
|
|
STR_SLEEP: "Slaap"
|
|
STR_PAGE_TURN: "Pagina omslaan"
|
|
STR_PORTRAIT: "Staand"
|
|
STR_LANDSCAPE_CW: "Liggend (rechtsom)"
|
|
STR_INVERTED: "Omgekeerd"
|
|
STR_LANDSCAPE_CCW: "Liggend (linksom)"
|
|
STR_PREV_NEXT: "Vorige/Volgende"
|
|
STR_NEXT_PREV: "Volgende/Vorige"
|
|
STR_BOOKERLY: "Bookerly"
|
|
STR_NOTO_SANS: "Noto Sans"
|
|
STR_OPEN_DYSLEXIC: "Open Dyslexic"
|
|
STR_SMALL: "Klein"
|
|
STR_MEDIUM: "Gemiddeld"
|
|
STR_LARGE: "Groot"
|
|
STR_X_LARGE: "Extra groot"
|
|
STR_TIGHT: "Smal"
|
|
STR_NORMAL: "Normaal"
|
|
STR_WIDE: "Breed"
|
|
STR_JUSTIFY: "Uitvullen"
|
|
STR_ALIGN_LEFT: "Links"
|
|
STR_CENTER: "Centreren"
|
|
STR_ALIGN_RIGHT: "Rechts"
|
|
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 pagina"
|
|
STR_PAGES_5: "5 pagina's"
|
|
STR_PAGES_10: "10 pagina's"
|
|
STR_PAGES_15: "15 pagina's"
|
|
STR_PAGES_30: "30 pagina's"
|
|
STR_UPDATE: "Update"
|
|
STR_CHECKING_UPDATE: "Controleren op update..."
|
|
STR_NEW_UPDATE: "Nieuwe update beschikbaar!"
|
|
STR_CURRENT_VERSION: "Huidige versie: "
|
|
STR_NEW_VERSION: "Nieuwe versie: "
|
|
STR_UPDATING: "Updaten..."
|
|
STR_NO_UPDATE: "Geen update beschikbaar"
|
|
STR_UPDATE_FAILED: "Update mislukt"
|
|
STR_UPDATE_COMPLETE: "Update voltooid"
|
|
STR_POWER_ON_HINT: "Houd de aan/uit-knop ingedrukt om in te schakelen"
|
|
STR_NO_ENTRIES: "Geen items gevonden"
|
|
STR_DOWNLOADING: "Downloaden..."
|
|
STR_DOWNLOAD_FAILED: "Download mislukt"
|
|
STR_ERROR_MSG: "Fout:"
|
|
STR_UNNAMED: "Naamloos"
|
|
STR_NO_SERVER_URL: "Geen server-URL ingesteld"
|
|
STR_FETCH_FEED_FAILED: "Ophalen feed mislukt"
|
|
STR_PARSE_FEED_FAILED: "Verwerken feed mislukt"
|
|
STR_NETWORK_PREFIX: "Netwerk: "
|
|
STR_IP_ADDRESS_PREFIX: "IP-adres: "
|
|
STR_ERROR_GENERAL_FAILURE: "Fout: Algemene fout"
|
|
STR_ERROR_NETWORK_NOT_FOUND: "Fout: Netwerk niet gevonden"
|
|
STR_ERROR_CONNECTION_TIMEOUT: "Fout: Verbindingstime-out"
|
|
STR_SD_CARD: "SD-kaart"
|
|
STR_BACK: "« Terug"
|
|
STR_EXIT: "« Sluit"
|
|
STR_HOME: "« Home"
|
|
STR_SELECT: "Kies"
|
|
STR_SELECTED: "Geselecteerd"
|
|
STR_TOGGLE: "Wissel"
|
|
STR_CONFIRM: "Bevestig"
|
|
STR_CANCEL: "Annuleer"
|
|
STR_CONNECT: "Verbind"
|
|
STR_OPEN: "Open"
|
|
STR_DOWNLOAD: "Download"
|
|
STR_RETRY: "Opnieuw"
|
|
STR_YES: "Ja"
|
|
STR_NO: "Nee"
|
|
STR_SHOW: "Toon"
|
|
STR_HIDE: "Verberg"
|
|
STR_STATE_ON: "AAN"
|
|
STR_STATE_OFF: "UIT"
|
|
STR_NOT_SET: "Niet ingesteld"
|
|
STR_DIR_LEFT: "Links"
|
|
STR_DIR_RIGHT: "Rechts"
|
|
STR_DIR_UP: "Omhoog"
|
|
STR_DIR_DOWN: "Omlaag"
|
|
STR_OK_BUTTON: "OK"
|
|
STR_SLEEP_COVER_FILTER: "Slaapscherm omslag-filter"
|
|
STR_FILTER_CONTRAST: "Contrast"
|
|
STR_CUSTOMISE_STATUS_BAR: "Statusbalk aanpassen"
|
|
STR_CHAPTER_PAGE_COUNT: "Paginanummering hoofdstuk"
|
|
STR_BOOK_PROGRESS_PERCENTAGE: "Percentage voortgang boek"
|
|
STR_PROGRESS_BAR: "Voortgangsbalk"
|
|
STR_PROGRESS_BAR_THICKNESS: "Dikte voortgangsbalk"
|
|
STR_PROGRESS_BAR_THIN: "Dun"
|
|
STR_PROGRESS_BAR_MEDIUM: "Gemiddeld"
|
|
STR_PROGRESS_BAR_THICK: "Dik"
|
|
STR_BOOK: "Boek"
|
|
STR_CHAPTER: "Hoofdstuk"
|
|
STR_EXAMPLE_CHAPTER: "Hoofdstuk 21"
|
|
STR_EXAMPLE_BOOK: "Boektitel"
|
|
STR_PREVIEW: "Voorbeeld"
|
|
STR_TITLE: "Titel"
|
|
STR_BATTERY: "Batterij"
|
|
STR_UI_THEME: "UI Thema"
|
|
STR_THEME_CLASSIC: "Klassiek"
|
|
STR_THEME_LYRA: "Lyra"
|
|
STR_THEME_LYRA_EXTENDED: "Lyra Uitgebreid"
|
|
STR_SUNLIGHT_FADING_FIX: "Zonlicht vervaging fix"
|
|
STR_REMAP_FRONT_BUTTONS: "Knoppen voorzijde wijzigen"
|
|
STR_OPDS_BROWSER: "OPDS-browser"
|
|
STR_COVER_CUSTOM: "Omslag + Aangepast"
|
|
STR_MENU_RECENT_BOOKS: "Recente boeken"
|
|
STR_NO_RECENT_BOOKS: "Geen recente boeken"
|
|
STR_CALIBRE_DESC: "Gebruik Calibre draadloze overdracht"
|
|
STR_FORGET_AND_REMOVE: "Netwerk vergeten en wachtwoord verwijderen?"
|
|
STR_FORGET_BUTTON: "Vergeet"
|
|
STR_CALIBRE_STARTING: "Calibre starten..."
|
|
STR_CALIBRE_SETUP: "Installatie"
|
|
STR_CALIBRE_STATUS: "Status"
|
|
STR_CLEAR_BUTTON: "Wis"
|
|
STR_DEFAULT_VALUE: "Standaard"
|
|
STR_REMAP_PROMPT: "Druk op een knop voorop voor elke functie"
|
|
STR_UNASSIGNED: "Niet toegewezen"
|
|
STR_ALREADY_ASSIGNED: "Al toegewezen"
|
|
STR_REMAP_RESET_HINT: "Zijknop Omhoog: Standaardindeling herstellen"
|
|
STR_REMAP_CANCEL_HINT: "Zijknop Omlaag: Toewijzen annuleren"
|
|
STR_HW_BACK_LABEL: "Terug (1e knop)"
|
|
STR_HW_CONFIRM_LABEL: "Bevestig (2e knop)"
|
|
STR_HW_LEFT_LABEL: "Links (3e knop)"
|
|
STR_HW_RIGHT_LABEL: "Rechts (4e knop)"
|
|
STR_GO_TO_PERCENT: "Ga naar %"
|
|
STR_GO_HOME_BUTTON: "Naar Home"
|
|
STR_SYNC_PROGRESS: "Voortgang synchroniseren"
|
|
STR_DELETE_CACHE: "Boekcache verwijderen"
|
|
STR_DELETE: "Verwijder"
|
|
STR_DISPLAY_QR: "Pagina als QR tonen"
|
|
STR_CHAPTER_PREFIX: "Hoofdstuk: "
|
|
STR_PAGES_SEPARATOR: " pagina's | "
|
|
STR_BOOK_PREFIX: "Boek: "
|
|
STR_CALIBRE_URL_HINT: "Voeg voor Calibre /opds toe aan de URL"
|
|
STR_PERCENT_STEP_HINT: "Links/Rechts: 1% Omhoog/Omlaag: 10%"
|
|
STR_SYNCING_TIME: "Tijd synchroniseren..."
|
|
STR_CALC_HASH: "Document-hash berekenen..."
|
|
STR_HASH_FAILED: "Document-hash berekenen mislukt"
|
|
STR_FETCH_PROGRESS: "Voortgang ophalen..."
|
|
STR_UPLOAD_PROGRESS: "Voortgang uploaden..."
|
|
STR_NO_CREDENTIALS_MSG: "Geen inloggegevens ingesteld"
|
|
STR_KOREADER_SETUP_HINT: "Stel KOReader-account in bij Instellingen"
|
|
STR_PROGRESS_FOUND: "Voortgang gevonden!"
|
|
STR_REMOTE_LABEL: "Extern:"
|
|
STR_LOCAL_LABEL: "Lokaal:"
|
|
STR_PAGE_OVERALL_FORMAT: "Pagina %d, %.2f%% totaal"
|
|
STR_PAGE_TOTAL_OVERALL_FORMAT: "Pagina %d/%d, %.2f%% totaal"
|
|
STR_DEVICE_FROM_FORMAT: " Van: %s"
|
|
STR_APPLY_REMOTE: "Externe voortgang toepassen"
|
|
STR_UPLOAD_LOCAL: "Lokale voortgang uploaden"
|
|
STR_NO_REMOTE_MSG: "Geen externe voortgang gevonden"
|
|
STR_UPLOAD_PROMPT: "Huidige positie uploaden?"
|
|
STR_UPLOAD_SUCCESS: "Voortgang geüpload!"
|
|
STR_SYNC_FAILED_MSG: "Sync mislukt"
|
|
STR_SECTION_PREFIX: "Sectie "
|
|
STR_UPLOAD: "Uploaden"
|
|
STR_BOOK_S_STYLE: "Stijl van boek"
|
|
STR_EMBEDDED_STYLE: "Ingebedde stijl"
|
|
STR_OPDS_SERVER_URL: "OPDS-server URL"
|
|
STR_FOOTNOTES: "Voetnoten"
|
|
STR_NO_FOOTNOTES: "Geen voetnoten op deze pagina"
|
|
STR_LINK: "[link]"
|
|
STR_SCREENSHOT_BUTTON: "Screenshot maken"
|
|
STR_AUTO_TURN_ENABLED: "Automatisch omslaan ingeschakeld: "
|
|
STR_AUTO_TURN_PAGES_PER_MIN: "Autom. omslaan (pagina's per minuut)" |