## 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>
385 lines
16 KiB
YAML
385 lines
16 KiB
YAML
_language_name: "Español"
|
|
_language_code: "ES"
|
|
_order: "1"
|
|
|
|
STR_CROSSPOINT: "CrossPoint"
|
|
STR_BOOTING: "Iniciando..."
|
|
STR_SLEEPING: "Suspendido"
|
|
STR_ENTERING_SLEEP: "Entrando en suspensión"
|
|
STR_BROWSE_FILES: "Explorador de archivos"
|
|
STR_FILE_TRANSFER: "Transferir archivos"
|
|
STR_SETTINGS_TITLE: "Ajustes"
|
|
STR_CONTINUE_READING: "Continuar leyendo"
|
|
STR_NO_OPEN_BOOK: "No hay libros abiertos"
|
|
STR_START_READING: "Comenzar a leer"
|
|
STR_NO_FILES_FOUND: "No se encontraron archivos"
|
|
STR_SELECT_CHAPTER: "Seleccionar capítulo"
|
|
STR_NO_CHAPTERS: "Sin capítulos"
|
|
STR_END_OF_BOOK: "Fin del libro"
|
|
STR_EMPTY_CHAPTER: "Capítulo vacío"
|
|
STR_INDEXING: "Indexando"
|
|
STR_MEMORY_ERROR: "Error de memoria"
|
|
STR_PAGE_LOAD_ERROR: "Error al cargar la página"
|
|
STR_EMPTY_FILE: "Archivo vacío"
|
|
STR_OUT_OF_BOUNDS: "Fuera de rango"
|
|
STR_LOADING: "Cargando..."
|
|
STR_LOADING_POPUP: "Cargando"
|
|
STR_WIFI_NETWORKS: "Redes Wi-Fi"
|
|
STR_NO_NETWORKS: "No hay redes disponibles"
|
|
STR_NETWORKS_FOUND: "%zu red(es) encontrada(s)"
|
|
STR_SCANNING: "Buscando..."
|
|
STR_CONNECTING: "Conectando..."
|
|
STR_CONNECTED: "¡Conectado!"
|
|
STR_CONNECTION_FAILED: "Error de conexión"
|
|
STR_FORGET_NETWORK: "¿Olvidar la red?"
|
|
STR_SAVE_PASSWORD: "¿Guardar contraseña?"
|
|
STR_PRESS_OK_SCAN: "Pulse OK para buscar de nuevo"
|
|
STR_JOIN_NETWORK: "Unirse a una red"
|
|
STR_CREATE_HOTSPOT: "Crear punto de acceso"
|
|
STR_JOIN_DESC: "Conectarse a una red Wi-Fi existente"
|
|
STR_HOTSPOT_DESC: "Crear una red Wi-Fi para que otros se conecten"
|
|
STR_STARTING_HOTSPOT: "Iniciando punto de acceso..."
|
|
STR_HOTSPOT_MODE: "Modo punto de acceso"
|
|
STR_CONNECT_WIFI_HINT: "Conecte su dispositivo a esta red Wi-Fi"
|
|
STR_OPEN_URL_HINT: "Abra esta dirección en su navegador"
|
|
STR_OR_HTTP_PREFIX: "o http://"
|
|
STR_SCAN_QR_HINT: "o escanee el código QR con su móvil:"
|
|
STR_CALIBRE_WIRELESS: "Calibre inalámbrico"
|
|
STR_NETWORK_LEGEND: "* (Con contraseña) | + (Guardada)"
|
|
STR_MAC_ADDRESS: "Dirección MAC:"
|
|
STR_CHECKING_WIFI: "Verificando Wi-Fi..."
|
|
STR_ENTER_WIFI_PASSWORD: "Introduzca la contraseña del Wi-Fi"
|
|
STR_TO_PREFIX: "a "
|
|
STR_CALIBRE_RECEIVING: "Recibiendo: "
|
|
STR_CALIBRE_RECEIVED: "Recibido: "
|
|
STR_CALIBRE_INSTRUCTION_1: "1) Instale el complemento CrossPoint Reader"
|
|
STR_CALIBRE_INSTRUCTION_2: "2) Conéctese a la misma red Wi-Fi"
|
|
STR_CALIBRE_INSTRUCTION_3: "3) Desde Calibre, seleccione \"Enviar a dispositivo\""
|
|
STR_CALIBRE_INSTRUCTION_4: "\"Permanezca en esta pantalla mientras se envía\""
|
|
STR_CAT_DISPLAY: "Pantalla"
|
|
STR_CAT_READER: "Lector"
|
|
STR_CAT_CONTROLS: "Controles"
|
|
STR_CAT_SYSTEM: "Sistema"
|
|
STR_SLEEP_SCREEN: "Fondo de pantalla de suspensión"
|
|
STR_SLEEP_COVER_MODE: "Modo de pantalla de suspensión"
|
|
STR_HIDE_BATTERY: "Ocultar % de batería"
|
|
STR_EXTRA_SPACING: "Espaciado entre párrafos"
|
|
STR_TEXT_AA: "Suavizado de texto"
|
|
STR_IMAGES: "Imágenes"
|
|
STR_IMAGES_DISPLAY: "Mostrar"
|
|
STR_IMAGES_PLACEHOLDER: "Reemplazar"
|
|
STR_IMAGES_SUPPRESS: "Ocultar"
|
|
STR_SHORT_PWR_BTN: "Toque corto del encendido"
|
|
STR_ORIENTATION: "Orientación"
|
|
STR_SIDE_BTN_LAYOUT: "Función botones laterales (lector)"
|
|
STR_FRONT_BTN_FOLLOW_ORIENTATION: "Orientar botones frontales"
|
|
STR_LONG_PRESS_BEHAVIOR: "Al mantener pulsado un botón"
|
|
STR_LONG_PRESS_BEHAVIOR_OFF: "No hacer nada"
|
|
STR_LONG_PRESS_BEHAVIOR_SKIP: "Saltar capítulo"
|
|
STR_LONG_PRESS_BEHAVIOR_ORIENTATION: "Cambiar orient."
|
|
STR_LONG_PRESS_MENU: "Función de pulsación larga"
|
|
STR_FONT_PREVIEW_TEXT: "Benjamín pidió una bebida de kiwi y fresa. Noé, sin vergüenza, la más exquisita champaña del menú"
|
|
STR_FONT_FAMILY: "Tipografía"
|
|
STR_FONT_SIZE: "Tamaño"
|
|
STR_LINE_SPACING: "Interlineado"
|
|
STR_SCREEN_MARGIN: "Margen de lectura"
|
|
STR_PARA_ALIGNMENT: "Ajuste de párrafo"
|
|
STR_HYPHENATION: "División de palabras"
|
|
STR_TIME_TO_SLEEP: "Auto suspensión"
|
|
STR_SHOW_HIDDEN_FILES: "Mostrar archivos ocultos"
|
|
STR_REMOVE_READ_FROM_RECENTS: "Borrar libros leídos de la lista de recientes"
|
|
STR_MOVE_FINISHED_TO_READ: "Mover libros terminados a la carpeta Read"
|
|
STR_REFRESH_FREQ: "Frecuencia de refresco"
|
|
STR_KOREADER_SYNC: "Sincronización de KOReader"
|
|
STR_CHECK_UPDATES: "Verificar actualizaciones"
|
|
STR_LANGUAGE: "Idioma"
|
|
STR_CLEAR_READING_CACHE: "Borrar caché de lectura"
|
|
STR_USERNAME: "Usuario"
|
|
STR_PASSWORD: "Contraseña"
|
|
STR_SYNC_SERVER_URL: "URL del servidor de sinc."
|
|
STR_DOCUMENT_MATCHING: "Coincidencia de doc."
|
|
STR_AUTHENTICATE: "Autenticar"
|
|
STR_KOREADER_USERNAME: "Usuario de KOReader"
|
|
STR_KOREADER_PASSWORD: "Contraseña de KOReader"
|
|
STR_FILENAME: "Nombre de archivo"
|
|
STR_BINARY: "Binario"
|
|
STR_SET_CREDENTIALS_FIRST: "Configurar credenciales"
|
|
STR_WIFI_CONN_FAILED: "Fallo de conexión Wi-Fi"
|
|
STR_AUTHENTICATING: "Autenticando..."
|
|
STR_AUTH_SUCCESS: "¡Autenticación exitosa!"
|
|
STR_KOREADER_AUTH: "Autenticación KOReader"
|
|
STR_SYNC_READY: "La sincronización de KOReader está lista para usarse"
|
|
STR_AUTH_FAILED: "Error de autenticación"
|
|
STR_DONE: "Hecho"
|
|
STR_CLEAR_CACHE_WARNING_1: "Esto borrará todos los datos del libro en caché."
|
|
STR_CLEAR_CACHE_WARNING_2: "¡Se perderá todo el progreso de lectura!"
|
|
STR_CLEAR_CACHE_WARNING_3: "Los libros deberán ser reindexados"
|
|
STR_CLEAR_CACHE_WARNING_4: "cuando se vuelvan a abrir."
|
|
STR_CLEARING_CACHE: "Borrando caché..."
|
|
STR_CACHE_CLEARED: "Caché borrada"
|
|
STR_ITEMS_REMOVED: "elementos eliminados"
|
|
STR_FAILED_LOWER: "falló"
|
|
STR_CLEAR_CACHE_FAILED: "No se pudo borrar la caché"
|
|
STR_CHECK_SERIAL_OUTPUT: "Consulte los registros del puerto serie"
|
|
STR_DARK: "Oscuro"
|
|
STR_LIGHT: "Claro"
|
|
STR_CUSTOM: "Personalizado"
|
|
STR_COVER: "Portada"
|
|
STR_NONE_OPT: "Ninguno"
|
|
STR_FIT: "Ajustar"
|
|
STR_CROP: "Recortar"
|
|
STR_NEVER: "Nunca"
|
|
STR_IN_READER: "En el lector"
|
|
STR_ALWAYS: "Siempre"
|
|
STR_IGNORE: "Ignorar"
|
|
STR_SLEEP: "Suspender"
|
|
STR_PAGE_TURN: "Pasar página"
|
|
STR_FORCE_REFRESH: "Refrescar pant."
|
|
STR_PORTRAIT: "Vertical"
|
|
STR_LANDSCAPE_CW: "Horizontal (horario)"
|
|
STR_INVERTED: "Invertido"
|
|
STR_LANDSCAPE_CCW: "Horizontal (antihorario)"
|
|
STR_PREV_NEXT: "Ant./Sig."
|
|
STR_NEXT_PREV: "Sig./Ant."
|
|
STR_KOSYNC: "KOSync"
|
|
STR_BOOKMARK_OPTION: "Marcador"
|
|
STR_DISABLED: "Desactivados"
|
|
STR_NOTO_SERIF: "Noto Serif"
|
|
STR_NOTO_SANS: "Noto Sans"
|
|
STR_SMALL: "Pequeño"
|
|
STR_MEDIUM: "Mediano"
|
|
STR_LARGE: "Grande"
|
|
STR_X_LARGE: "Extra grande"
|
|
STR_TIGHT: "Estrecho"
|
|
STR_NORMAL: "Normal"
|
|
STR_WIDE: "Amplio"
|
|
STR_JUSTIFY: "Justificado"
|
|
STR_ALIGN_LEFT: "Izquierda"
|
|
STR_CENTER: "Centro"
|
|
STR_ALIGN_RIGHT: "Derecha"
|
|
STR_PAGES_1: "1 pág."
|
|
STR_PAGES_5: "5 pág."
|
|
STR_PAGES_10: "10 pág."
|
|
STR_PAGES_15: "15 pág."
|
|
STR_PAGES_30: "30 pág."
|
|
STR_UPDATE: "Actualizar"
|
|
STR_CHECKING_UPDATE: "Verificando actualización..."
|
|
STR_NEW_UPDATE: "¡Nueva actualización disponible!"
|
|
STR_CURRENT_VERSION: "Versión actual:"
|
|
STR_NEW_VERSION: "Nueva versión:"
|
|
STR_UPDATING: "Actualizando..."
|
|
STR_NO_UPDATE: "No hay actualizaciones disponibles"
|
|
STR_UPDATE_FAILED: "Fallo de actualización"
|
|
STR_UPDATE_COMPLETE: "Actualización completada"
|
|
STR_POWER_ON_HINT: "Reinicie manteniendo pulsado el encendido"
|
|
STR_RESTARTING_HINT: "Reiniciando... Si no se reinicia, mantenga pulsado el encendido unos segundos."
|
|
STR_NO_ENTRIES: "No se encontraron elementos"
|
|
STR_DOWNLOADING: "Descargando..."
|
|
STR_DOWNLOAD_FAILED: "Fallo de descarga"
|
|
STR_ERROR_MSG: "Error:"
|
|
STR_UNNAMED: "Sin nombre"
|
|
STR_HOLD_OPEN_TO_DELETE: "Mantenga pulsado Abrir para borrar"
|
|
STR_NO_SERVER_URL: "No se configuró URL de servidor"
|
|
STR_FETCH_FEED_FAILED: "Fallo al obtener el feed"
|
|
STR_PARSE_FEED_FAILED: "Fallo al procesar el feed"
|
|
STR_NEXT_PAGE: "Pág. siguiente »"
|
|
STR_PREV_PAGE: "« Pág. anterior"
|
|
STR_NETWORK_PREFIX: "Red: "
|
|
STR_IP_ADDRESS_PREFIX: "IP: "
|
|
STR_ERROR_GENERAL_FAILURE: "Error: Fallo general"
|
|
STR_ERROR_NETWORK_NOT_FOUND: "Error: Red no encontrada"
|
|
STR_ERROR_CONNECTION_TIMEOUT: "Error: Tiempo de conexión agotado"
|
|
STR_SD_CARD: "Tarjeta SD"
|
|
STR_BACK: "« Atrás"
|
|
STR_EXIT: "« Salir"
|
|
STR_HOME: "« Inicio"
|
|
STR_SELECT: "Selecc."
|
|
STR_SELECTED: "Seleccionado"
|
|
STR_TOGGLE: "Cambiar"
|
|
STR_TOGGLE_BOOKMARK: "Alternar marcador"
|
|
STR_CONFIRM: "Confirmar"
|
|
STR_CANCEL: "Cancelar"
|
|
STR_CONNECT: "Conectar"
|
|
STR_OPEN: "Abrir"
|
|
STR_DOWNLOAD: "Descargar"
|
|
STR_RETRY: "Reintentar"
|
|
STR_YES: "Sí"
|
|
STR_NO: "No"
|
|
STR_SHOW: "Mostrar"
|
|
STR_HIDE: "Ocultar"
|
|
STR_STATE_ON: "Activado"
|
|
STR_STATE_OFF: "Desactivado"
|
|
STR_NOT_SET: "No configurado"
|
|
STR_DIR_LEFT: "Izq."
|
|
STR_DIR_RIGHT: "Dcha."
|
|
STR_DIR_UP: "Subir"
|
|
STR_DIR_DOWN: "Bajar"
|
|
STR_OK_BUTTON: "OK"
|
|
STR_SLEEP_COVER_FILTER: "Filtro de pantalla de suspensión"
|
|
STR_FILTER_CONTRAST: "Contraste"
|
|
STR_CUSTOMISE_STATUS_BAR: "Personalizar barra de estado"
|
|
STR_CHAPTER_PAGE_COUNT: "Contador de pág. por cap."
|
|
STR_BOOK_PROGRESS_PERCENTAGE: "Porcentaje progreso libro"
|
|
STR_PROGRESS_BAR: "Barra de progreso"
|
|
STR_PROGRESS_BAR_THICKNESS: "Grosor de barra de progreso"
|
|
STR_PROGRESS_BAR_THIN: "Fino"
|
|
STR_PROGRESS_BAR_MEDIUM: "Medio"
|
|
STR_PROGRESS_BAR_THICK: "Ancho"
|
|
STR_BOOK: "Libro"
|
|
STR_CHAPTER: "Capítulo"
|
|
STR_EXAMPLE_CHAPTER: "Capítulo 21"
|
|
STR_EXAMPLE_BOOK: "Título del libro"
|
|
STR_PREVIEW: "Previsualización"
|
|
STR_TITLE: "Título"
|
|
STR_BATTERY: "Batería"
|
|
STR_XTC_STATUS_BAR: "Barra de estado de XTC"
|
|
STR_BOTTOM: "Abajo"
|
|
STR_TOP: "Arriba"
|
|
STR_CLOCK: "Reloj"
|
|
STR_CLOCK_UTC_OFFSET: "Desfase UTC del reloj"
|
|
STR_CLOCK_FORMAT: "Formato del reloj"
|
|
STR_CLOCK_FORMAT_24H: "24 horas"
|
|
STR_CLOCK_FORMAT_12H: "12 horas"
|
|
STR_CURRENT_TIME: "Hora actual:"
|
|
STR_NEXT_FIELD: "Siguiente"
|
|
STR_CLOCK_SYNC: "Sincronizar reloj"
|
|
STR_CLOCK_SYNC_NOW: "Sincronizar reloj ahora"
|
|
STR_CLOCK_SYNCING: "Sincronizando con NTP..."
|
|
STR_CLOCK_SYNC_OK: "Reloj sincronizado"
|
|
STR_CLOCK_SYNC_FAIL: "Falló la sincronización"
|
|
STR_CLOCK_SYNC_NO_WIFI: "Wi-Fi no conectado"
|
|
STR_CLOCK_SYNC_NO_WIFI_HINT: "Conéctese primero al Wi-Fi y vuelva a intentarlo."
|
|
STR_CLOCK_SYNCED: "Reloj sincronizado"
|
|
STR_UI_THEME: "Interfaz"
|
|
STR_THEME_CLASSIC: "Clásico"
|
|
STR_THEME_LYRA: "Lyra"
|
|
STR_THEME_ROUNDEDRAFF: "RoundedRaff"
|
|
STR_THEME_LYRA_EXTENDED: "Lyra Extendido"
|
|
STR_SUNLIGHT_FADING_FIX: "Corrección de desvanecimiento"
|
|
STR_QUICK_RESUME_TIMEOUT: "Reanudación rápida tras tiempo"
|
|
STR_REMAP_FRONT_BUTTONS: "Reconfigurar botones frontales"
|
|
STR_BOOKMARKS: "Marcadores"
|
|
STR_BOOKMARK_ADDED: "Marcador añadido."
|
|
STR_BOOKMARK_REMOVED: "Marcador eliminado."
|
|
STR_OPDS_BROWSER: "Navegador OPDS"
|
|
STR_SEARCH: "Buscar"
|
|
STR_COVER_CUSTOM: "Portada + Pers."
|
|
STR_QUICK_RESUME: "Reanudación rápida"
|
|
STR_MENU_RECENT_BOOKS: "Libros recientes"
|
|
STR_REMOVE_FROM_RECENTS: "¿Eliminar de Libros recientes?"
|
|
STR_NO_RECENT_BOOKS: "No hay libros recientes"
|
|
STR_CALIBRE_DESC: "Transferir contenido a este dispositivo"
|
|
STR_FORGET_AND_REMOVE: "¿Desea olvidar la red y la contraseña guardada?"
|
|
STR_FORGET_BUTTON: "Olvidar"
|
|
STR_CALIBRE_STARTING: "Iniciando Calibre..."
|
|
STR_CALIBRE_SETUP: "Configuración"
|
|
STR_CALIBRE_STATUS: "Estado"
|
|
STR_CLEAR_BUTTON: "Borrar"
|
|
STR_DEFAULT_VALUE: "Predeterminado"
|
|
STR_REMAP_PROMPT: "Pulse un botón frontal para cada función"
|
|
STR_UNASSIGNED: "Sin asignar"
|
|
STR_ALREADY_ASSIGNED: "Ya asignado"
|
|
STR_REMAP_RESET_HINT: "Botón lateral arriba: restablecer configuración"
|
|
STR_REMAP_CANCEL_HINT: "Botón lateral abajo: anular reconfiguración"
|
|
STR_HW_BACK_LABEL: "Atrás (primer botón)"
|
|
STR_HW_CONFIRM_LABEL: "Confirmar (segundo botón)"
|
|
STR_HW_LEFT_LABEL: "Izq. (tercer botón)"
|
|
STR_HW_RIGHT_LABEL: "Dcha. (cuarto botón)"
|
|
STR_GO_TO_PERCENT: "Ir a %"
|
|
STR_GO_HOME_BUTTON: "Volver al menú Inicio"
|
|
STR_SYNC_PROGRESS: "Sincronizar progreso de lectura"
|
|
STR_DELETE_CACHE: "Borrar caché del libro"
|
|
STR_DELETE: "Borrar"
|
|
STR_CONFIRM_DELETE_BOOKMARK: "¿Borrar este marcador?"
|
|
STR_DISPLAY_QR: "Mostrar página como QR"
|
|
STR_CHAPTER_PREFIX: "Cap.: "
|
|
STR_PAGES_SEPARATOR: " pág. | "
|
|
STR_BOOK_PREFIX: "Libro: "
|
|
STR_CALIBRE_URL_HINT: "Para Calibre, agregue /opds a su URL"
|
|
STR_PERCENT_STEP_HINT: "Izq./Dcha.: 1% | Subir/Bajar: 10%"
|
|
STR_SYNCING_TIME: "Tiempo de sincronización..."
|
|
STR_CALC_HASH: "Calculando hash del documento..."
|
|
STR_HASH_FAILED: "No se pudo calcular el hash del documento"
|
|
STR_FETCH_PROGRESS: "Recuperando progreso remoto..."
|
|
STR_UPLOAD_PROGRESS: "Subiendo progreso..."
|
|
STR_NO_CREDENTIALS_MSG: "No se han configurado credenciales"
|
|
STR_KOREADER_SETUP_HINT: "Configure una cuenta de KOReader en la configuración"
|
|
STR_PROGRESS_FOUND: "¡Progreso encontrado!"
|
|
STR_REMOTE_LABEL: "Remoto:"
|
|
STR_LOCAL_LABEL: "Local:"
|
|
STR_PAGE_OVERALL_FORMAT: "Página %d, %.2f%% completado"
|
|
STR_PAGE_TOTAL_OVERALL_FORMAT: "Página %d / %d, %.2f%% completado"
|
|
STR_DEVICE_FROM_FORMAT: " De: %s"
|
|
STR_APPLY_REMOTE: "Aplicar progreso remoto"
|
|
STR_UPLOAD_LOCAL: "Subir progreso local"
|
|
STR_NO_REMOTE_MSG: "No se encontró progreso remoto"
|
|
STR_UPLOAD_PROMPT: "¿Subir posición actual?"
|
|
STR_UPLOAD_SUCCESS: "¡Progreso subido!"
|
|
STR_SYNC_FAILED_MSG: "Fallo de sincronización"
|
|
STR_SAVE_PROGRESS_FAILED: "No se pudo guardar el progreso"
|
|
STR_SECTION_PREFIX: "Secc.:"
|
|
STR_UPLOAD: "Subir"
|
|
STR_BOOK_S_STYLE: "Estilo del libro"
|
|
STR_EMBEDDED_STYLE: "Estilo integrado"
|
|
STR_FOCUS_READING: "Lectura enfocada"
|
|
STR_OPDS_SERVER_URL: "URL del servidor OPDS"
|
|
STR_PWR_BTN_FOOTNOTE_BACK: "Retorno rápido desde las notas al pie"
|
|
STR_SET_SLEEP_COVER: "Pant. sus."
|
|
STR_FOOTNOTES: "Notas al pie"
|
|
STR_NO_FOOTNOTES: "No hay notas al pie de esta página"
|
|
STR_LINK: "[enlace]"
|
|
STR_SLEEP_TIMER_VALUE_FORMAT: "%u min."
|
|
STR_SLEEP_NEVER: "Nunca"
|
|
STR_SLEEP_TIMER_STEP_HINT: "Izq./Dcha.: 1 min. Subir/Bajar: 5 min."
|
|
STR_SCREENSHOT_BUTTON: "Tomar captura de pantalla"
|
|
STR_ADD_SERVER: "Agregar servidor"
|
|
STR_SERVER_NAME: "Nombre de servidor"
|
|
STR_NO_SERVERS: "No se configuraron servidores OPDS"
|
|
STR_DELETE_SERVER: "Borrar servidor"
|
|
STR_OPDS_SERVERS: "Servidores OPDS"
|
|
STR_AUTO_TURN_ENABLED: "Avance activado: "
|
|
STR_AUTO_TURN_PAGES_PER_MIN: "Avance auto. (pág./min)"
|
|
STR_MANAGE_FONTS: "Gestionar tipografías"
|
|
STR_FONT_BROWSER: "Navegador de tipografías"
|
|
STR_LOADING_FONT_LIST: "Cargando lista de tipografías..."
|
|
STR_NO_FONTS_AVAILABLE: "No hay tipografías disponibles"
|
|
STR_FONT_INSTALLED: "¡Se instaló la tipografía!"
|
|
STR_FONT_INSTALL_FAILED: "Falló la instalación de tipografía"
|
|
STR_INSTALLED: "Instalada"
|
|
STR_DOWNLOAD_ALL: "Descargar todas"
|
|
STR_UPDATE_ALL: "Actualizar todas"
|
|
STR_UPDATE_AVAILABLE: "Actualizar"
|
|
STR_CRASH_TITLE: "Fallo del sistema"
|
|
STR_CRASH_DESCRIPTION: "Se guardó un informe detallado en crash_report.txt. Inclúyalo al avisar sobre el error."
|
|
STR_CRASH_REASON: "Razón del fallo:"
|
|
STR_CRASH_NO_REASON: "(No se registró una razón)."
|
|
STR_TILT_PAGE_TURN: "Pasar página inclinando"
|
|
STR_KB_HINT_MOVE_CURSOR: "Pulse IZQ. o DCHA. para mover el cursor"
|
|
STR_KB_HINT_RETURN_CURSOR: "Pulse IZQ. para volver a la posición del cursor"
|
|
STR_KB_HINT_HIDE_PASSWORD: "Pulse DCHA., luego [***] para ocultar la contraseña"
|
|
STR_KB_HINT_SHOW_PASSWORD: "Pulse DCHA., luego [abc] para mostrar la contraseña"
|
|
STR_KB_HINT_TOGGLE_HIDE_PASSWORD: "Pulse [***] para ocultar la contraseña"
|
|
STR_KB_HINT_TOGGLE_SHOW_PASSWORD: "Pulse [abc] para mostrar la contraseña"
|
|
STR_KB_HINT_EDIT_ENTRY: "Mantenga SUBIR para editar la entrada"
|
|
STR_KB_TIPS: "Consejos: "
|
|
STR_KB_HINT_RETURN_KEYBOARD: "Pulse BAJAR para volver al teclado"
|
|
STR_KB_HINT_EXIT_URL_MODE: "Pulse ABC para salir del modo URL"
|
|
STR_KB_HINT_CLEAR_TEXT: "Mantenga RETROCESO para borrar todo"
|
|
STR_KB_HINT_SECONDARY_CHAR: "Mantenga SELECC. para otros caracteres"
|
|
STR_KB_HINT_UPPER_SECONDARY: "Mantenga SELECC. para MAYÚS./otros caracteres"
|
|
STR_KB_HINT_LOWER_SECONDARY: "Mantenga SELECC. para minús./otros caracteres"
|
|
STR_KB_HINT_URL_SNIPPETS: "Pulse URL para ingresar fragmentos"
|
|
STR_SD_FIRMWARE_UPDATE: "Actualizar firmware por tarj. SD"
|
|
STR_SELECT_FIRMWARE_FILE: "Elija el archivo de firmware (.bin)"
|
|
STR_NO_BIN_FILES: "No se encontraron archivos .bin"
|
|
STR_VALIDATING_FIRMWARE: "Validando el firmware..."
|
|
STR_INVALID_FIRMWARE: "Archivo de firmware no válido"
|
|
STR_FIRMWARE_TOO_LARGE: "Firmware demasiado grande p/la partición"
|
|
STR_FIRMWARE_TOO_SMALL: "Firmware demasiado pequeño"
|
|
STR_FIRMWARE_UPDATE_PROMPT: "¿Actualizar el firmware?"
|
|
STR_FIRMWARE_FILE_OPEN_FAILED: "No se puede abrir el archivo"
|
|
STR_FIRMWARE_WRITE_FAILED: "Falló la escritura del firmware"
|
|
STR_FIRMWARE_UPDATE_DO_NOT_POWER_OFF: "¡No apague el dispositivo!"
|
|
STR_RECOVERY_MODE: "Modo de recuperación"
|
|
STR_RECOVERY_MODE_HINT: "Ponga firmware.bin en la raíz de la tarj. SD y selecciónelo"
|