{
  "dz.ab.another": "Ocultar otra foto",
  "dz.ab.benefit": "Desenfoca caras, personas o cualquier cosa sensible en una foto antes de compartirla — en tu dispositivo.",
  "dz.ab.blur": "Desenfoque",
  "dz.ab.blurFallback": "Tu navegador no admite el desenfoque — se usó pixelado (tu imagen sigue completamente oculta).",
  "dz.ab.boxCount": "{n} recuadro(s) marcado(s)",
  "dz.ab.clearAll": "Borrar todo",
  "dz.ab.detectFailed": "La detección no funcionó — aún puedes añadir recuadros a mano.",
  "dz.ab.detectNone": "No se detectó ninguna persona — añade recuadros a mano.",
  "dz.ab.detectNote": "Detecta personas con un modelo de uso general — los recuadros cubren a la persona entera, no solo la cara. Dibuja tus propios recuadros para ocultar solo la cara con precisión.",
  "dz.ab.detectVerb": "Detectar personas (beta)",
  "dz.ab.detecting": "Detectando personas…",
  "dz.ab.downscaled": "Foto grande reducida a 4096 px.",
  "dz.ab.drawHint": "Arrastra sobre la foto para dibujar un recuadro encima de lo que quieras ocultar. Arrastra el recuadro para moverlo, su esquina para redimensionarlo, o toca × para quitarlo.",
  "dz.ab.drop": "Suelta una foto, o toca para elegir",
  "dz.ab.editAgain": "Volver a editar los recuadros",
  "dz.ab.engineHint": "motor de ~43 MB",
  "dz.ab.failed": "Eso no funcionó — prueba con otra foto.",
  "dz.ab.name": "Desenfoque automático",
  "dz.ab.pageTitle": "Desenfoque automático — Herramientas Dzzz",
  "dz.ab.pixelate": "Pixelado",
  "dz.ab.redactVerb": "Aplicar la ocultación",
  "dz.ab.removeBox": "Quitar recuadro",
  "dz.ab.resultNote": "Imagen ocultada — las zonas marcadas quedan desenfocadas de forma permanente y fusionadas en la imagen.",
  "dz.ab.seo": "Desenfoca o pixela caras, personas o cualquier cosa sensible en una foto antes de compartirla — un modelo de detección de objetos que corre en tu dispositivo puede marcar personas automáticamente, y siempre puedes dibujar, mover, redimensionar o quitar recuadros a mano. No se sube nada; la imagen ocultada se fusiona y se guarda directamente desde tu dispositivo. Sin subidas, sin cuenta.",
  "dz.ab.styleLabel": "Estilo de ocultación",
  "dz.ab.wasmWarn": "Tu dispositivo no admite WebGPU, así que la detección corre en un modo de compatibilidad más lento.",
  "dz.ab.working": "Aplicando la ocultación…",
  "dz.atext.alefMaqsura": "ى → ي",
  "dz.atext.benefit": "Números, diacríticos, contador, normalizar",
  "dz.atext.chars": "caracteres",
  "dz.atext.copied": "Copiado",
  "dz.atext.copy": "Copiar",
  "dz.atext.counter": "Contador",
  "dz.atext.diacritics": "Diacríticos",
  "dz.atext.encoding": "El árabe usa UCS-2 → 70 caracteres por SMS, 67 si van enlazados.",
  "dz.atext.input": "Texto",
  "dz.atext.name": "Utilidades de texto árabe",
  "dz.atext.normNote": "Para buscar y comparar — no para escritura formal.",
  "dz.atext.normalize": "Normalizar",
  "dz.atext.numerals": "Números",
  "dz.atext.pageDesc": "Convierte números y diacríticos árabes, cuenta caracteres y tuits — números árabe-índicos orientales, tashkil, longitud del mensaje y contador de tuits.",
  "dz.atext.pageTitle": "Utilidades de texto árabe — Herramientas Dzzz",
  "dz.atext.segments": "segmentos SMS",
  "dz.atext.seo": "Cuatro herramientas de texto árabe en una: convierte entre números árabe-índicos y occidentales, quita el tashkil, cuenta caracteres y palabras con un contador honesto de segmentos SMS en UCS-2 y un conteo ponderado de X/280, y normaliza las formas de las letras para buscar. Todo en tu dispositivo.",
  "dz.atext.stripHarakat": "Quitar los diacríticos",
  "dz.atext.stripTatweel": "Quitar el tatweel (ـ)",
  "dz.atext.taMarbuta": "ة → ه",
  "dz.atext.tagNew": "Nuevo",
  "dz.atext.toArabic": "A árabe-índicos (٠-٩)",
  "dz.atext.toWestern": "A occidentales (0-9)",
  "dz.atext.transforms": "Transformaciones — opcionales y en vivo",
  "dz.atext.tweet": "X / 280",
  "dz.atext.unifyAlef": "Unificar las formas del álif (أ إ آ → ا)",
  "dz.atext.words": "palabras",
  "dz.audio.addMore": "Añadir más archivos",
  "dz.audio.format": "Formato",
  "dz.audio.pageTitle": "Conversor de audio — Herramientas Dzzz",
  "dz.audio.verb": "Convertir",
  "dz.baloot.abnat": "أبناط",
  "dz.baloot.abnatAuto": "El resto: {n}",
  "dz.baloot.abnatEnter": "Escribe los أبناط",
  "dz.baloot.abnatOf": "أبناط de {team}",
  "dz.baloot.abnatOther": "أبناط del otro bando",
  "dz.baloot.abnatOutOf": "de {total}",
  "dz.baloot.abnatSplit": "{us} / {them} أبناط",
  "dz.baloot.abnatUnit": "أبناط",
  "dz.baloot.addRound": "Añadir una ronda",
  "dz.baloot.back": "Atrás",
  "dz.baloot.benefit": "Lleva la صكة: أبناط, مشاريع y las cuentas bien hechas.",
  "dz.baloot.bidder": "Comprador",
  "dz.baloot.bidderBadge": "comprador",
  "dz.baloot.bidderHint": "El bando que compró la ronda: llega a la marca o cae تحت.",
  "dz.baloot.bidderQuestion": "¿Quién compró la ronda?",
  "dz.baloot.cancel": "Cancelar",
  "dz.baloot.clearAll": "Borrar todo",
  "dz.baloot.clearAllConfirm": "Esto borra todo de este dispositivo: la partida, los nombres, los ajustes guardados y las estadísticas. No se puede deshacer.",
  "dz.baloot.clearAllDone": "Todo borrado.",
  "dz.baloot.close": "Cerrar",
  "dz.baloot.colDetail": "Detalle",
  "dz.baloot.colIndex": "#",
  "dz.baloot.colMode": "Modo",
  "dz.baloot.colScore": "Puntos",
  "dz.baloot.confirm": "Eliminar",
  "dz.baloot.conversionNote": "Los أبناط se dividen entre 10 y se redondean. El caso especial es la mitad exacta: en صن el 5 cuenta como uno, y en حكم cuenta como cero.",
  "dz.baloot.counted": "¿Quién contó?",
  "dz.baloot.countedHint": "En la mesa solo cuenta un bando; el resto se completa solo.",
  "dz.baloot.countedShort": "Contó",
  "dz.baloot.countedTeam": "Contó {team}",
  "dz.baloot.dataTitle": "Tus datos",
  "dz.baloot.deleteConfirm": "¿Eliminar esta ronda? Se recalcularán los dos totales.",
  "dz.baloot.deleteRound": "Eliminar la ronda",
  "dz.baloot.double": "Doble",
  "dz.baloot.double.double": "دبل (doble)",
  "dz.baloot.double.four": "فور (cuatro)",
  "dz.baloot.double.gahwa": "قهوة (gahwa)",
  "dz.baloot.double.none": "Ninguno",
  "dz.baloot.double.three": "ثري (tres)",
  "dz.baloot.doubleDouble": "دبل (doble)",
  "dz.baloot.doubleFactor": "×{n}",
  "dz.baloot.doubleFour": "فور (cuatro)",
  "dz.baloot.doubleGahwa": "قهوة (gahwa)",
  "dz.baloot.doubleHint": "El doble multiplica los puntos de la ronda.",
  "dz.baloot.doubleHokomOnly": "La escala en حكم: دبل, ثري, فور, قهوة.",
  "dz.baloot.doubleNone": "Ninguno",
  "dz.baloot.doubleQuestion": "¿Hubo doble?",
  "dz.baloot.doubleThree": "ثري (tres)",
  "dz.baloot.edit": "Editar",
  "dz.baloot.editHint": "Al editar se recalculan los dos totales a partir de todas las rondas.",
  "dz.baloot.editNames": "Editar los nombres",
  "dz.baloot.editRound": "Editar la ronda {n}",
  "dz.baloot.elapsed": "Duración {t}",
  "dz.baloot.errAbnat": "Escribe un número entre 0 y {max}.",
  "dz.baloot.errAbnatEmpty": "Escribe los أبناط del bando que contó.",
  "dz.baloot.errBidder": "Elige el bando comprador.",
  "dz.baloot.errCounted": "Elige quién contó.",
  "dz.baloot.errGeneric": "Revisa los datos: esta ronda no se puede puntuar.",
  "dz.baloot.errKaboot": "Un كبوت significa que todos los أبناط fueron a un solo bando.",
  "dz.baloot.errMode": "Elige صن o حكم.",
  "dz.baloot.errName": "Escribe un nombre de equipo.",
  "dz.baloot.errProjectMode": "{project} no se puede declarar en este modo.",
  "dz.baloot.errStorage": "No se pudo guardar en este dispositivo.",
  "dz.baloot.errTarget": "Escribe una meta mayor que cero.",
  "dz.baloot.export": "Exportar los datos",
  "dz.baloot.exportDone": "Exportado.",
  "dz.baloot.gahwaNote": "قهوة es lo más alto de la escala de dobles en حكم: quien gana esa ronda gana la صكة entera.",
  "dz.baloot.gahwaWon": "قهوة — la صكة entera es para {team}.",
  "dz.baloot.history": "Historial de rondas",
  "dz.baloot.historyEmpty": "Aún no hay rondas registradas.",
  "dz.baloot.historyHint": "Usa Editar en cualquier ronda para corregirla.",
  "dz.baloot.hundredOff": "No se juega",
  "dz.baloot.hundredOn": "Se juega",
  "dz.baloot.kaboot": "كبوت (Kaboot)",
  "dz.baloot.kabootBadge": "كبوت",
  "dz.baloot.kabootBy": "كبوت para {team}",
  "dz.baloot.kabootFixed": "Fija — 25 / 44",
  "dz.baloot.kabootHint": "Las ocho bazas para un solo bando.",
  "dz.baloot.kabootHokomValue": "25 en حكم",
  "dz.baloot.kabootMultiplier": "El doble de la ronda",
  "dz.baloot.kabootNone": "No",
  "dz.baloot.kabootNote": "El كبوت sustituye la puntuación de la ronda en vez de sumarse a ella: 25 en حكم, 44 en صن, más los مشاريع de ese bando.",
  "dz.baloot.kabootQuestion": "¿Fue كبوت?",
  "dz.baloot.kabootSunValue": "44 en صن",
  "dz.baloot.keep": "Conservarla",
  "dz.baloot.lastRound": "Última ronda",
  "dz.baloot.leading": "En cabeza",
  "dz.baloot.mode": "Modo",
  "dz.baloot.mode.hokom": "حكم (Hokom)",
  "dz.baloot.mode.sun": "صن (Sun)",
  "dz.baloot.modeHokom": "حكم (Hokom)",
  "dz.baloot.modeHokomHint": "El palo de triunfo lleva los valores de carta más altos.",
  "dz.baloot.modeHokomShort": "حكم",
  "dz.baloot.modeHokomTotal": "162 أبناط → 16 puntos",
  "dz.baloot.modeQuestion": "¿صن o حكم?",
  "dz.baloot.modeSun": "صن (Sun)",
  "dz.baloot.modeSunHint": "Sin palo de triunfo: todos los palos valen igual.",
  "dz.baloot.modeSunShort": "صن",
  "dz.baloot.modeSunTotal": "130 أبناط → 26 puntos",
  "dz.baloot.modeTotalAbnat": "{n} أبناط",
  "dz.baloot.modeTotalPoints": "{n} puntos",
  "dz.baloot.name": "Marcador de Baloot",
  "dz.baloot.namesHint": "Los nombres se recuerdan en este dispositivo para la próxima vez.",
  "dz.baloot.needs": "Necesita {n}",
  "dz.baloot.newGame": "Partida nueva",
  "dz.baloot.newGameConfirm": "¿Empezar una partida nueva? Se borra el marcador actual.",
  "dz.baloot.newGameHint": "Nombres nuevos, marcador vacío.",
  "dz.baloot.newRound": "Ronda nueva",
  "dz.baloot.next": "Siguiente",
  "dz.baloot.noRounds": "Aún no hay rondas: añade la primera.",
  "dz.baloot.off": "Desactivado",
  "dz.baloot.on": "Activado",
  "dz.baloot.oneConversionNote": "Solo se convierte un bando; el otro se resta del total de la ronda, así que una ronda nunca puede pasar de 16 en حكم ni de 26 en صن.",
  "dz.baloot.outcome": "Resultado",
  "dz.baloot.outcome.failed": "تحت (contrato fallido)",
  "dz.baloot.outcome.made": "Contrato cumplido",
  "dz.baloot.outcome.tie": "تعادل (empate)",
  "dz.baloot.outcomeFailed": "تحت (contrato fallido)",
  "dz.baloot.outcomeFailedNote": "تحت — los rivales se llevan la ronda entera, y los مشاريع del comprador pasan con ella.",
  "dz.baloot.outcomeFailedVoidNote": "تحت — los rivales se llevan la ronda entera, y los مشاريع del comprador se anulan.",
  "dz.baloot.outcomeMade": "Contrato cumplido",
  "dz.baloot.outcomeMadeNote": "El comprador llegó a la marca: cada bando se queda con sus puntos.",
  "dz.baloot.outcomeTie": "تعادل (empate)",
  "dz.baloot.outcomeTieNote": "تعادل — los puntos se reparten entre los dos bandos.",
  "dz.baloot.pad": "Teclado numérico",
  "dz.baloot.padBackspace": "Borrar un dígito",
  "dz.baloot.padClear": "Borrar",
  "dz.baloot.padDigit": "Dígito {n}",
  "dz.baloot.padDone": "Listo",
  "dz.baloot.padHint": "Un teclado dentro de la página, para que el del sistema nunca tape la hoja.",
  "dz.baloot.padPlus10": "+10",
  "dz.baloot.pageTitle": "Marcador de Baloot — Dzzz",
  "dz.baloot.points": "puntos",
  "dz.baloot.pointsN": "{n} puntos",
  "dz.baloot.presetApply": "Aplicar",
  "dz.baloot.presetDelete": "Eliminar el ajuste",
  "dz.baloot.presetName": "Nombre del ajuste",
  "dz.baloot.presetPlaceholder": "Majlis del jueves",
  "dz.baloot.presetSave": "Guardar estos ajustes",
  "dz.baloot.presetSaved": "Ajuste guardado.",
  "dz.baloot.presets": "Ajustes guardados",
  "dz.baloot.presetsEmpty": "Aún no hay ajustes guardados.",
  "dz.baloot.preview": "Revisa antes de guardar",
  "dz.baloot.previewAfter": "Totales tras esta ronda",
  "dz.baloot.previewArith": "La aritmética",
  "dz.baloot.previewCards": "De las cartas",
  "dz.baloot.previewConversion": "{abnat} أبناط → {points} puntos",
  "dz.baloot.previewHint": "Toda la aritmética, para que una ronda en disputa se revise a simple vista en vez de darla por buena.",
  "dz.baloot.previewProjects": "De los مشاريع",
  "dz.baloot.previewRound": "Esta ronda",
  "dz.baloot.previewRule": "Regla aplicada",
  "dz.baloot.privacy": "La partida, los nombres, los ajustes y las estadísticas se quedan en este dispositivo. No se sube nada y no hay cuenta.",
  "dz.baloot.progressLabel": "Progreso hacia {n}",
  "dz.baloot.project.baloot": "بلوت (Baloot)",
  "dz.baloot.project.fifty": "خمسين (cincuenta)",
  "dz.baloot.project.fourHundred": "أربعمية (cuatrocientos)",
  "dz.baloot.project.hundred": "مية (cien)",
  "dz.baloot.project.sira": "سرا (Sira)",
  "dz.baloot.projectBaloot": "بلوت (Baloot)",
  "dz.baloot.projectChip": "{name} · {n}",
  "dz.baloot.projectDesc.baloot": "Rey y reina del palo de triunfo",
  "dz.baloot.projectDesc.fifty": "Cuatro cartas en escalera",
  "dz.baloot.projectDesc.fourHundred": "Cuatro ases",
  "dz.baloot.projectDesc.hundred": "Cinco en escalera, o cuatro iguales",
  "dz.baloot.projectDesc.sira": "Tres cartas en escalera",
  "dz.baloot.projectFifty": "خمسين (cincuenta)",
  "dz.baloot.projectFourHundred": "أربعمية (cuatrocientos)",
  "dz.baloot.projectHundred": "مية (cien)",
  "dz.baloot.projectNoteBaloot": "El بلوت existe solo en حكم.",
  "dz.baloot.projectNoteFourHundredHokom": "Cuatro ases en حكم valen como una مية (10): la أربعمية no existe en حكم.",
  "dz.baloot.projectNoteFourHundredSun": "La أربعمية existe solo en صن.",
  "dz.baloot.projectNoteHundred": "Cuatro iguales solo cuentan como مية con 10 / J / Q / K / A: cuatro nueves, ochos o sietes no son un proyecto.",
  "dz.baloot.projectNoteMoves": "Un proyecto declarado mueve la marca: 82 y 66 valen solo «اللعبة صافية بدون مشاريع».",
  "dz.baloot.projectSira": "سرا (Sira)",
  "dz.baloot.projectTotal": "مشاريع {n}",
  "dz.baloot.projectValue": "{n} puntos",
  "dz.baloot.projects": "Proyectos (مشاريع)",
  "dz.baloot.projectsFor": "مشاريع de {team}",
  "dz.baloot.projectsHint": "Toca lo que declaró cada bando: los valores cambian entre صن y حكم.",
  "dz.baloot.projectsNone": "Sin proyectos",
  "dz.baloot.reached": "Llegó a la meta",
  "dz.baloot.rematch": "Revancha — mismos nombres",
  "dz.baloot.rematchHint": "El resultado se guarda en las estadísticas antes de vaciar el marcador.",
  "dz.baloot.renameTeam": "Cambiar el nombre de {team}",
  "dz.baloot.required": "Obligatorio",
  "dz.baloot.resetDefaults": "Restablecer los valores por defecto",
  "dz.baloot.resumed": "Partida retomada desde este dispositivo.",
  "dz.baloot.resumedDismiss": "Entendido",
  "dz.baloot.round": "Ronda",
  "dz.baloot.roundN": "Ronda {n}",
  "dz.baloot.rounds": "Rondas",
  "dz.baloot.roundsN": "{n} rondas",
  "dz.baloot.rulesLink": "Fuentes",
  "dz.baloot.rulesSource": "Reglas de la اللائحة العامة للعبة البلوت, de la Federación Saudí de Deportes Mentales.",
  "dz.baloot.rulesVerified": "Fuentes verificadas el {date}.",
  "dz.baloot.saveEdit": "Guardar los cambios",
  "dz.baloot.saveNames": "Guardar los nombres",
  "dz.baloot.saveRound": "Guardar la ronda",
  "dz.baloot.scoreboard": "Marcador",
  "dz.baloot.seo": "Un marcador para el Baloot de verdad, el del majlis: elige صن o حكم, escribe los أبناط del bando que contó y el otro se completa solo. Los مشاريع, los dobles, el كبوت, el تحت y el تعادل siguen la اللائحة العامة de la federación saudí, y cada ronda muestra su aritmética antes de guardarla, así que una mano en disputa se revisa a simple vista. Los totales son lo bastante grandes para leerlos desde el otro lado de la mesa, y una صكة interrumpida vuelve tal como la dejaste. Todo se queda en tu dispositivo: sin cuenta y sin subir nada.",
  "dz.baloot.setHundred": "مية",
  "dz.baloot.setKaboot": "Puntuación del كبوت",
  "dz.baloot.setProjectDouble": "Doblar también los مشاريع",
  "dz.baloot.setProjectValues": "Valores de los proyectos",
  "dz.baloot.setProjectValuesHint": "Los valores por defecto vienen de la لائحة. Cámbialos si tu majlis cuenta de otra forma.",
  "dz.baloot.setTarget": "Meta de la صكة",
  "dz.baloot.setTargetHint": "152 en todas las fuentes árabes consultadas.",
  "dz.baloot.setTie": "Tratamiento del تعادل",
  "dz.baloot.setTieHint": "La لائحة reparte con 81–81 en حكم y 65–65 en صن; algunas mesas dan el empate al comprador.",
  "dz.baloot.setTransfer": "مشاريع del comprador al caer تحت",
  "dz.baloot.settings": "Ajustes",
  "dz.baloot.settingsHint": "El Baloot se juega según lo acordado: define lo que juega tu majlis antes de la primera ronda.",
  "dz.baloot.srScore": "{team}: {n} puntos",
  "dz.baloot.srSelected": "Seleccionado",
  "dz.baloot.startedAt": "Empezó a las {time}",
  "dz.baloot.stats": "Estadísticas",
  "dz.baloot.statsClear": "Borrar las estadísticas",
  "dz.baloot.statsEmpty": "Aún no hay estadísticas: termina una صكة primero.",
  "dz.baloot.statsGahwa": "Rondas de قهوة",
  "dz.baloot.statsGames": "Partidas",
  "dz.baloot.statsHead": "Cara a cara",
  "dz.baloot.statsKaboot": "Rondas de كبوت",
  "dz.baloot.statsLocal": "Las estadísticas se cuentan solo en este dispositivo.",
  "dz.baloot.statsLosses": "Derrotas",
  "dz.baloot.statsRate": "% de victorias",
  "dz.baloot.statsRounds": "Rondas",
  "dz.baloot.statsSaved": "Resultado añadido a las estadísticas.",
  "dz.baloot.statsWins": "Victorias",
  "dz.baloot.step": "Paso {n}",
  "dz.baloot.target": "Meta",
  "dz.baloot.targetChip": "Meta {n}",
  "dz.baloot.teamName": "Nombre del equipo",
  "dz.baloot.teamThem": "Ellos",
  "dz.baloot.teamUs": "Nosotros",
  "dz.baloot.teams": "Equipos",
  "dz.baloot.thresholdHokom": "En حكم el comprador necesita 82 أبناط; 81 es تعادل.",
  "dz.baloot.thresholdSun": "En صن el comprador necesita 66 أبناط; 65 es تعادل.",
  "dz.baloot.tieBidder": "Se los queda el comprador",
  "dz.baloot.tieSplit": "Repartir los puntos",
  "dz.baloot.tiedNow": "Empatados",
  "dz.baloot.title": "Marcador de Baloot",
  "dz.baloot.total": "Total",
  "dz.baloot.transferOff": "Se anulan",
  "dz.baloot.transferOn": "Pasan a los rivales",
  "dz.baloot.undo": "Deshacer",
  "dz.baloot.undoLast": "Deshacer la última ronda",
  "dz.baloot.undone": "Deshecho: totales recalculados.",
  "dz.baloot.winDuration": "Duración {t}",
  "dz.baloot.winGahwa": "Por قهوة.",
  "dz.baloot.winKaboot": "Con un كبوت por el camino.",
  "dz.baloot.winRounds": "{n} rondas",
  "dz.baloot.winSub": "Resultado final",
  "dz.baloot.winTieBreak": "Los dos bandos pasaron la meta: gana quien tenga más أبناط.",
  "dz.baloot.winTitle": "La صكة es para {team}",
  "dz.barcode.barWidth": "Ancho de barra",
  "dz.barcode.batch": "Modo por lotes",
  "dz.barcode.batchHint": "Genera para una lista de productos — un valor por línea.",
  "dz.barcode.batchPlaceholder": "Un valor por línea",
  "dz.barcode.benefit": "Códigos de barras listos para tienda y que escanean.",
  "dz.barcode.checkDigit": "Se añadió el dígito de control {d}",
  "dz.barcode.encodedLabel": "Codificado:",
  "dz.barcode.err.code128": "CODE128 admite ASCII imprimible.",
  "dz.barcode.err.code39": "CODE39 admite A–Z, 0–9 y - . $ / + % y el espacio.",
  "dz.barcode.err.empty": "Introduce un valor.",
  "dz.barcode.err.length": "{label} necesita {n} dígitos — el último se calcula.",
  "dz.barcode.err.nondigit": "{label} solo admite dígitos.",
  "dz.barcode.format": "Formato",
  "dz.barcode.height": "Alto",
  "dz.barcode.invalid": "Se omitieron {n} líneas no válidas",
  "dz.barcode.name": "Generador de códigos de barras",
  "dz.barcode.pageTitle": "Generador de códigos de barras — Herramientas Dzzz",
  "dz.barcode.seo": "Crea códigos de barras escaneables para tienda — EAN-13, UPC-A, CODE128 y más — con dígitos de control automáticos. Procesa una lista entera de productos en un ZIP, todo en tu dispositivo.",
  "dz.barcode.text": "Mostrar el texto",
  "dz.barcode.value": "Valor",
  "dz.barcode.zip": "Descargar todo (ZIP)",
  "dz.bmi.age": "Edad (opcional)",
  "dz.bmi.benefit": "Índice de masa corporal con el rango de peso saludable",
  "dz.bmi.cat.normal": "Rango normal",
  "dz.bmi.cat.obese": "Rango de obesidad",
  "dz.bmi.cat.over": "Sobrepeso",
  "dz.bmi.cat.under": "Bajo peso",
  "dz.bmi.childNote": "Las categorías de IMC para adultos no se aplican a niños ni adolescentes — el crecimiento se evalúa con tablas guiadas por un profesional de la salud.",
  "dz.bmi.disclaimer": "El IMC es una medida orientativa aproximada, no un diagnóstico — consulta a un profesional de la salud para recibir consejo personalizado.",
  "dz.bmi.ft": "ft",
  "dz.bmi.healthy": "Peso saludable para tu altura:",
  "dz.bmi.height": "Altura",
  "dz.bmi.imperial": "ft-in / lb",
  "dz.bmi.in": "in",
  "dz.bmi.metric": "cm / kg",
  "dz.bmi.name": "Calculadora de IMC",
  "dz.bmi.pageTitle": "Calculadora de IMC — Herramientas Dzzz",
  "dz.bmi.relatedCal": "Relacionado: Calculadora de calorías",
  "dz.bmi.result": "Tu IMC",
  "dz.bmi.seo": "Calculadora de IMC gratuita con unidades métricas e imperiales, las categorías de la OMS y tu rango de peso saludable. Funciona por completo en tu dispositivo.",
  "dz.bmi.title": "Calculadora de IMC",
  "dz.bmi.unitKg": "kg",
  "dz.bmi.unitLb": "lb",
  "dz.bmi.weight": "Peso",
  "dz.bodyfat.age": "Edad (opcional)",
  "dz.bodyfat.benefit": "Método de circunferencias de la Marina de EE. UU.: estima el porcentaje de grasa corporal a partir de medidas con cinta métrica, todo en tu dispositivo.",
  "dz.bodyfat.bmiRange": "Rango saludable de IMC",
  "dz.bodyfat.childNote": "Esta fórmula se derivó de datos de adultos y no se aplica a menores de 18 años. Un profesional de salud puede evaluar el crecimiento y la composición corporal de niños y adolescentes.",
  "dz.bodyfat.cm": "cm",
  "dz.bodyfat.disclaimer": "Solo una estimación con cinta métrica: el error típico frente a DXA es de ±3–4 puntos porcentuales; la fórmula tiende a subestimar la grasa en personas musculosas o con IMC alto y a sobrestimarla en mujeres muy delgadas. Solo informativo, no es consejo médico.",
  "dz.bodyfat.errorBand": "El error típico frente a un escáner DXA es de unos ±3–4 puntos porcentuales.",
  "dz.bodyfat.female": "Mujer",
  "dz.bodyfat.height": "Altura",
  "dz.bodyfat.hip": "Cadera",
  "dz.bodyfat.hipWhere": "Mide en el punto más ancho de las caderas.",
  "dz.bodyfat.idealNote": "Son regresiones poblacionales de mediados del siglo XX, no objetivos personales: la fórmula de Devine se usa en clínica para calcular dosis de medicamentos, no como peso meta.",
  "dz.bodyfat.idealTitle": "Fórmulas de peso ideal (misma altura)",
  "dz.bodyfat.imperial": "Imperial (pulg)",
  "dz.bodyfat.in": "pulg",
  "dz.bodyfat.m.devine": "Devine",
  "dz.bodyfat.m.hamwi": "Hamwi",
  "dz.bodyfat.m.miller": "Miller",
  "dz.bodyfat.m.robinson": "Robinson",
  "dz.bodyfat.male": "Hombre",
  "dz.bodyfat.metric": "Métrico (cm)",
  "dz.bodyfat.name": "Calculadora de grasa corporal",
  "dz.bodyfat.neck": "Cuello",
  "dz.bodyfat.neckWhere": "Mide justo debajo de la laringe (la nuez).",
  "dz.bodyfat.pageTitle": "Calculadora de grasa corporal — Herramientas Dzzz",
  "dz.bodyfat.relatedBmi": "Ver también: calculadora de IMC",
  "dz.bodyfat.result": "Grasa corporal estimada",
  "dz.bodyfat.seo": "Calculadora gratuita de grasa corporal por el método de circunferencias de la Marina de EE. UU., con medidas de cintura, cuello y cadera, el margen de error típico declarado y una comparación de cuatro fórmulas de peso ideal. Funciona por completo en tu dispositivo.",
  "dz.bodyfat.sex": "Sexo",
  "dz.bodyfat.title": "Calculadora de grasa corporal",
  "dz.bodyfat.unitKg": "kg",
  "dz.bodyfat.unitLb": "lb",
  "dz.bodyfat.waist": "Cintura",
  "dz.bodyfat.waistWhere": "Mide a la altura del ombligo, con la cinta horizontal.",
  "dz.cal.act.active": "Activo (6–7 días/semana)",
  "dz.cal.act.light": "Actividad ligera (1–3 días/semana)",
  "dz.cal.act.moderate": "Actividad moderada (3–5 días/semana)",
  "dz.cal.act.sedentary": "Sedentario (poco o nada de ejercicio)",
  "dz.cal.act.veryActive": "Muy activo (trabajo físico o entrenamiento dos veces al día)",
  "dz.cal.activityLabel": "Nivel de actividad",
  "dz.cal.addIngredient": "Añadir ingrediente",
  "dz.cal.age": "Edad",
  "dz.cal.benefit": "TMB, GET, totales de comidas y un plan de objetivo sereno",
  "dz.cal.bmrLabel": "TMB",
  "dz.cal.cautionDeficit": "Por debajo de -750 kcal/día es más agresivo que la mayoría de las recomendaciones. Aquí sigue funcionando — solo ten en cuenta que un déficit grande y sostenido se planifica mejor con un profesional.",
  "dz.cal.childNote": "Estas fórmulas de calorías están hechas para adultos — las necesidades de energía de niños y adolescentes debe valorarlas un pediatra o un dietista.",
  "dz.cal.customTotal": "Total {n}%",
  "dz.cal.dailyTarget": "Objetivo diario",
  "dz.cal.def.gentle": "Suave",
  "dz.cal.def.moderate": "Moderado",
  "dz.cal.def.steep": "Fuerte",
  "dz.cal.deficit": "Déficit",
  "dz.cal.deficitLabel": "Ajuste diario de calorías",
  "dz.cal.disclaimer": "Son estimaciones, no prescripciones — para decisiones médicas o dietéticas, consulta a un médico o dietista.",
  "dz.cal.ft": "pies",
  "dz.cal.height": "Altura",
  "dz.cal.imperial": "pies-pulg / lb",
  "dz.cal.in": "pulg",
  "dz.cal.ingAmount": "Cantidad",
  "dz.cal.ingC": "C (g)",
  "dz.cal.ingF": "G (g)",
  "dz.cal.ingKcal": "kcal",
  "dz.cal.ingName": "Ingrediente",
  "dz.cal.ingP": "P (g)",
  "dz.cal.kcalDay": "kcal/día",
  "dz.cal.kcalUnit": "kcal",
  "dz.cal.macroCarbs": "Carbohidratos",
  "dz.cal.macroFat": "Grasas",
  "dz.cal.macroProtein": "Proteínas",
  "dz.cal.mealMacros": "Proteínas {p} g · Carbohidratos {c} g · Grasas {f} g",
  "dz.cal.mealTotal": "Total de la comida",
  "dz.cal.meaning": "La TMB es la energía que tu cuerpo gasta en reposo; el GET le suma tu nivel de actividad.",
  "dz.cal.metric": "cm / kg",
  "dz.cal.minSafeNote": "Este objetivo está por debajo de 1200 kcal/día, algo difícil de cubrir con una alimentación equilibrada para la mayoría de los adultos. Plantéate un déficit menor, o consúltalo con un profesional.",
  "dz.cal.name": "Calculadora de calorías",
  "dz.cal.needBmr": "Rellena la pestaña TMB/GET para ver tu objetivo diario personalizado.",
  "dz.cal.pageTitle": "Calculadora de calorías — Herramientas Dzzz",
  "dz.cal.perServing": "Por ración",
  "dz.cal.presetBalanced": "Equilibrado 30/40/30",
  "dz.cal.presetCustom": "Personalizado",
  "dz.cal.relatedBmi": "Relacionado: calculadora de IMC",
  "dz.cal.removeRow": "Quitar ingrediente",
  "dz.cal.seo": "Calculadora de calorías gratuita — TMB, GET según el nivel de actividad, un sumador de comidas y un planificador sereno de objetivo y macros. Funciona por completo en tu dispositivo.",
  "dz.cal.servings": "Raciones",
  "dz.cal.sexFemale": "Mujer",
  "dz.cal.sexLabel": "Sexo",
  "dz.cal.sexMale": "Hombre",
  "dz.cal.surplus": "Superávit",
  "dz.cal.tabBmr": "TMB/GET",
  "dz.cal.tabGoal": "Objetivo y macros",
  "dz.cal.tabMeal": "Total de la comida",
  "dz.cal.tagNew": "Nuevo",
  "dz.cal.tdeeLabel": "GET",
  "dz.cal.title": "Calculadora de calorías",
  "dz.cal.weight": "Peso",
  "dz.cal.weightLb": "Peso (lb)",
  "dz.camcolor.aim": "Coloca la mira sobre el color y toca en cualquier parte.",
  "dz.camcolor.approxNote": "Aproximado — el balance de blancos del teléfono altera el color. Sin gestión de color.",
  "dz.camcolor.benefit": "Apunta la cámara a cualquier cosa y lee su color en HEX y RGB",
  "dz.camcolor.busy": "La cámara no se inició",
  "dz.camcolor.busyBody": "Puede que otra app o pestaña la tenga tomada, o que el navegador no haya podido abrirla. Cierra cualquier cosa que pueda estar usando la cámara e inténtalo otra vez — o sube una foto.",
  "dz.camcolor.cameraAsk": "El navegador te pedirá acceso a la cámara después de tocar.",
  "dz.camcolor.cancel": "Cancelar",
  "dz.camcolor.capReached": "{n} muestras es el límite aquí — quita una primero.",
  "dz.camcolor.clearAll": "Borrar todo",
  "dz.camcolor.clearConfirm": "¿Borrar todas las muestras guardadas?",
  "dz.camcolor.close": "Cerrar",
  "dz.camcolor.denied": "La cámara está bloqueada para este sitio",
  "dz.camcolor.deniedBody": "No hay problema — sube una foto y captura el color igual.",
  "dz.camcolor.dropHere": "Suelta una foto aquí, o haz clic para elegir una",
  "dz.camcolor.emptySwatches": "Aún no hay muestras — captura un color y aparecerá aquí.",
  "dz.camcolor.failed": "No se pudo leer esa foto. Prueba con otra.",
  "dz.camcolor.handoffNote": "Abre la herramienta de color con estas muestras, pasadas en memoria — nunca en la barra de direcciones.",
  "dz.camcolor.how1": "Abre la cámara, o sube una foto que ya tengas.",
  "dz.camcolor.how2": "Coloca la mira sobre el color y toca — o toca el píxel que quieras en una foto.",
  "dz.camcolor.how3": "Guarda los que te gusten. Toca una muestra otra vez para quitarla.",
  "dz.camcolor.how4": "Envía el conjunto a la herramienta de color para armonías, degradados y contraste.",
  "dz.camcolor.howTitle": "Cómo funciona",
  "dz.camcolor.kept": "Guardado {hex}",
  "dz.camcolor.lowLight": "Hay poca luz — el color se desvía en la oscuridad. Prueba la linterna o busca un lugar más iluminado.",
  "dz.camcolor.modeAverage": "Promedio 9 px",
  "dz.camcolor.modeLabel": "Área de muestra",
  "dz.camcolor.modeNote": "«Punto» lee un solo píxel. «Promedio 9 px» es la media del bloque de 3×3 que lo rodea, lo que calma el ruido de la cámara sin mezclar los colores en el borde entre dos de ellos.",
  "dz.camcolor.modePoint": "Punto",
  "dz.camcolor.name": "Selector de color con la cámara",
  "dz.camcolor.noCamera": "No se encontró ninguna cámara",
  "dz.camcolor.noCameraBody": "Sube una foto y captura el color igual.",
  "dz.camcolor.openCamera": "Abrir la cámara",
  "dz.camcolor.pageTitle": "Selector de color con la cámara — captura cualquier color — Dzzz",
  "dz.camcolor.photoAria": "Capturar un color de la foto",
  "dz.camcolor.photoHint": "Haz clic o toca el píxel que quieras. Con el teclado, Enter captura el centro.",
  "dz.camcolor.photoTitle": "Toca un color en la foto",
  "dz.camcolor.privacyNote": "Las muestras se guardan solo en este dispositivo. Nunca se guarda ni se sube ninguna foto ni fotograma de la cámara — solo el color que capturas.",
  "dz.camcolor.removeSwatch": "Quitar {hex}",
  "dz.camcolor.sampleAria": "Capturar el color",
  "dz.camcolor.savedCount": "Guardadas · {n}",
  "dz.camcolor.seo": "Apunta la cámara del teléfono a una pared, una tela o una página impresa y lee su color directamente en la pantalla en HEX y RGB — o sube una foto y toca el píxel que quieras. Lee un solo píxel, o el promedio de nueve para calmar el ruido del sensor, junta los colores que te gusten en una bandeja de muestras y envía todo el conjunto a la herramienta de color con un toque. Todo ocurre en tu navegador: nunca se sube ni se guarda ningún fotograma de la cámara ni ninguna foto, solo el color que capturas. La lectura es aproximada, porque el teléfono aplica su propio balance de blancos antes de que un píxel llegue a la página.",
  "dz.camcolor.sheetTitle": "Selector de color",
  "dz.camcolor.swatchesTitle": "Muestras",
  "dz.camcolor.switchCamera": "Cambiar de cámara",
  "dz.camcolor.title": "Selector de color con la cámara",
  "dz.camcolor.toPalette": "Enviar a la herramienta de color",
  "dz.camcolor.torch": "Linterna",
  "dz.camcolor.tryAgain": "Reintentar",
  "dz.camcolor.uploadCta": "Subir una foto",
  "dz.camcolor.uploadInstead": "Subir una foto",
  "dz.camcolor.whyBody": "El teléfono aplica balance de blancos automático, exposición automática y su propio procesamiento de color antes de que un píxel llegue a esta página, y aquí nada está gestionado con un perfil de color. Dos teléfonos apuntando a la misma pared no coincidirán, ni tampoco un mismo teléfono bajo dos luces distintas. Toma la lectura como un punto de partida cercano, nunca como una coincidencia con el color de una marca o un código de pintura.",
  "dz.camcolor.whyTitle": "Por qué el número es aproximado",
  "dz.category.count": "{n} herramientas",
  "dz.category.others": "Otras categorías",
  "dz.category.pageTitle": "{cat}: herramientas gratis en línea — Dzzz",
  "dz.category.sub.archives": "Archivos comprimidos",
  "dz.category.sub.audio": "Audio",
  "dz.category.sub.csv": "CSV",
  "dz.category.sub.health": "Salud",
  "dz.category.sub.images": "Imágenes",
  "dz.category.sub.kitchen": "Cocina",
  "dz.category.sub.math": "Matemáticas",
  "dz.category.sub.money": "Dinero",
  "dz.category.sub.pdf": "PDF",
  "dz.category.sub.privacy": "Privacidad",
  "dz.category.sub.shopping": "Compras",
  "dz.category.sub.travel": "Viajes",
  "dz.category.sub.vector": "Vectores",
  "dz.category.sub.video": "Video",
  "dz.cimg.accept": "JPEG, PNG, WebP, AVIF, HEIC",
  "dz.cimg.addMore": "Agregar más imágenes",
  "dz.cimg.avif": "AVIF",
  "dz.cimg.avifSlow": "La codificación AVIF es lenta en teléfonos — esto puede tardar un rato.",
  "dz.cimg.benefit": "Reduce el tamaño de tus fotos para la web, el correo o el almacenamiento — en tu propio dispositivo.",
  "dz.cimg.capCount": "Demasiadas imágenes — el límite es 100 por lote.",
  "dz.cimg.capHard": "El tamaño total es demasiado grande — el límite es 200 MB por lote (esto se ejecuta en la memoria de tu navegador).",
  "dz.cimg.capSoft": "Lote grande — esto puede tardar un momento y usar bastante memoria.",
  "dz.cimg.drop": "Suelta imágenes o toca para elegir",
  "dz.cimg.format": "Formato de salida",
  "dz.cimg.jpeg": "JPEG",
  "dz.cimg.keep": "Mantener",
  "dz.cimg.maxDim": "Dimensión máxima en px (opcional)",
  "dz.cimg.name": "Comprimir imágenes",
  "dz.cimg.optimal": "Ya está optimizada",
  "dz.cimg.pageTitle": "Comprimir imágenes — Dzzz",
  "dz.cimg.png": "PNG",
  "dz.cimg.quality": "Calidad",
  "dz.cimg.seo": "Comprime fotos JPEG, PNG, WebP, AVIF y HEIC por lotes, directamente en tu navegador. Elige la calidad y el formato de salida, cambia el tamaño a una dimensión máxima si quieres, y descarga un archivo o todos en un ZIP. No se sube nada.",
  "dz.cimg.total": "Total",
  "dz.cimg.verb": "Comprimir",
  "dz.cimg.webp": "WebP",
  "dz.cleanCsv.benefit": "Quita espacios, corrige mayúsculas y normaliza dígitos y fechas en un archivo CSV/Excel",
  "dz.cleanCsv.caseLabel": "Mayúsculas y minúsculas",
  "dz.cleanCsv.caseLower": "minúsculas",
  "dz.cleanCsv.caseNone": "Sin cambios",
  "dz.cleanCsv.caseTitle": "Tipo Título",
  "dz.cleanCsv.caseUpper": "MAYÚSCULAS",
  "dz.cleanCsv.dropCols": "Eliminar columnas vacías",
  "dz.cleanCsv.dropRows": "Eliminar filas vacías",
  "dz.cleanCsv.name": "Limpiar CSV",
  "dz.cleanCsv.normDigits": "Normalizar dígitos (arábigo-índicos → occidentales)",
  "dz.cleanCsv.pageTitle": "Limpiar un archivo CSV — Herramientas Dzzz",
  "dz.cleanCsv.pick": "Elige un archivo para limpiar",
  "dz.cleanCsv.run": "Aplicar y descargar",
  "dz.cleanCsv.seo": "Limpia un archivo CSV, TSV, XLSX o JSON en tu propio navegador — quita espacios sobrantes, corrige mayúsculas y minúsculas, normaliza dígitos, unifica fechas y elimina filas o columnas vacías, con vista previa antes de descargar. No se sube nada.",
  "dz.cleanCsv.stdDates": "Unificar las fechas a YYYY-MM-DD",
  "dz.cleanCsv.title": "Limpiar un archivo CSV",
  "dz.cleanCsv.transforms": "Transformaciones",
  "dz.cleanCsv.trim": "Quitar espacios sobrantes",
  "dz.coffee.absorbLine": "{water} g de agua − {kept} g retenidos por el café = {yield} g en la taza",
  "dz.coffee.absorption": "Agua retenida por el café",
  "dz.coffee.absorptionHint": "Unos 2 g por gramo de café es un punto de partida fiable. Las moliendas más gruesas y las camas más profundas retienen un poco más — ajústalo si tu báscula dice otra cosa.",
  "dz.coffee.absorptionNote": "El café retiene agua. El agua que viertes no es la que llega a la taza — una preparación 1:16 con 288 g de agua deja apenas 250 g, y casi ninguna calculadora lo resta.",
  "dz.coffee.absorptionUnit": "g/g",
  "dz.coffee.absorptionValue": "{n} g por cada gramo de café",
  "dz.coffee.advanced": "Opciones avanzadas",
  "dz.coffee.balanced": "Equilibrado",
  "dz.coffee.benefit": "Proporción, agua absorbida y temporizador de vertido.",
  "dz.coffee.brew": "Preparar",
  "dz.coffee.brewTime": "Tiempo total",
  "dz.coffee.byTime": "antes de {t}",
  "dz.coffee.bypass": "Agua de bypass añadida después",
  "dz.coffee.bypassHint": "Se añade directamente a la taza y no pasa por la cama de café — sube la cantidad final sin cambiar la extracción.",
  "dz.coffee.bypassLine": "más {n} g de agua añadida directamente a la taza",
  "dz.coffee.clearAll": "Borrar todas las recetas guardadas",
  "dz.coffee.colGrind": "Molienda",
  "dz.coffee.colMethod": "Método",
  "dz.coffee.colRatio": "Proporción",
  "dz.coffee.colTemp": "Agua",
  "dz.coffee.colTime": "Tiempo total",
  "dz.coffee.cookingLink": "Herramientas de cocina — escalar, convertir y temporizadores",
  "dz.coffee.copyRecipe": "Copiar el resumen",
  "dz.coffee.crossConverter": "Conversor de medidas de cocina",
  "dz.coffee.crossOven": "Conversor de temperatura del horno",
  "dz.coffee.crossScaler": "Escalar recetas",
  "dz.coffee.crossUnit": "Conversor de unidades general",
  "dz.coffee.cues": "Sonido y vibración en cada etapa",
  "dz.coffee.cuesOff": "Desactivado (predeterminado)",
  "dz.coffee.cuesOn": "Activado",
  "dz.coffee.cumulative": "objetivos acumulados",
  "dz.coffee.cumulativeNote": "Los objetivos son acumulados — es lo que marca tu báscula.",
  "dz.coffee.cup1": "1 taza",
  "dz.coffee.cup2": "2 tazas",
  "dz.coffee.cup4": "4 tazas",
  "dz.coffee.cupSize": "Tamaño de taza",
  "dz.coffee.cups": "Tazas",
  "dz.coffee.cupsLine": "≈ {n} tazas de 220 g",
  "dz.coffee.decrease": "Reducir",
  "dz.coffee.deleteRecipe": "Eliminar la receta",
  "dz.coffee.detailAdd": "Añade los {n} g de agua completos y remueve una vez",
  "dz.coffee.detailBloom": "Vierte hasta {n} g y deja que florezca",
  "dz.coffee.detailBreakCrust": "Retira la espuma y el café que flota en la superficie",
  "dz.coffee.detailDrawdown": "Deja que drene la cama de café — últimas gotas cerca de {t}",
  "dz.coffee.detailFilter": "Cuela el café — espera unos {n} g",
  "dz.coffee.detailPour": "Vierte hasta {n} g antes de {t}",
  "dz.coffee.detailPreinfusion": "Presión baja — moja la pastilla de forma pareja",
  "dz.coffee.detailPress": "Presiona despacio — espera unos {n} g en la taza",
  "dz.coffee.detailPull": "Extrae hasta {n} g antes de {t}",
  "dz.coffee.detailSteep": "Tapa y no remuevas hasta {t}",
  "dz.coffee.done": "Preparación terminada",
  "dz.coffee.dose": "Dosis",
  "dz.coffee.doseLabel": "Dosis de café",
  "dz.coffee.elapsed": "Transcurrido",
  "dz.coffee.errAbsorption": "Con esta proporción el café retendría cada gota y no llegaría nada a la taza. Baja la absorción o sube la proporción.",
  "dz.coffee.errBloom": "Solo el bloom necesita más agua que toda la preparación. Sube la proporción o baja la dosis.",
  "dz.coffee.errBypass": "El agua de bypass no puede ser negativa.",
  "dz.coffee.errBypassTooBig": "El agua de bypass es más que la taza que pediste.",
  "dz.coffee.errDose": "Introduce una dosis mayor que cero.",
  "dz.coffee.errGeneric": "Revisa los números — esa combinación no se puede preparar.",
  "dz.coffee.errRatio": "Introduce una proporción mayor que cero.",
  "dz.coffee.errYield": "Introduce un tamaño de taza mayor que cero.",
  "dz.coffee.espressoNote": "El espresso es distinto: la proporción va de la dosis al líquido en la taza, así que no hay absorción que restar. 18 g a 1:2.2 dan un shot de 39.6 g.",
  "dz.coffee.g": "g",
  "dz.coffee.gCoffee": "g de café",
  "dz.coffee.gWater": "g de agua",
  "dz.coffee.grind": "Molienda",
  "dz.coffee.grindCoarse": "Gruesa",
  "dz.coffee.grindFine": "Fina",
  "dz.coffee.grindFineMedium": "Fina-media",
  "dz.coffee.grindMediumCoarse": "Media-gruesa",
  "dz.coffee.grindMediumFine": "Media-fina",
  "dz.coffee.grindVeryCoarse": "Muy gruesa",
  "dz.coffee.grindVeryFine": "Muy fina",
  "dz.coffee.guidance": "Guía por método",
  "dz.coffee.guideFoot": "Puntos de partida para ajustar a tu gusto, no reglas. Cada cifra es un rango porque el café, los molinos y el agua mueven el objetivo.",
  "dz.coffee.hintDose": "Introduce tu dosis — calculamos el agua de preparación y lo que llega de verdad a la taza.",
  "dz.coffee.hintYield": "Introduce el tamaño de taza que quieres — calculamos la dosis hacia atrás, con la absorción incluida.",
  "dz.coffee.hoursClock": "{h} h {m} min",
  "dz.coffee.immersionFoot": "Los métodos de inmersión y el cold brew usan pasos en lugar de objetivos de vertido acumulados, y el cold brew pasa el reloj a horas.",
  "dz.coffee.immersionNote": "Sin etapas de vertido — reposa y luego presiona.",
  "dz.coffee.inCup": "En la taza",
  "dz.coffee.inGrounds": "Retenido por el café",
  "dz.coffee.increase": "Aumentar",
  "dz.coffee.jumpToStage": "Ir a esta etapa",
  "dz.coffee.kept": "Retenido por el café",
  "dz.coffee.light": "Suave",
  "dz.coffee.longBrewNote": "El cold brew dura horas, así que el reloj cuenta en horas — no hace falta dejar esta página abierta.",
  "dz.coffee.mathKept": "retenido por el café = {dose} × {abs} = {kept} g",
  "dz.coffee.mathLabel": "Las cuentas, a la vista",
  "dz.coffee.mathWater": "agua de preparación = {dose} × {ratio} = {water} g",
  "dz.coffee.mathYield": "en la taza = {water} − {kept} = {yield} g",
  "dz.coffee.method": "Método",
  "dz.coffee.method.aeropress": "AeroPress",
  "dz.coffee.method.chemex": "Chemex",
  "dz.coffee.method.coldbrew": "Cold brew",
  "dz.coffee.method.espresso": "Espresso",
  "dz.coffee.method.frenchpress": "Prensa francesa",
  "dz.coffee.method.moka": "Cafetera moka",
  "dz.coffee.method.v60": "V60",
  "dz.coffee.methodAeropress": "AeroPress",
  "dz.coffee.methodChemex": "Chemex",
  "dz.coffee.methodColdbrew": "Cold brew",
  "dz.coffee.methodEspresso": "Espresso",
  "dz.coffee.methodFrenchpress": "Prensa francesa",
  "dz.coffee.methodMoka": "Cafetera moka",
  "dz.coffee.methodRow": "Método de preparación",
  "dz.coffee.methodV60": "V60",
  "dz.coffee.ml": "ml",
  "dz.coffee.name": "Calculadora de café",
  "dz.coffee.noTarget": "Sin objetivo de peso",
  "dz.coffee.nowLabel": "Ahora",
  "dz.coffee.off": "Desactivado",
  "dz.coffee.on": "Activado",
  "dz.coffee.pageTitle": "Calculadora de café — Dzzz",
  "dz.coffee.pause": "Pausar",
  "dz.coffee.plan": "Plan de preparación",
  "dz.coffee.pourTo": "Vierte hasta {n} g",
  "dz.coffee.presetBalanced": "Equilibrado",
  "dz.coffee.presetLight": "Suave",
  "dz.coffee.presetStrong": "Fuerte",
  "dz.coffee.privacyNote": "Tus ajustes y tus recetas guardadas se quedan en este dispositivo. No se sube nada y no hay cuenta.",
  "dz.coffee.progressLabel": "Progreso de la preparación",
  "dz.coffee.rangesNote": "Cada cifra de aquí es un punto de partida para ajustar a tu gusto, no una regla. El café, el molino, el agua y los utensilios mueven el objetivo.",
  "dz.coffee.ratio": "Proporción",
  "dz.coffee.ratioRange": "de 1:12 a 1:20",
  "dz.coffee.ratioValue": "1:{n}",
  "dz.coffee.recipeName": "Nombre de la receta",
  "dz.coffee.recipeNamePlaceholder": "V60 de la mañana",
  "dz.coffee.recipeSaved": "Receta guardada",
  "dz.coffee.remaining": "Restante",
  "dz.coffee.reset": "Reiniciar",
  "dz.coffee.resume": "Continuar",
  "dz.coffee.saveRecipe": "Guardar la receta",
  "dz.coffee.saved": "Recetas guardadas",
  "dz.coffee.savedCount": "{n} en este dispositivo",
  "dz.coffee.savedEmpty": "Aún no hay nada guardado — prepara una configuración y guárdala.",
  "dz.coffee.savedFoot": "Las recetas se quedan solo en este dispositivo — método, proporción, dosis y absorción se guardan juntos.",
  "dz.coffee.scheduleEspresso": "Pasos de la extracción",
  "dz.coffee.schedulePour": "Plan de vertido",
  "dz.coffee.scheduleSteep": "Pasos de preparación",
  "dz.coffee.seo": "Calcula tu dosis de café, el agua de preparación y lo que llega de verdad a la taza. El café retiene unos 2 g de agua por cada gramo, y esta calculadora lo resta en lugar de hacer como si no existiera. Siete métodos de preparación, un plan de vertido por etapas con objetivos acumulados para la báscula y un temporizador que mantiene la pantalla encendida mientras preparas. Funciona por completo en tu dispositivo.",
  "dz.coffee.solveDose": "Tengo café",
  "dz.coffee.solveDoseShort": "Dosis → taza",
  "dz.coffee.solveFor": "Calcular",
  "dz.coffee.solveYield": "Quiero un tamaño de taza",
  "dz.coffee.solveYieldShort": "Taza → dosis",
  "dz.coffee.splitLabel": "A dónde va el agua",
  "dz.coffee.splitLine": "El {pct}% del agua de preparación llega a la taza; el resto se queda en el café.",
  "dz.coffee.stageAdd": "Añade el agua",
  "dz.coffee.stageBloom": "Bloom",
  "dz.coffee.stageBreakCrust": "Rompe la costra",
  "dz.coffee.stageDone": "Hecho",
  "dz.coffee.stageDrawdown": "Drenaje final",
  "dz.coffee.stageFilter": "Filtra y sirve",
  "dz.coffee.stageNext": "Siguiente",
  "dz.coffee.stageNow": "Ahora",
  "dz.coffee.stageOf": "Etapa {n} de {total}",
  "dz.coffee.stagePour": "Vertido",
  "dz.coffee.stagePourN": "Vertido {n}",
  "dz.coffee.stagePreinfusion": "Preinfusión",
  "dz.coffee.stagePress": "Presiona y sirve",
  "dz.coffee.stagePull": "Extracción",
  "dz.coffee.stageSteep": "Reposo",
  "dz.coffee.stageStir": "Remueve una vez",
  "dz.coffee.start": "Iniciar",
  "dz.coffee.startBrew": "Empezar a preparar",
  "dz.coffee.strong": "Fuerte",
  "dz.coffee.subtraction": "{water} g de agua − {kept} g retenidos por el café = {yield} g en la taza",
  "dz.coffee.summaryLabel": "Resumen",
  "dz.coffee.targetAt": "{n} g en {t}",
  "dz.coffee.temp": "Agua",
  "dz.coffee.temp8090": "80–90 °C",
  "dz.coffee.temp9295": "92–95 °C",
  "dz.coffee.temp9296": "92–96 °C",
  "dz.coffee.tempCold": "20 °C o fría del refrigerador",
  "dz.coffee.tempStovetop": "Al fuego",
  "dz.coffee.thenLabel": "Luego",
  "dz.coffee.time.aeropress": "1:30–2:30",
  "dz.coffee.time.chemex": "3:30–4:30",
  "dz.coffee.time.coldbrew": "14–18 h",
  "dz.coffee.time.espresso": "25–32 s",
  "dz.coffee.time.frenchpress": "4:00–5:00",
  "dz.coffee.time.moka": "3:00–4:00",
  "dz.coffee.time.v60": "2:45–3:15",
  "dz.coffee.timeAeropress": "1:30–2:30",
  "dz.coffee.timeChemex": "3:30–4:30",
  "dz.coffee.timeColdbrew": "14–18 h",
  "dz.coffee.timeEspresso": "25–32 s",
  "dz.coffee.timeFrenchpress": "4:00–5:00",
  "dz.coffee.timeMoka": "3:00–4:00",
  "dz.coffee.timeV60": "2:45–3:15",
  "dz.coffee.timerTitle": "Temporizador",
  "dz.coffee.title": "Calculadora de café",
  "dz.coffee.totalTime": "Total",
  "dz.coffee.totalWater": "Agua total",
  "dz.coffee.wakeNote": "La pantalla se mantiene encendida mientras corre el temporizador y se libera en cuanto pausas o reinicias.",
  "dz.coffee.wakeOn": "La pantalla sigue encendida",
  "dz.coffee.wakeUnsupported": "Este navegador no mantiene la pantalla encendida — puede apagarse a mitad de la preparación.",
  "dz.coffee.yieldInCup": "Esperado en la taza",
  "dz.coffee.yieldLabel": "Cantidad deseada en la taza",
  "dz.color.addStop": "Agregar parada",
  "dz.color.angle": "Ángulo (grados)",
  "dz.color.background": "Color de fondo",
  "dz.color.baseColor": "Color base",
  "dz.color.benefit": "Paletas, degradados, conversión de formatos y comprobación de contraste — todo en tu navegador.",
  "dz.color.contrastRatioLabel": "Relación de contraste",
  "dz.color.converterTab": "Convertir y contraste",
  "dz.color.copied": "Copiado",
  "dz.color.copyCss": "Copiar CSS",
  "dz.color.exportCss": "Copiar las variables CSS",
  "dz.color.exportHex": "Copiar la lista HEX",
  "dz.color.fail": "No cumple",
  "dz.color.foreground": "Color del texto",
  "dz.color.gradientConic": "Cónico",
  "dz.color.gradientLinear": "Lineal",
  "dz.color.gradientRadial": "Radial",
  "dz.color.gradientTab": "Degradado",
  "dz.color.gradientType": "Tipo de degradado",
  "dz.color.harmonyAnalogous": "Análoga",
  "dz.color.harmonyComplementary": "Complementaria",
  "dz.color.harmonyMode": "Armonía",
  "dz.color.harmonyMonochromatic": "Monocromática",
  "dz.color.harmonySplitComplementary": "Complementaria dividida",
  "dz.color.harmonyTetradic": "Tetrádica",
  "dz.color.harmonyTriadic": "Triádica",
  "dz.color.hex": "HEX",
  "dz.color.hsl": "HSL",
  "dz.color.invalidHex": "No es un color hex válido (p. ej. #1A2B3C)",
  "dz.color.invalidHsl": "Escribe HSL como tono, saturación%, luminosidad% (p. ej. 217, 91%, 60%)",
  "dz.color.invalidRgb": "Escribe RGB como tres números de 0 a 255 (p. ej. 59, 130, 246)",
  "dz.color.largeText": "Texto grande (18pt o más, o 14pt en negrita)",
  "dz.color.linkNote": "El enlace lleva solo el tipo de degradado y el ángulo — no las paradas.",
  "dz.color.lockSwatch": "Fijar el color",
  "dz.color.name": "Herramientas de color",
  "dz.color.pageTitle": "Herramientas de color — paleta, degradado y contraste — Dzzz",
  "dz.color.paletteTab": "Paleta",
  "dz.color.pass": "Cumple",
  "dz.color.passesAA": "AA — contraste mínimo",
  "dz.color.passesAAA": "AAA — contraste mejorado",
  "dz.color.regenerate": "Regenerar",
  "dz.color.removeStop": "Quitar la parada",
  "dz.color.rgb": "RGB",
  "dz.color.seo": "Herramientas de color gratuitas que funcionan por completo en tu navegador: crea una paleta a partir de cualquier color base con seis esquemas de armonía, diseña degradados CSS lineales, radiales o cónicos con vista previa en vivo, convierte entre HEX, RGB y HSL, y comprueba el contraste del texto frente a los umbrales WCAG AA y AAA. No se sube nada — todo funciona sin conexión.",
  "dz.color.stopColor": "Color de la parada",
  "dz.color.stopPosition": "Posición de la parada (%)",
  "dz.compareCsv.added": "Añadidas",
  "dz.compareCsv.benefit": "Mira qué cambió entre dos archivos CSV/Excel",
  "dz.compareCsv.changed": "Modificadas",
  "dz.compareCsv.exportDiff": "Exportar diferencias (CSV)",
  "dz.compareCsv.key": "Columna clave",
  "dz.compareCsv.name": "Comparar CSV",
  "dz.compareCsv.pageTitle": "Comparar dos archivos CSV — Herramientas Dzzz",
  "dz.compareCsv.pickA": "Elige el archivo A",
  "dz.compareCsv.pickB": "Elige el archivo B",
  "dz.compareCsv.removed": "Eliminadas",
  "dz.compareCsv.run": "Comparar",
  "dz.compareCsv.seo": "Compara dos archivos CSV, TSV, XLSX o JSON por una columna clave común, directamente en tu navegador — mira las filas añadidas, eliminadas y modificadas, y exporta las diferencias como CSV. No se sube nada.",
  "dz.compareCsv.title": "Compara dos archivos CSV o Excel",
  "dz.compress.already": "Este PDF ya está comprimido.",
  "dz.compress.benefit": "Reduce el tamaño de un PDF para enviarlo por correo.",
  "dz.compress.delta": "{from} → {to}",
  "dz.compress.drop": "Suelta PDFs o toca para elegir",
  "dz.compress.ebook": "Equilibrado",
  "dz.compress.ebookSub": "Ebook",
  "dz.compress.encrypted": "Este PDF está protegido con contraseña: quita la contraseña primero.",
  "dz.compress.engineHint": "Motor de ~12 MB",
  "dz.compress.keep": "Conservar el original",
  "dz.compress.name": "Comprimir PDF",
  "dz.compress.pageTitle": "Comprimir PDF — Herramientas Dzzz",
  "dz.compress.preset": "Calidad",
  "dz.compress.print": "Alta calidad",
  "dz.compress.printSub": "Impresión",
  "dz.compress.screen": "Mínimo",
  "dz.compress.screenSub": "Pantalla",
  "dz.compress.seo": "Reduce el tamaño de tus archivos PDF para el correo y las subidas con Ghostscript, dentro de tu navegador. Elige un ajuste de calidad; no se sube nada a ningún servidor.",
  "dz.compress.tooBig": "Eso supera el límite de 100 MB.",
  "dz.compress.verb": "Comprimir",
  "dz.consent.cellular": "Estás usando datos móviles — es una descarga única de {mb} MB.",
  "dz.consent.download": "Descargar el motor (~{mb} MB · una sola vez)",
  "dz.consent.error": "La descarga falló o se agotó el tiempo — revisa tu conexión e inténtalo de nuevo.",
  "dz.consent.helper": "Funciona por completo en tu dispositivo — no se sube nada.",
  "dz.consent.progress": "{loaded} / {total} MB",
  "dz.consent.progressLabel": "Descargando el motor",
  "dz.consent.ready": "Motor listo",
  "dz.convertCsv.benefit": "Convierte entre CSV, TSV, XLSX y JSON",
  "dz.convertCsv.name": "Convertir CSV",
  "dz.convertCsv.pageTitle": "Convertir CSV, Excel, TSV y JSON — Herramientas Dzzz",
  "dz.convertCsv.pick": "Elige un archivo para convertir",
  "dz.convertCsv.run": "Convertir y descargar",
  "dz.convertCsv.seo": "Convierte un archivo CSV, TSV, XLSX o JSON a cualquiera de los otros formatos, dentro de tu navegador: elige una hoja en los archivos de Excel con varias hojas y previsualízala antes de convertir. No se sube nada.",
  "dz.convertCsv.sheet": "Hoja",
  "dz.convertCsv.title": "Convierte un archivo CSV o de Excel",
  "dz.convertCsv.to": "Convertir a",
  "dz.cook.amount": "Cantidad",
  "dz.cook.approxNote": "Valor aproximado. Se usa la densidad del agua (1 g/ml) porque el ingrediente no está en la tabla, y las densidades reales varían mucho de un ingrediente a otro — toma el resultado como una guía, no como una medida.",
  "dz.cook.benefit": "De tazas a gramos, ingrediente por ingrediente.",
  "dz.cook.confDerived": "Derivado de un dato publicado",
  "dz.cook.confEstimate": "Estimación",
  "dz.cook.confPublished": "Dato publicado",
  "dz.cook.confidence": "Fiabilidad",
  "dz.cook.count": "{n} ingredientes con pesos publicados",
  "dz.cook.crossOven": "Conversor de temperatura del horno",
  "dz.cook.crossScaler": "Ajuste de recetas",
  "dz.cook.crossSubs": "Sustituciones de ingredientes",
  "dz.cook.crossUnit": "Conversor de unidades general",
  "dz.cook.cupMetric": "Taza métrica (250 ml)",
  "dz.cook.cupNote": "Una taza estadounidense es de 236.588 ml y una taza métrica de 250 ml — cerca de un 5.7% de diferencia. Esta tabla está hecha sobre la taza estadounidense que publican sus fuentes, así que elegir la taza métrica recalcula el dato en vez de citar la fuente tal cual. Las cucharadas y cucharaditas son fijas y no cambian con ella.",
  "dz.cook.cupStandard": "Tamaño de la taza",
  "dz.cook.cupUs": "Taza estadounidense (236.588 ml)",
  "dz.cook.density": "Densidad",
  "dz.cook.excluded": "Algunos ingredientes se dejan fuera a propósito porque ninguna fuente primaria publica su peso por taza. Un número inventado sería peor que ninguno.",
  "dz.cook.flourNote": "La harina es el caso a vigilar: King Arthur publica la harina común a 120 g por taza, servida con cuchara y enrasada, y advierte que una taza bien compactada puede llegar a unos 160 g — casi un tercio más. Cuál te toca depende de cómo llenes la taza, así que aquí nunca se promedian las dos.",
  "dz.cook.from": "De",
  "dz.cook.generic": "Otro ingrediente (aproximado)",
  "dz.cook.ingredient": "Ingrediente",
  "dz.cook.mode": "Tipo de conversión",
  "dz.cook.modeIngredient": "Por ingrediente (tazas ↔ gramos)",
  "dz.cook.modeVolume": "Volumen ↔ volumen",
  "dz.cook.modeWeight": "Peso ↔ peso",
  "dz.cook.name": "Conversor de cocina",
  "dz.cook.noResults": "Ningún ingrediente coincide con esa búsqueda.",
  "dz.cook.note": "Nota",
  "dz.cook.pageTitle": "Conversor de medidas de cocina — Dzzz",
  "dz.cook.perCup": "Por taza estadounidense",
  "dz.cook.result": "Resultado",
  "dz.cook.search": "Buscar ingredientes",
  "dz.cook.searchPlaceholder": "Busca en árabe o inglés",
  "dz.cook.seo": "Convierte tazas, cucharadas y cucharaditas a gramos y mililitros para un ingrediente concreto, con los pesos por taza publicados por USDA FoodData Central y la tabla de King Arthur Baking. Una taza de harina y una taza de arroz no pesan lo mismo, y cada dato de aquí menciona su fuente. Funciona por completo en tu dispositivo.",
  "dz.cook.source": "Fuente",
  "dz.cook.swap": "Intercambiar unidades",
  "dz.cook.title": "Conversor de medidas de cocina",
  "dz.cook.to": "A",
  "dz.cook.unitCup": "taza",
  "dz.cook.unitFloz": "fl oz (EE. UU.)",
  "dz.cook.unitG": "g",
  "dz.cook.unitKg": "kg",
  "dz.cook.unitL": "l",
  "dz.cook.unitLb": "lb",
  "dz.cook.unitMl": "ml",
  "dz.cook.unitOz": "oz",
  "dz.cook.unitTbsp": "cda",
  "dz.cook.unitTsp": "cdta",
  "dz.cook.useGeneric": "¿No está en la lista? Usa un valor aproximado",
  "dz.cook.viewSource": "Ver la fuente",
  "dz.copy": "Copiar",
  "dz.csv.capHard": "El archivo es demasiado grande — el límite es 25 MB por archivo (esto corre en la memoria de tu navegador).",
  "dz.csv.capSoft": "Archivo grande — puede tardar un momento y usar bastante memoria.",
  "dz.csv.chooserIntro": "Seis herramientas pequeñas para trabajar con archivos CSV, TSV, XLSX y JSON — elige la que se ajuste a lo que quieres hacer. No se sube nada.",
  "dz.csv.chooserLink": "¿No sabes cuál necesitas? Ver las seis →",
  "dz.csv.chooserTitle": "¿Qué herramienta de CSV necesitas?",
  "dz.csv.desktopNote": "Para archivos grandes, un navegador de escritorio va mejor.",
  "dz.csv.pageTitle": "¿Qué herramienta de CSV necesitas? — Herramientas Dzzz",
  "dz.csv.showingN": "Mostrando {n} de {total} filas",
  "dz.csv.use.clean": "Quita espacios, corrige mayúsculas y normaliza dígitos y fechas en un archivo.",
  "dz.csv.use.compare": "Mira qué cambió entre dos versiones de un archivo.",
  "dz.csv.use.convert": "Cambia el formato de un archivo — CSV, TSV, XLSX o JSON.",
  "dz.csv.use.dedupe": "Elimina las filas duplicadas de un archivo.",
  "dz.csv.use.merge": "Combina varios archivos en una sola tabla.",
  "dz.csv.use.split": "Divide un archivo en partes más pequeñas, por número de filas o por el valor de una columna.",
  "dz.curves.already": "Este PDF no tiene fuentes — ya está listo para imprenta.",
  "dz.curves.benefit": "Convierte las fuentes en trazos para imprimir en cualquier sitio.",
  "dz.curves.drop": "Suelta los PDF o toca para elegir",
  "dz.curves.encrypted": "Este PDF está protegido con contraseña — quita la contraseña primero.",
  "dz.curves.engineHint": "motor de ~12 MB",
  "dz.curves.keep": "Conservar el original",
  "dz.curves.name": "PDF a curvas",
  "dz.curves.pageTitle": "PDF a curvas — Herramientas Dzzz",
  "dz.curves.proof": "{fonts} fuentes → 0 · {pages} páginas verificadas · {iou}% de tinta coincide",
  "dz.curves.seo": "Convierte todas las fuentes de un PDF en trazos vectoriales (curvas / 转曲) para la imprenta, directamente en tu navegador. La herramienta verifica el resultado píxel a píxel — no se sube nada a ningún servidor.",
  "dz.curves.tooBig": "Eso supera el límite de 100 MB.",
  "dz.curves.verb": "Convertir a curvas",
  "dz.curves.verifyFail": "La verificación falló — el archivo convertido no coincidía con el original, así que no se entregó.",
  "dz.curves.warnAnnots": "Las anotaciones se aplanaron — su apariencia puede cambiar.",
  "dz.curves.warnForms": "Los campos de formulario se aplanaron — su apariencia puede cambiar.",
  "dz.cycle.avgAuto": "Calculada a partir de tus fechas registradas ({n}).",
  "dz.cycle.avgLen": "Duración media del ciclo (días)",
  "dz.cycle.avgRange": "Escribe una duración entre 15 y 60 días.",
  "dz.cycle.benefit": "Registra las fechas de inicio del periodo para ver el próximo periodo, la ovulación y la ventana fértil estimados — todo se queda en tu dispositivo.",
  "dz.cycle.confirmPrompt": "¿Eliminar de este dispositivo todos los datos del ciclo? No se puede deshacer.",
  "dz.cycle.dataHeading": "Tus datos",
  "dz.cycle.deleteAllBtn": "Eliminar todos los datos",
  "dz.cycle.deleteCancel": "Cancelar",
  "dz.cycle.deleteConfirm": "Toca otra vez para confirmar",
  "dz.cycle.deleteEntry": "Eliminar la fecha {date}",
  "dz.cycle.deletedMsg": "Se eliminaron todos los datos de este dispositivo.",
  "dz.cycle.disclaimer": "Solo estimaciones — no es un método anticonceptivo ni asesoramiento médico. Consulta a un profesional de la salud para la planificación familiar.",
  "dz.cycle.empty": "Aún no hay fechas registradas. Registra el inicio de tu último periodo para ver las estimaciones.",
  "dz.cycle.export": "Exportar datos (JSON)",
  "dz.cycle.fertile": "Ventana fértil (estimada)",
  "dz.cycle.logBtn": "Registrar el inicio del periodo",
  "dz.cycle.logDate": "Fecha de inicio del periodo",
  "dz.cycle.logged": "Inicios de periodo registrados",
  "dz.cycle.name": "Seguimiento del ciclo",
  "dz.cycle.nextPeriod": "Próximo periodo (estimado)",
  "dz.cycle.ovulation": "Ovulación (estimada)",
  "dz.cycle.pageTitle": "Seguimiento del ciclo — Herramientas Dzzz",
  "dz.cycle.predictions": "Estimaciones",
  "dz.cycle.privacy": "Tus datos se quedan en este dispositivo — no se sube nada y no hay cuenta.",
  "dz.cycle.seo": "Calendario privado del periodo y la ovulación que funciona por completo en tu dispositivo — registra las fechas de inicio del periodo para ver el próximo periodo, la ovulación y la ventana fértil estimados. No se sube nada y no hay cuenta.",
  "dz.cycle.settings": "Ajustes",
  "dz.cycle.title": "Seguimiento del ciclo",
  "dz.dedupeCsv.benefit": "Quita las filas duplicadas de un archivo CSV/Excel",
  "dz.dedupeCsv.keep": "Conservar",
  "dz.dedupeCsv.keepFirst": "La primera aparición",
  "dz.dedupeCsv.keepLast": "La última aparición",
  "dz.dedupeCsv.keys": "Detectar duplicados por (déjalo sin marcar para la fila entera)",
  "dz.dedupeCsv.name": "Quitar duplicados en CSV",
  "dz.dedupeCsv.pageTitle": "Quitar filas duplicadas de un CSV — Herramientas Dzzz",
  "dz.dedupeCsv.pick": "Elige un archivo para quitar duplicados",
  "dz.dedupeCsv.removed": "Se quitaron {n} filas duplicadas",
  "dz.dedupeCsv.run": "Quitar duplicados",
  "dz.dedupeCsv.seo": "Quita las filas duplicadas de un archivo CSV, TSV, XLSX o JSON, directamente en tu navegador — compara la fila entera o las columnas clave que elijas, y conserva la primera o la última aparición. No se sube nada.",
  "dz.dedupeCsv.title": "Quitar filas duplicadas",
  "dz.dedupeCsv.wholeRow": "Ninguna columna seleccionada — se compara la fila entera.",
  "dz.dn.abDenoised": "B · Sin ruido",
  "dz.dn.abOriginal": "A · Original",
  "dz.dn.another": "Limpiar otro archivo",
  "dz.dn.benefit": "Limpia el ruido de fondo de tus grabaciones de voz — en tu propio dispositivo.",
  "dz.dn.drop": "Suelta un archivo de audio o video, o toca para elegir",
  "dz.dn.engineHint": "~1 MB",
  "dz.dn.failed": "No funcionó — prueba con otro archivo.",
  "dz.dn.name": "Reducir ruido de voz",
  "dz.dn.pageTitle": "Reducir ruido de voz — Dzzz",
  "dz.dn.pause": "Pausar",
  "dz.dn.play": "Reproducir",
  "dz.dn.seo": "Quita el ruido de fondo y el siseo de las grabaciones de voz y del audio de tus videos, gratis — RNNoise funciona por completo en tu dispositivo, así que no se sube nada. Compara el audio original y el limpio uno junto al otro, y guarda después el audio limpio o el video completo con su pista de audio sustituida. Sin subidas, sin cuenta.",
  "dz.dn.tagDenoised": "Sin ruido",
  "dz.dn.tagOriginal": "Original",
  "dz.dn.verb": "Limpiar el audio",
  "dz.dn.videoNote": "Al guardar se exporta tu video completo con la pista de audio ya limpia.",
  "dz.dn.working": "Limpiando el audio…",
  "dz.dn.workingElapsed": "Transcurrido {s} s",
  "dz.docpdf.addImages": "Añadir más imágenes",
  "dz.docpdf.benefit": "Convierte Markdown, HTML, texto sin formato o imágenes a PDF con el árabe bien formado — todo funciona en tu dispositivo.",
  "dz.docpdf.capImages": "Puedes añadir hasta 50 imágenes.",
  "dz.docpdf.capSize": "El tamaño total de las imágenes no puede pasar de 200 MB.",
  "dz.docpdf.clearImages": "Volver a escribir texto",
  "dz.docpdf.desc": "Markdown, HTML, texto e imágenes a PDF — el árabe se ve correcto.",
  "dz.docpdf.done": "Tu PDF está listo — la descarga ya empezó.",
  "dz.docpdf.download": "Descargar PDF",
  "dz.docpdf.empty": "Pega algo de contenido o elige un archivo primero.",
  "dz.docpdf.error": "Algo salió mal al crear el PDF. Inténtalo de nuevo.",
  "dz.docpdf.fileHint": "Markdown (.md), HTML (.html), texto (.txt) o imágenes (JPG, PNG, WebP, HEIC)",
  "dz.docpdf.fileReadError": "No se pudo leer ese archivo — prueba con otro.",
  "dz.docpdf.imagesMode": "Las imágenes se colocan una por página, como en la herramienta Imágenes a PDF.",
  "dz.docpdf.inputLabel": "Contenido",
  "dz.docpdf.landscape": "Horizontal",
  "dz.docpdf.marginLabel": "Márgenes",
  "dz.docpdf.marginNarrow": "Estrechos (10 mm)",
  "dz.docpdf.marginNormal": "Normales (20 mm)",
  "dz.docpdf.marginWide": "Anchos (30 mm)",
  "dz.docpdf.name": "Documento a PDF",
  "dz.docpdf.orientationLabel": "Orientación",
  "dz.docpdf.pageTitle": "Documento a PDF — Markdown, HTML, texto e imágenes, listo para el árabe — Herramientas Dzzz",
  "dz.docpdf.paste": "Pega o escribe tu contenido aquí…",
  "dz.docpdf.pickFile": "Elegir un archivo",
  "dz.docpdf.portrait": "Vertical",
  "dz.docpdf.preview": "Vista previa de la primera página",
  "dz.docpdf.previewEmpty": "Tu primera página aparece aquí mientras escribes.",
  "dz.docpdf.print": "Imprimir…",
  "dz.docpdf.printNote": "Abre el diálogo de impresión de tu navegador — elige ahí «Guardar como PDF» para obtener texto seleccionable y buscable.",
  "dz.docpdf.quality2x": "2× (recomendada)",
  "dz.docpdf.quality3x": "3× (más nítida)",
  "dz.docpdf.qualityHint": "Más calidad significa páginas más nítidas y un PDF bastante más grande.",
  "dz.docpdf.qualityLabel": "Calidad",
  "dz.docpdf.rasterNote": "El texto del PDF descargado está rasterizado (guardado como imágenes) — no se puede seleccionar ni buscar, y el archivo pesa más que un PDF normal. Para texto seleccionable, usa Imprimir…",
  "dz.docpdf.seo": "Convierte Markdown, HTML, texto sin formato e imágenes a PDF por completo en tu navegador — no se sube nada. Tu navegador une y ordena el texto árabe correctamente antes de dibujar cada página. Elige A4 o Letter, vertical u horizontal, los márgenes y la calidad, y mira una vista previa en vivo de la primera página mientras escribes. El PDF descargado contiene páginas rasterizadas, así que su texto no se puede seleccionar ni buscar; usa la opción Imprimir para obtener texto seleccionable a través del diálogo de impresión del navegador.",
  "dz.docpdf.setup": "Configuración de página",
  "dz.docpdf.sizeLabel": "Tamaño de página",
  "dz.docpdf.srcHtml": "HTML",
  "dz.docpdf.srcLabel": "Origen",
  "dz.docpdf.srcMarkdown": "Markdown",
  "dz.docpdf.srcText": "Texto sin formato",
  "dz.docpdf.tooLarge": "Este documento es más grande de lo que esta herramienta puede manejar en el navegador (hasta 2 MB por archivo, o cerca de 1,000,000 de caracteres de texto). Divídelo en partes más pequeñas y convierte cada parte por separado.",
  "dz.docpdf.working": "Creando tu PDF…",
  "dz.duedate.benefit": "Estima tu fecha de parto desde la última menstruación, la fecha de concepción o una transferencia embrionaria de FIV — en calendario gregoriano e hijri.",
  "dz.duedate.dateConception": "Fecha de concepción (ovulación)",
  "dz.duedate.dateLmp": "Primer día de tu última menstruación",
  "dz.duedate.dateTransfer": "Fecha de la transferencia embrionaria",
  "dz.duedate.disclaimer": "Una estimación con fines informativos — no es consejo médico. Quien te atiende confirma la datación del embarazo, normalmente con una ecografía temprana.",
  "dz.duedate.embryoDay3": "Embrión de día 3",
  "dz.duedate.embryoDay5": "Embrión de día 5",
  "dz.duedate.embryoLabel": "Edad del embrión al transferirlo",
  "dz.duedate.gaLabel": "Edad gestacional hoy",
  "dz.duedate.gaWeeksDays": "Semanas: {w} · Días: {d}",
  "dz.duedate.modeConception": "Desde la concepción",
  "dz.duedate.modeIvf": "Transferencia FIV",
  "dz.duedate.modeLmp": "Desde la última menstruación",
  "dz.duedate.name": "Calculadora de fecha de parto",
  "dz.duedate.noteCycle": "El método de la última menstruación supone un ciclo de 28 días; solo entre el 10 y el 13% de los ciclos duran exactamente 28 días.",
  "dz.duedate.noteSpread": "Solo entre el 4 y el 5% de los partos ocurren en la fecha estimada.",
  "dz.duedate.pageTitle": "Calculadora de fecha de parto — Herramientas Dzzz",
  "dz.duedate.result": "Fecha probable de parto",
  "dz.duedate.seo": "Calculadora gratuita de fecha de parto: estima tu fecha de parto desde la última menstruación, la fecha de concepción o una transferencia embrionaria de FIV, con el resultado en calendario gregoriano e hijri, además de la edad gestacional actual y el trimestre. Funciona por completo en tu dispositivo.",
  "dz.duedate.title": "Calculadora de fecha de parto",
  "dz.duedate.tri1": "Primer trimestre",
  "dz.duedate.tri2": "Segundo trimestre",
  "dz.duedate.tri3": "Tercer trimestre",
  "dz.enh.another": "Mejorar otra foto",
  "dz.enh.benefit": "Restaura fotos antiguas en privado, en tu dispositivo.",
  "dz.enh.downscaled": "La foto se redimensionó para que el proceso siga fluido en este dispositivo.",
  "dz.enh.drop": "Suelta una foto antigua o toca para elegir",
  "dz.enh.engineHint": "Motor de ~22 MB",
  "dz.enh.failed": "No funcionó: prueba con otra foto.",
  "dz.enh.name": "Mejorar una foto antigua",
  "dz.enh.pageTitle": "Mejorar una foto antigua — Herramientas Dzzz",
  "dz.enh.scale2x": "2× (más rápido)",
  "dz.enh.scale4x": "4× (más detalle)",
  "dz.enh.scaleLabel": "Ampliación",
  "dz.enh.seo": "Restaura y amplía gratis fotos antiguas o de baja resolución: un modelo de IA de superresolución funciona por completo en tu dispositivo, así que tus fotos nunca salen de él. Elige ampliación 2× o 4×, compara el antes y el después y guarda el resultado. Sin subidas y sin cuenta.",
  "dz.enh.verb": "Mejorar la foto",
  "dz.enh.wasmWarn": "Tu dispositivo no admite WebGPU, así que esto funciona en un modo de compatibilidad más lento: las fotos grandes se redimensionan solas para que el proceso siga fluido.",
  "dz.enh.working": "Mejorando… ~{s} s en este dispositivo",
  "dz.esb.benefit": "Consulta tu indemnización y el cálculo exacto",
  "dz.esb.copied": "Copiado",
  "dz.esb.copySummary": "Copiar resumen (listo para WhatsApp)",
  "dz.esb.disclaimer": "Una estimación según la Ley Laboral saudí — tu contrato o un tribunal pueden decir otra cosa.",
  "dz.esb.end": "Fecha de fin",
  "dz.esb.full": "derecho completo",
  "dz.esb.hijriInput": "Escribir las fechas en calendario hégira",
  "dz.esb.line1": "Primeros 5 años — medio mes por año",
  "dz.esb.line2": "Después de 5 años — un mes por año",
  "dz.esb.line3": "Tiempo de servicio",
  "dz.esb.line4": "Factor del derecho",
  "dz.esb.name": "Indemnización por fin de servicio",
  "dz.esb.notAdvice": "Informativo — no es asesoría legal.",
  "dz.esb.pageDesc": "Calcula la indemnización por fin de servicio según la ley laboral saudí — elige el motivo del término, el salario y el tiempo de servicio.",
  "dz.esb.pageTitle": "Calculadora de indemnización por fin de servicio — Herramientas Dzzz",
  "dz.esb.rEmployer": "Mi empleador terminó mi contrato",
  "dz.esb.rExpired": "Venció el contrato de plazo fijo",
  "dz.esb.rForced": "Dejé el trabajo por una causa que la ley reconoce / fuerza mayor",
  "dz.esb.rMarriage": "Trabajadora que deja el empleo dentro de 6 meses del matrimonio o 3 del parto",
  "dz.esb.rResigned": "Renuncié",
  "dz.esb.reason": "¿Por qué termina el trabajo?",
  "dz.esb.seo": "Estima tu indemnización saudí por fin de servicio (mukafaʼat nihayat al-khidma) según los artículos 84 y 85 de la Ley Laboral — con el desglose exacto: la parte de los primeros cinco años, la parte posterior, el año incompleto y el factor por renuncia. Funciona por completo en tu dispositivo.",
  "dz.esb.start": "Fecha de inicio",
  "dz.esb.tagNew": "Nuevo",
  "dz.esb.total": "Tu indemnización",
  "dz.esb.wage": "Salario mensual (SAR)",
  "dz.esb.wageHint": "El salario tal como lo define la ley — normalmente el básico más las asignaciones fijas; ante la duda, usa el bruto.",
  "dz.esb.wageWord": "salario",
  "dz.esb.yearsUnit": "{n} años",
  "dz.excelConverter.moved": "Ahora está en",
  "dz.fav.add": "Añadir a favoritos",
  "dz.fav.added": "Añadido a favoritos",
  "dz.fav.done": "Listo",
  "dz.fav.edit": "Editar",
  "dz.fav.editing": "Editando favoritos",
  "dz.fav.lifted": "Levantado",
  "dz.fav.moved": "{name} movido a la posición {n} de {m}",
  "dz.fav.remove": "Quitar de favoritos",
  "dz.fav.removed": "Quitado de favoritos",
  "dz.fav.seeAll": "Ver todos los favoritos",
  "dz.fav.yours": "TUS FAVORITOS",
  "dz.flight.addLeg": "Añadir un tramo",
  "dz.flight.arrives": "Llegada",
  "dz.flight.arrivesLocal": "Hora local en {city}",
  "dz.flight.benefit": "Hora de llegada, escalas y el total puerta a puerta.",
  "dz.flight.blockNote": "Las duraciones publicadas son tiempo de bloque, de puerta a puerta. Sumarla al momento de la salida y leer el resultado en el reloj de la ciudad de llegada es todo el cálculo — la línea de cambio de fecha y cualquier cambio de horario de verano ya están dentro.",
  "dz.flight.comfortable": "Por encima del mínimo por defecto",
  "dz.flight.connectionType": "Tipo de conexión",
  "dz.flight.copyLabel": "Itinerario",
  "dz.flight.copySummary": "Copiar el itinerario",
  "dz.flight.daysEarlier": "Llega {n} días antes",
  "dz.flight.daysLater": "Llega {n} días después",
  "dz.flight.departDate": "Fecha de salida",
  "dz.flight.departTime": "Hora de salida",
  "dz.flight.departs": "Salida",
  "dz.flight.desc": "Hora de llegada, escalas y el total puerta a puerta.",
  "dz.flight.duration": "Duración del vuelo",
  "dz.flight.durationHint": "Usa la duración programada que figura en tu reserva.",
  "dz.flight.errAmbiguous": "Esa hora de salida ocurre dos veces en {city} ese día. Se usa la primera.",
  "dz.flight.errCity": "Elige una ciudad de salida y una de llegada.",
  "dz.flight.errDuration": "Introduce una duración de vuelo mayor que cero.",
  "dz.flight.errGap": "Esa hora de salida no existe en {city} ese día — los relojes se adelantan.",
  "dz.flight.errNegativeLayover": "El siguiente tramo sale antes de que aterrice el anterior. Revisa las horas.",
  "dz.flight.errZone": "Este navegador no reconoce esa zona horaria.",
  "dz.flight.fromCity": "Desde",
  "dz.flight.hm": "{h} h {m} min",
  "dz.flight.hours": "Horas",
  "dz.flight.hoursShort": "h",
  "dz.flight.layover": "Escala",
  "dz.flight.layoverAt": "Escala en {city}",
  "dz.flight.layoverN": "Escala {n}",
  "dz.flight.legN": "Tramo {n}",
  "dz.flight.linkFirstLeg": "El enlace lleva solo el primer tramo — añade el resto al abrirlo.",
  "dz.flight.mct": "Mínimo por defecto",
  "dz.flight.mctEdit": "Ajustar los mínimos",
  "dz.flight.mctLabel": "Tiempo mínimo de conexión por defecto",
  "dz.flight.mctNote": "Estos son los tiempos mínimos de conexión que IATA fija por defecto y que usan los sistemas de reservas cuando un aeropuerto no ha declarado un valor propio. Los aeropuertos y las aerolíneas fijan sus propios mínimos, que prevalecen sobre estos. Es una regla de reserva, no una opinión sobre si la conexión resulta cómoda.",
  "dz.flight.mctReset": "Volver a los valores de IATA",
  "dz.flight.mctSource": "IATA SSIM, capítulo 8, §8.10.2",
  "dz.flight.mctValue": "{n} min",
  "dz.flight.minutes": "Minutos",
  "dz.flight.minutesShort": "min",
  "dz.flight.name": "Calculadora de tiempo de vuelo",
  "dz.flight.nextDay": "Llega al día siguiente",
  "dz.flight.pageTitle": "Calculadora de tiempo de vuelo — Dzzz",
  "dz.flight.prevDay": "Llega el día anterior",
  "dz.flight.removeLeg": "Quitar el tramo {n}",
  "dz.flight.results": "Tu itinerario",
  "dz.flight.sameDay": "Llega el mismo día",
  "dz.flight.seo": "Introduce la ciudad y la hora de salida y la duración publicada del vuelo, y lee la llegada en el reloj de la propia ciudad de destino — con el cambio de fecha indicado, si lo hay. Añade tramos para una conexión y obtienes cada escala y el total puerta a puerta. Las duraciones publicadas son tiempo de bloque, de puerta a puerta, que simplemente se suma al momento de la salida, así que cruzar la línea de cambio de fecha o un cambio de horario de verano en pleno vuelo salen de la propia aritmética en lugar de necesitar un caso especial. Funciona por completo en tu dispositivo.",
  "dz.flight.seoIntro": "Introduce la ciudad y la hora de salida y la duración publicada del vuelo, y lee la llegada en el reloj de la propia ciudad de destino — con el cambio de fecha indicado, si lo hay. Añade tramos para una conexión y obtienes cada escala y el total puerta a puerta. Las duraciones publicadas son tiempo de bloque, de puerta a puerta, que simplemente se suma al momento de la salida, así que cruzar la línea de cambio de fecha o un cambio de horario de verano en pleno vuelo salen de la propia aritmética en lugar de necesitar un caso especial. Funciona por completo en tu dispositivo.",
  "dz.flight.statusDD": "Nacional a nacional",
  "dz.flight.statusDI": "Nacional a internacional",
  "dz.flight.statusID": "Internacional a nacional",
  "dz.flight.statusII": "Internacional a internacional",
  "dz.flight.statusInterstation": "Otro aeropuerto",
  "dz.flight.tight": "Por debajo del mínimo por defecto",
  "dz.flight.tightNote": "Esta escala queda por debajo de los {n} min que rigen por defecto para este tipo de conexión.",
  "dz.flight.title": "Calculadora de tiempo de vuelo",
  "dz.flight.toCity": "Hasta",
  "dz.flight.totalDoor": "Puerta a puerta",
  "dz.flight.totalFlying": "En el aire",
  "dz.flight.totalGround": "En tierra",
  "dz.focal.label": "Punto focal",
  "dz.focal.pos": "{x}% horizontal, {y}% vertical",
  "dz.frac.approx": "Aproximado: los decimales periódicos se redondean a la fracción simple más cercana.",
  "dz.frac.asDecimal": "Como decimal",
  "dz.frac.asMixed": "Como número mixto",
  "dz.frac.asPercent": "Como porcentaje",
  "dz.frac.benefit": "Suma, resta, multiplica y divide fracciones.",
  "dz.frac.den": "Denominador",
  "dz.frac.errDen": "El denominador no puede ser cero.",
  "dz.frac.errDivZero": "No se puede dividir entre cero.",
  "dz.frac.errTooBig": "El denominador es demasiado grande.",
  "dz.frac.first": "Primer valor",
  "dz.frac.fromDecimal": "Decimal",
  "dz.frac.name": "Calculadora de fracciones",
  "dz.frac.num": "Numerador",
  "dz.frac.opAdd": "Sumar",
  "dz.frac.opDiv": "Dividir",
  "dz.frac.opMul": "Multiplicar",
  "dz.frac.opSub": "Restar",
  "dz.frac.pageTitle": "Calculadora de fracciones — Dzzz",
  "dz.frac.result": "Resultado",
  "dz.frac.second": "Segundo valor",
  "dz.frac.seo": "Suma, resta, multiplica y divide fracciones y números mixtos con simplificación automática, pasos opcionales del desarrollo y conversión entre fracción, decimal y porcentaje. Funciona por completo en tu dispositivo.",
  "dz.frac.showSteps": "Mostrar los pasos",
  "dz.frac.steps": "Desarrollo",
  "dz.frac.tabCalc": "Calcular",
  "dz.frac.tabConvert": "Convertir",
  "dz.frac.title": "Calculadora de fracciones",
  "dz.frac.toFraction": "Como fracción",
  "dz.frac.whole": "Entero",
  "dz.fuel.addLeg": "Añadir un tramo",
  "dz.fuel.benefit": "Cuánto combustible necesitas, cuánto cuesta y cuánto pone cada uno.",
  "dz.fuel.consumption": "Consumo de combustible",
  "dz.fuel.consumptionHint": "Litros por 100 km — cuanto menos, mejor.",
  "dz.fuel.copyLabel": "Resumen",
  "dz.fuel.copySummary": "Copiar el resumen",
  "dz.fuel.costPerKm": "Costo por km",
  "dz.fuel.costPerMi": "Costo por milla",
  "dz.fuel.currency": "Moneda",
  "dz.fuel.currencyPlaceholder": "SAR",
  "dz.fuel.desc": "Cuánto combustible necesitas, cuánto cuesta y cuánto pone cada uno.",
  "dz.fuel.distance": "Distancia",
  "dz.fuel.distanceUnit": "Unidad de distancia",
  "dz.fuel.economy": "Rendimiento de combustible",
  "dz.fuel.economyHint": "Distancia por unidad de combustible — cuanto más, mejor.",
  "dz.fuel.equivHint": "Útil cuando el manual del vehículo y una app de combustible no coinciden en la unidad.",
  "dz.fuel.equivalents": "El mismo dato, en cuatro unidades",
  "dz.fuel.errConsumption": "Escribe un valor mayor que cero.",
  "dz.fuel.errDistance": "Escribe una distancia mayor que cero.",
  "dz.fuel.errGeneric": "Revisa los números — no se puede calcular.",
  "dz.fuel.errPeople": "Indica al menos una persona.",
  "dz.fuel.errPrice": "Escribe un precio mayor que cero.",
  "dz.fuel.figureUnit": "Unidad del dato",
  "dz.fuel.fuelNeeded": "Combustible necesario",
  "dz.fuel.galImp": "galones imperiales",
  "dz.fuel.galUS": "galones estadounidenses",
  "dz.fuel.legDistance": "Distancia",
  "dz.fuel.legName": "Tramo",
  "dz.fuel.legNamePlaceholder": "De Riad a Qassim",
  "dz.fuel.legsEmpty": "Aún no hay tramos — o escribe arriba una sola distancia total.",
  "dz.fuel.legsHint": "Opcional — añade los tramos y se suman solos.",
  "dz.fuel.legsTitle": "Tramos del trayecto",
  "dz.fuel.litres": "litros",
  "dz.fuel.mpgVariant": "El galón estadounidense y el imperial no miden lo mismo, así que el mismo vehículo marca cerca de un 20% más en MPG imperial. Elige el que use tu dato.",
  "dz.fuel.name": "Calculadora de costo de combustible",
  "dz.fuel.noPrice": "Los precios del combustible cambian, así que no hay ninguno incorporado — escribe el precio que estás pagando hoy.",
  "dz.fuel.pageTitle": "Calculadora de costo de combustible — Dzzz",
  "dz.fuel.people": "Personas que comparten el costo",
  "dz.fuel.perPerson": "Por persona",
  "dz.fuel.priceHint": "Lo que cobre el surtidor hoy.",
  "dz.fuel.priceLabelGalImp": "Precio por galón imperial",
  "dz.fuel.priceLabelGalUS": "Precio por galón estadounidense",
  "dz.fuel.priceLabelL": "Precio por litro",
  "dz.fuel.removeLeg": "Quitar este tramo",
  "dz.fuel.results": "El trayecto",
  "dz.fuel.roundTrip": "Ida y vuelta",
  "dz.fuel.roundTripHint": "Cuenta la distancia dos veces.",
  "dz.fuel.seo": "Calcula cuánto combustible necesita un trayecto, cuánto cuesta al precio de hoy y cuánto le toca a cada persona. Distancia en kilómetros o millas; consumo en L/100 km, km/L o MPG — y en MPG siempre se indica si es el galón estadounidense o el imperial, porque el mismo vehículo marca cerca de un 20% más en uno que en el otro. Añade tramos para una ruta con varias paradas. No hay ningún precio de combustible incorporado: los precios del surtidor cambian, así que escribes el que estás pagando. Funciona por completo en tu dispositivo.",
  "dz.fuel.seoIntro": "Calcula cuánto combustible necesita un trayecto, cuánto cuesta al precio de hoy y cuánto le toca a cada persona. Distancia en kilómetros o millas; consumo en L/100 km, km/L o MPG — y en MPG siempre se indica si es el galón estadounidense o el imperial, porque el mismo vehículo marca cerca de un 20% más en uno que en el otro. Añade tramos para una ruta con varias paradas. No hay ningún precio de combustible incorporado: los precios del surtidor cambian, así que escribes el que estás pagando. Funciona por completo en tu dispositivo.",
  "dz.fuel.title": "Calculadora de costo de combustible",
  "dz.fuel.totalCost": "Costo total",
  "dz.fuel.totalDistance": "Distancia total",
  "dz.fuel.unitKm": "kilómetros",
  "dz.fuel.unitKmShort": "km",
  "dz.fuel.unitKmpl": "km/L",
  "dz.fuel.unitL100km": "L/100 km",
  "dz.fuel.unitMi": "millas",
  "dz.fuel.unitMiShort": "mi",
  "dz.fuel.unitMpgImp": "MPG (imperial)",
  "dz.fuel.unitMpgUS": "MPG (EE. UU.)",
  "dz.fxc.amount": "Cantidad",
  "dz.fxc.asOf": "Tipos de cambio de {time} · fuente: {source}",
  "dz.fxc.benefit": "Tipos de cambio en vivo: divisas principales y del Golfo",
  "dz.fxc.from": "De",
  "dz.fxc.name": "Conversor de divisas",
  "dz.fxc.note": "Tipos indicativos — los bancos y las casas de cambio aplican sus propios tipos y comisiones.",
  "dz.fxc.othersTitle": "1 {code} equivale a",
  "dz.fxc.pageTitle": "Conversor de divisas — Dzzz",
  "dz.fxc.seo": "Conversor de divisas gratuito para SAR, AED, KWD, USD, EUR y más, con tipos de cambio indicativos en vivo.",
  "dz.fxc.stale": "Los tipos pueden estar desactualizados (de {time}) — no se pudieron obtener tipos nuevos.",
  "dz.fxc.swap": "Intercambiar las divisas",
  "dz.fxc.title": "Conversor de divisas",
  "dz.fxc.to": "A",
  "dz.fxc.unavailable": "Tipos de cambio no disponibles — conéctate a internet una vez para cargarlos.",
  "dz.gen.exporting": "Exportando…",
  "dz.gen.png": "PNG",
  "dz.gen.svg": "SVG",
  "dz.gif.cap": "Los GIF están limitados a 30 segundos.",
  "dz.gif.estimate": "~{size}",
  "dz.gif.fps": "FPS",
  "dz.gif.pageTitle": "Video → GIF — Herramientas Dzzz",
  "dz.gif.size": "Tamaño",
  "dz.gif.tooBig": "~{size} — grande",
  "dz.gif.verb": "Crear GIF",
  "dz.gold.agoDays": "hace {n} d",
  "dz.gold.agoHours": "hace {n} h",
  "dz.gold.agoMins": "hace {n} min",
  "dz.gold.apply": "Aplicar",
  "dz.gold.benefit": "Precio del oro en vivo con hechura e IVA",
  "dz.gold.bullionInfo": "El oro de inversión (pureza 99%+) está exento de IVA en Arabia Saudita; la joyería tributa al 15%.",
  "dz.gold.bullionToggle": "Lingote / oro de inversión (exento de IVA)",
  "dz.gold.cancel": "Cancelar",
  "dz.gold.clear": "Borrar",
  "dz.gold.copied": "Copiado",
  "dz.gold.copySummary": "Copiar el resumen (listo para WhatsApp)",
  "dz.gold.currency": "SAR",
  "dz.gold.disclaimer": "Precio orientativo — cada vendedor fija su propia hechura y su margen. No es asesoramiento de inversión.",
  "dz.gold.edit": "Editar",
  "dz.gold.exempt": "Exento",
  "dz.gold.karatLabel": "Quilates",
  "dz.gold.loading": "Cargando el precio del oro…",
  "dz.gold.making": "Hechura",
  "dz.gold.makingFixed": "fija",
  "dz.gold.manualHint": "Sustituye al precio en vivo hasta que lo borres.",
  "dz.gold.manualLabel": "Precio del gramo del vendedor (manual)",
  "dz.gold.manualNote": "precio manual",
  "dz.gold.mcGram": "Por gramo",
  "dz.gold.mcGramHint": "Hechura habitual en joyería: 20–60 SAR/g",
  "dz.gold.mcGramInputLabel": "Hechura / gramo",
  "dz.gold.mcModeLabel": "Modo de hechura",
  "dz.gold.mcPercent": "Porcentaje",
  "dz.gold.mcPercentHint": "Lo habitual: 6–12% del valor del oro en bruto",
  "dz.gold.mcPercentInputLabel": "Hechura %",
  "dz.gold.mcPiece": "Por pieza",
  "dz.gold.mcPieceHint": "Un cargo fijo por la pieza entera",
  "dz.gold.mcPieceInputLabel": "Hechura (importe fijo)",
  "dz.gold.name": "Calculadora de oro",
  "dz.gold.pageDesc": "Calcula el precio del oro con la hechura y el IVA — precio en vivo por quilates con el desglose completo.",
  "dz.gold.pageTitle": "Calculadora del precio del oro — Herramientas Dzzz",
  "dz.gold.priceLabel": "Precio del gramo ({karat})",
  "dz.gold.profit": "Ganancia del vendedor",
  "dz.gold.profitLabel": "Ganancia del vendedor / gramo (opcional)",
  "dz.gold.rawLabel": "Valor del oro en bruto",
  "dz.gold.refresh": "Actualizar",
  "dz.gold.seo": "Calculadora del precio del oro con hechura e IVA — escribe el peso del oro, elige los quilates (18/21/22/24) y fija la hechura por gramo, como porcentaje o como importe fijo por la pieza, con un 15% de IVA opcional. El precio se obtiene en vivo y también puedes escribir el de tu vendedor a mano, y nunca se sube nada.",
  "dz.gold.staleNote": "El precio puede estar desactualizado (última actualización {time})",
  "dz.gold.subtotal": "Subtotal",
  "dz.gold.summaryKarat": "Quilates",
  "dz.gold.summaryWeight": "Peso",
  "dz.gold.tagNew": "Nuevo",
  "dz.gold.title": "Calculadora de oro",
  "dz.gold.total": "Total final",
  "dz.gold.unavailable": "No hay precio en vivo — escribe un precio a mano.",
  "dz.gold.updated": "actualizado {time}",
  "dz.gold.vat": "IVA 15%",
  "dz.gold.vatToggle": "Añadir IVA (15%)",
  "dz.gold.weight": "Peso (gramos)",
  "dz.gpa.addCourse": "Añadir materia",
  "dz.gpa.addRow": "Añadir nota",
  "dz.gpa.addSemester": "Añadir semestre",
  "dz.gpa.benefit": "Escalas saudíes 5.0 y 4.0, EE. UU., porcentaje o propia.",
  "dz.gpa.clear": "Borrar todo",
  "dz.gpa.cleared": "Borrado",
  "dz.gpa.companion": "Convertir los porcentajes con",
  "dz.gpa.course": "Materia",
  "dz.gpa.credits": "Créditos",
  "dz.gpa.cumulative": "GPA acumulado",
  "dz.gpa.customLetter": "Letra",
  "dz.gpa.customPoints": "Puntos",
  "dz.gpa.export": "Copiar resumen",
  "dz.gpa.grade": "Nota",
  "dz.gpa.method": "Método",
  "dz.gpa.methodSimple": "Promedio simple",
  "dz.gpa.methodWeighted": "Ponderado por créditos",
  "dz.gpa.name": "Calculadora de GPA",
  "dz.gpa.needCourses": "Añade al menos una materia con créditos.",
  "dz.gpa.pageTitle": "Calculadora de GPA — Dzzz",
  "dz.gpa.prior": "Historial previo",
  "dz.gpa.priorCredits": "Créditos cursados",
  "dz.gpa.priorGpa": "GPA anterior",
  "dz.gpa.removeCourse": "Quitar materia",
  "dz.gpa.removeSemester": "Quitar semestre",
  "dz.gpa.required": "Necesitas un GPA de {n} este semestre.",
  "dz.gpa.saved": "Guardado solo en este dispositivo. Nunca se sube, sin cuenta.",
  "dz.gpa.scale": "Escala de notas",
  "dz.gpa.scaleCustom": "Escala propia",
  "dz.gpa.scalePercent": "Porcentaje (0–100)",
  "dz.gpa.scalePoints": "Introducir los puntos directamente",
  "dz.gpa.scaleSaudi4": "Saudí 4.0",
  "dz.gpa.scaleSaudi5": "Saudí 5.0",
  "dz.gpa.scaleUs4": "EE. UU. 4.0 (solo letras)",
  "dz.gpa.scaleUs4plus": "EE. UU. 4.0 (con +/−)",
  "dz.gpa.semester": "Semestre",
  "dz.gpa.semesterGpa": "GPA del semestre",
  "dz.gpa.seo": "Calcula el GPA semestral y acumulado en las escalas saudíes 5.0 y 4.0, en la escala estadounidense 4.0 con o sin notas de más y menos, a partir de porcentajes, o en una escala que definas tú. Incluye créditos convalidados y un planificador de GPA objetivo. Funciona por completo en tu dispositivo.",
  "dz.gpa.shareNote": "El enlace lleva solo la escala y el método — tus materias se quedan en este dispositivo.",
  "dz.gpa.target": "Planificador de meta",
  "dz.gpa.targetGpa": "GPA acumulado objetivo",
  "dz.gpa.termCredits": "Créditos de este semestre",
  "dz.gpa.title": "Calculadora de GPA",
  "dz.gpa.totalCredits": "Créditos totales",
  "dz.gpa.unreachable": "Esa meta no se alcanza este semestre — lo máximo posible es {n}.",
  "dz.gpa.vary": "Cada institución fija sus propios cortes de letra y valores de puntos. Esto es una estimación — consulta la escala oficial de tu universidad.",
  "dz.hconv.an.cholesterol": "Colesterol",
  "dz.hconv.an.glucose": "Glucosa",
  "dz.hconv.an.triglycerides": "Triglicéridos",
  "dz.hconv.analyte": "Análisis",
  "dz.hconv.benefit": "Convierte unidades de peso, altura, temperatura y análisis de sangre",
  "dz.hconv.celsius": "°C",
  "dz.hconv.cm": "cm",
  "dz.hconv.disclaimer": "Conversiones de unidades solo como referencia, no son consejo médico. Pide a un profesional de salud o a tu laboratorio que interprete cualquier resultado.",
  "dz.hconv.fahrenheit": "°F",
  "dz.hconv.ft": "pies",
  "dz.hconv.in": "pulg",
  "dz.hconv.kg": "kg",
  "dz.hconv.lb": "lb",
  "dz.hconv.mgdl": "mg/dL",
  "dz.hconv.mmol": "mmol/L",
  "dz.hconv.name": "Conversores de unidades de salud",
  "dz.hconv.pageTitle": "Conversores de unidades de salud — Herramientas Dzzz",
  "dz.hconv.rowHeight": "Altura",
  "dz.hconv.rowLab": "Unidades de análisis de sangre",
  "dz.hconv.rowTemp": "Temperatura corporal",
  "dz.hconv.rowWeight": "Peso",
  "dz.hconv.seo": "Conversores gratuitos de unidades de salud: kilogramos a libras, centímetros a pies y pulgadas, Celsius a Fahrenheit y unidades de análisis de sangre (mg/dL a mmol/L) para colesterol, triglicéridos y glucosa. Funciona por completo en tu dispositivo.",
  "dz.hconv.tempNote": "Referencia: 37°C equivale a 98.6°F, una base normal citada habitualmente. Esto es solo una conversión de unidades: no evalúa si hay fiebre.",
  "dz.hconv.title": "Conversores de unidades de salud",
  "dz.hijri.age": "Edad",
  "dz.hijri.ageGreg": "Edad gregoriana",
  "dz.hijri.ageHijri": "Edad hégira",
  "dz.hijri.benefit": "Convierte fechas, edades y diferencias",
  "dz.hijri.convert": "Convertir",
  "dz.hijri.copied": "Copiado",
  "dz.hijri.copy": "Copiar",
  "dz.hijri.day": "Día",
  "dz.hijri.days": "días",
  "dz.hijri.diff": "Diferencia",
  "dz.hijri.diffDays": "{n} días",
  "dz.hijri.disclaimer": "Usa el calendario oficial Umm al-Qura. Las fechas religiosas pueden variar según la observación de la luna.",
  "dz.hijri.from": "Desde",
  "dz.hijri.greg": "Gregoriano",
  "dz.hijri.hijri": "Hégira — Umm al-Qura",
  "dz.hijri.month": "Mes",
  "dz.hijri.name": "Hégira ↔ gregoriano",
  "dz.hijri.nextGreg": "Próximo cumpleaños gregoriano",
  "dz.hijri.nextHijri": "Próximo cumpleaños hégira",
  "dz.hijri.outOfRange": "Esa fecha queda fuera del rango admitido (1900–2077).",
  "dz.hijri.pageDesc": "Convierte entre fechas de la hégira y gregorianas, calcula la edad y la diferencia entre dos fechas — todo en tu dispositivo, sin enviar nada.",
  "dz.hijri.pageTitle": "Conversor hégira ↔ gregoriano — Dzzz",
  "dz.hijri.seo": "Convierte entre fechas de la hégira (Umm al-Qura) y gregorianas, calcula una edad en ambos calendarios o la diferencia entre dos fechas — al instante, en tu navegador, con el calendario oficial saudí Umm al-Qura.",
  "dz.hijri.swap": "Invertir la dirección",
  "dz.hijri.tagNew": "Nuevo",
  "dz.hijri.to": "Hasta",
  "dz.hijri.year": "Año",
  "dz.hijri.years": "años",
  "dz.hrz.age": "Edad (años)",
  "dz.hrz.benefit": "Estima tu frecuencia cardiaca máxima y consulta cinco zonas de entrenamiento — todo en tu dispositivo.",
  "dz.hrz.bpm": "lpm",
  "dz.hrz.childNote": "Estas fórmulas se derivan de datos de adultos. Para menores de 18 años, consulta a un médico.",
  "dz.hrz.classicLabel": "Referencia citada con frecuencia (220 − edad)",
  "dz.hrz.colBpm": "Rango en lpm",
  "dz.hrz.colEffort": "Esfuerzo",
  "dz.hrz.colPct": "Intensidad",
  "dz.hrz.colZone": "Zona",
  "dz.hrz.disclaimer": "Solo son estimaciones — las fórmulas de frecuencia cardiaca máxima tienen una desviación estándar de unos ±10 lpm entre personas. No es consejo médico; consulta a un médico antes de empezar un nuevo programa de ejercicio.",
  "dz.hrz.karvHead": "Zonas por Karvonen (%HRR — reserva de frecuencia cardiaca)",
  "dz.hrz.maxLabel": "Frecuencia cardiaca máxima estimada (Tanaka, 208 − 0.7 × edad)",
  "dz.hrz.name": "Calculadora de zonas de frecuencia cardiaca",
  "dz.hrz.pageTitle": "Calculadora de zonas de frecuencia cardiaca — Dzzz",
  "dz.hrz.pctHead": "Zonas por %HRmax (porcentaje de la frecuencia cardiaca máxima)",
  "dz.hrz.restTooHigh": "Las zonas de reserva (Karvonen) aparecen cuando la frecuencia en reposo es menor que la máxima estimada.",
  "dz.hrz.restingHint": "Añade tu frecuencia cardiaca en reposo para ver también las zonas de Karvonen (%HRR) en una tabla aparte.",
  "dz.hrz.restingHr": "Frecuencia cardiaca en reposo (lpm, opcional)",
  "dz.hrz.seo": "Calculadora gratuita de zonas de frecuencia cardiaca: la frecuencia máxima estimada (fórmula de Tanaka, con la conocida 220 − edad como referencia) y cinco zonas de entrenamiento por %HRmax, más las zonas de Karvonen (%HRR) calculadas aparte cuando introduces tu frecuencia en reposo. Funciona por completo en tu dispositivo.",
  "dz.hrz.title": "Calculadora de zonas de frecuencia cardiaca",
  "dz.hrz.z1": "Muy suave",
  "dz.hrz.z2": "Suave",
  "dz.hrz.z3": "Moderado",
  "dz.hrz.z4": "Fuerte",
  "dz.hrz.z5": "Muy fuerte",
  "dz.hub.ai": "IA y voz",
  "dz.hub.all": "Todo",
  "dz.hub.calc": "Calculadoras",
  "dz.hub.cooking": "Cocina",
  "dz.hub.daily": "Día a día",
  "dz.hub.data": "Datos y archivos",
  "dz.hub.docs": "Documentos",
  "dz.hub.emptyCat": "Pronto habrá más herramientas en esta categoría.",
  "dz.hub.filterAria": "Filtrar por categoría",
  "dz.hub.finance": "Finanzas",
  "dz.hub.gen": "Generadores",
  "dz.hub.generators": "Generadores",
  "dz.hub.health": "Salud",
  "dz.hub.images": "Imágenes",
  "dz.hub.islamic": "Vida islámica y saudí",
  "dz.hub.math": "Matemáticas",
  "dz.hub.media": "Multimedia",
  "dz.hub.pageTitle": "Herramientas — Dzzz",
  "dz.hub.pdf": "PDF",
  "dz.hub.saudi": "Saudí e islámico",
  "dz.hub.saudiBusiness": "Saudí y negocios",
  "dz.hub.tagAi": "IA",
  "dz.hub.tagNew": "Nuevo",
  "dz.hub.travel": "Viajes",
  "dz.hub.videoAudio": "Video y audio",
  "dz.hub.videoEditing": "Edición de video",
  "dz.hub.viewAll": "Ver todas las herramientas de {cat}",
  "dz.i2p.accept": "JPG, PNG, WebP, HEIC",
  "dz.i2p.auto": "Automática",
  "dz.i2p.benefit": "Une tus fotos en un solo PDF, en el orden que quieras",
  "dz.i2p.capImages": "Máximo 50 imágenes.",
  "dz.i2p.capSize": "El límite de tamaño total es 200 MB.",
  "dz.i2p.error": "No se pudo procesar una de las imágenes.",
  "dz.i2p.fit": "Ajustar a la imagen",
  "dz.i2p.landscape": "Horizontal",
  "dz.i2p.make": "Crear el PDF",
  "dz.i2p.margin": "Margen",
  "dz.i2p.marginNone": "Sin margen",
  "dz.i2p.marginNormal": "10 mm",
  "dz.i2p.name": "Imágenes a PDF",
  "dz.i2p.orientation": "Orientación",
  "dz.i2p.pageSize": "Tamaño de página",
  "dz.i2p.pageTitle": "Imágenes a PDF — Dzzz",
  "dz.i2p.pick": "Elegir imágenes",
  "dz.i2p.portrait": "Vertical",
  "dz.i2p.save": "Guardar PDF",
  "dz.i2p.seo": "Convierte fotos JPG, PNG, WebP y HEIC en un solo PDF. Reordena las páginas y elige el tamaño de página y los márgenes. Funciona por completo en tu dispositivo.",
  "dz.i2p.title": "Imágenes → PDF",
  "dz.i2p.working": "Creando el PDF…",
  "dz.iban.benefit": "Valida, crea y descompón IBAN del Golfo — al instante",
  "dz.iban.copied": "Copiado",
  "dz.iban.copyCompact": "Copiar sin espacios",
  "dz.iban.copyGrouped": "Copiar (agrupado)",
  "dz.iban.errChars": "Contiene caracteres no válidos",
  "dz.iban.errChecksum": "Los dígitos de control no cuadran",
  "dz.iban.errChecksumD": "Seguramente sea un error al escribir — revisa las cifras.",
  "dz.iban.errCountry": "Código de país no reconocido",
  "dz.iban.errLength": "Longitud incorrecta para este país",
  "dz.iban.errStructure": "La longitud es correcta, pero la estructura no encaja",
  "dz.iban.gccSoon": "Resto de países del Golfo — próximamente",
  "dz.iban.genAccount": "Número de cuenta",
  "dz.iban.genBank": "Banco",
  "dz.iban.genBankSearch": "Buscar bancos…",
  "dz.iban.genCounter": "{n} / 18 cifras",
  "dz.iban.genDisclaimer": "Generado a partir de tus datos — confírmalo con tu banco antes de compartirlo.",
  "dz.iban.ghostAccount": "Cuenta — 18 cifras, con ceros delante",
  "dz.iban.ghostBank": "Código de banco — 2 cifras (SA)",
  "dz.iban.ghostCheck": "Dígitos de control — 2 cifras",
  "dz.iban.ghostCountry": "País — 2 letras",
  "dz.iban.idleHelper": "Pega un IBAN — lo comprobamos al instante. Admite espacios, el prefijo «IBAN:» y dígitos árabes.",
  "dz.iban.kbdHint": "Ctrl/Cmd+V valida el siguiente — sin volver a hacer clic",
  "dz.iban.legacyTag": "antiguo — ahora {name}",
  "dz.iban.lockLine": "Se comprueba en tu dispositivo — el IBAN nunca se envía a ningún sitio.",
  "dz.iban.name": "Herramientas IBAN",
  "dz.iban.nonGuarantee": "El formato es válido — esto no confirma que la cuenta exista. Solo el banco puede hacerlo.",
  "dz.iban.notInIban": "Lo que no contiene un IBAN",
  "dz.iban.notInIbanD": "El nombre del titular, la sucursal y el estado de la cuenta no se guardan en un IBAN.",
  "dz.iban.pageDesc": "Valida, genera y descompón IBAN de Arabia Saudita y del Golfo en tu navegador — control MOD-97, identificación del banco y exportación a QR, sin enviar nada a ningún sitio.",
  "dz.iban.pageTitle": "Validador y generador de IBAN — Herramientas Dzzz",
  "dz.iban.paste": "Pegar",
  "dz.iban.qr": "QR",
  "dz.iban.segAccount": "Número de cuenta",
  "dz.iban.segBank": "Banco",
  "dz.iban.segCheck": "Dígitos de control",
  "dz.iban.segCountry": "País",
  "dz.iban.seo": "Valida, genera y descompón IBAN de Arabia Saudita y del Golfo por completo en tu navegador — control MOD-97, identificación del banco y exportación a QR, sin enviar nada a un servidor.",
  "dz.iban.softNote": "El formato no se comprueba a fondo para este país.",
  "dz.iban.tabDecode": "Descomponer",
  "dz.iban.tabGenerate": "Generar",
  "dz.iban.tabValidate": "Validar",
  "dz.iban.tagNew": "Nuevo",
  "dz.iban.validTitle": "Formato de IBAN válido",
  "dz.iban.warnBank": "Cálculo válido, código de banco desconocido",
  "dz.iban.warnBankD": "Los dígitos de control cuadran, pero este código de banco no está en nuestra tabla — puede ser uno nuevo o de una sucursal extranjera.",
  "dz.iban.whatIs": "¿Qué es un IBAN?",
  "dz.islamic.addCalendar": "Añadir al calendario",
  "dz.islamic.addCalendarFor": "Añadir {name} al calendario",
  "dz.islamic.all": "Todas las fechas",
  "dz.islamic.arafah": "Día de Arafat",
  "dz.islamic.ashura": "Ashura",
  "dz.islamic.benefit": "Ramadán, los dos Eid y más — cuánto falta.",
  "dz.islamic.caveat": "Las fechas se calculan con el calendario Umm al-Qura. El inicio real depende del avistamiento oficial de la luna y puede variar un día.",
  "dz.islamic.copyLine": "Copiar la línea",
  "dz.islamic.days": "días",
  "dz.islamic.daysLeft": "quedan {n} días",
  "dz.islamic.eidAdha": "Eid al-Adha",
  "dz.islamic.eidFitr": "Eid al-Fitr",
  "dz.islamic.greg": "Gregoriano",
  "dz.islamic.hijri": "Hégira",
  "dz.islamic.hours": "horas",
  "dz.islamic.icsFile": "islamic-event",
  "dz.islamic.inDays": "en {n} días",
  "dz.islamic.minutes": "min",
  "dz.islamic.name": "Fechas islámicas y cuentas atrás",
  "dz.islamic.nearest": "Ver la más próxima",
  "dz.islamic.newYear": "Año Nuevo islámico",
  "dz.islamic.next": "Lo más próximo",
  "dz.islamic.noSeconds": "Los segundos se omiten a propósito — en una cuenta atrás medida en semanas son ruido.",
  "dz.islamic.note": "Se calcula en tu dispositivo con el calendario Umm al-Qura — sin ninguna petición de red.",
  "dz.islamic.outOfRange": "Esta fecha queda fuera del rango admitido (1900–2077).",
  "dz.islamic.pageTitle": "Fechas islámicas y cuentas atrás — Ramadán y Eid — Dzzz",
  "dz.islamic.ramadan": "Ramadán",
  "dz.islamic.selected": "Seleccionada",
  "dz.islamic.seo": "Cuánto falta para el Ramadán, el Eid al-Fitr, el día de Arafat, el Eid al-Adha, el Año Nuevo islámico y Ashura. Cada fecha se calcula en tu dispositivo con el calendario Umm al-Qura y se muestra en hégira y en gregoriano una junto a otra, con un archivo de calendario para cada ocasión.",
  "dz.islamic.shareLine": "{name} en {n} días — {hijri} / {greg}",
  "dz.islamic.shareToday": "{name} es hoy — {hijri} / {greg}",
  "dz.islamic.show": "Ver",
  "dz.islamic.showFor": "Ver {name} arriba",
  "dz.islamic.tagNew": "Nuevo",
  "dz.islamic.title": "Fechas islámicas y cuentas atrás",
  "dz.islamic.today": "Hoy",
  "dz.islamic.tomorrow": "Mañana",
  "dz.islamic.weekday": "Día",
  "dz.loan.aprResult": "Tasa efectiva aproximada (saldo decreciente)",
  "dz.loan.benefit": "Cuotas, interés compuesto y la verdad sobre la tasa fija",
  "dz.loan.colBalance": "Saldo",
  "dz.loan.colInterest": "Interés",
  "dz.loan.colPayment": "Cuota",
  "dz.loan.colPrincipal": "Capital",
  "dz.loan.compMonthly": "Mensual",
  "dz.loan.compQuarterly": "Trimestral",
  "dz.loan.compYearly": "Anual",
  "dz.loan.compounding": "Capitalización",
  "dz.loan.contributed": "Total aportado",
  "dz.loan.contribution": "Aporte mensual",
  "dz.loan.currency": "Etiqueta de la moneda",
  "dz.loan.disclaimer": "Solo informativo — no es asesoramiento financiero.",
  "dz.loan.flatNote": "Los bancos anuncian tasas fijas; el costo real es más alto.",
  "dz.loan.flatRate": "Tasa fija %",
  "dz.loan.futureValue": "Valor futuro",
  "dz.loan.growth": "Crecimiento",
  "dz.loan.month": "Mes",
  "dz.loan.name": "Calculadora de préstamos e intereses",
  "dz.loan.pageTitle": "Calculadora de préstamos e intereses — Herramientas Dzzz",
  "dz.loan.payment": "Cuota mensual",
  "dz.loan.principal": "Capital",
  "dz.loan.rate": "Tasa anual %",
  "dz.loan.schedule": "Tabla de amortización",
  "dz.loan.seo": "Calculadora gratuita de préstamos, ahorro y conversión de tasa fija a tasa efectiva, con tabla de amortización. Sirve para cualquier moneda y funciona por completo en tu dispositivo.",
  "dz.loan.tabFlat": "Fija → efectiva",
  "dz.loan.tabLoan": "Préstamo",
  "dz.loan.tabSavings": "Ahorro",
  "dz.loan.termYears": "Plazo (años)",
  "dz.loan.title": "Calculadora de préstamos e intereses",
  "dz.loan.totalInterest": "Interés total",
  "dz.loan.totalPaid": "Total pagado",
  "dz.lorem.benefit": "Texto de relleno en árabe real o en latín clásico — palabras, oraciones o párrafos, generados en tu dispositivo.",
  "dz.lorem.classicOpener": "Empezar con el clásico “Lorem ipsum dolor sit amet…”",
  "dz.lorem.copied": "Copiado",
  "dz.lorem.copy": "Copiar",
  "dz.lorem.countLabel": "Cantidad",
  "dz.lorem.langAr": "Árabe",
  "dz.lorem.langEn": "Inglés",
  "dz.lorem.langLabel": "Idioma del texto",
  "dz.lorem.name": "Generador de Lorem Ipsum",
  "dz.lorem.pageTitle": "Generador de Lorem Ipsum — árabe real y latín clásico — Herramientas Dzzz",
  "dz.lorem.preview": "Vista previa",
  "dz.lorem.regenerate": "Generar de nuevo",
  "dz.lorem.seo": "Genera texto de relleno en árabe real — vocabulario natural con puntuación árabe correcta, no una transliteración — o en el lorem ipsum latino clásico. Elige palabras, oraciones o párrafos, fija la cantidad exacta, empieza si quieres con el clásico “Lorem ipsum dolor sit amet…” y envuelve los párrafos en etiquetas <p> para maquetas HTML. Todo se genera en tu dispositivo — no se guarda ni se envía nada, y la herramienta funciona sin conexión.",
  "dz.lorem.shareNote": "El enlace lleva solo los ajustes — el texto se genera de nuevo cada vez que se abre.",
  "dz.lorem.unitLabel": "Unidad",
  "dz.lorem.unitParagraphs": "Párrafos",
  "dz.lorem.unitSentences": "Oraciones",
  "dz.lorem.unitWords": "Palabras",
  "dz.lorem.wrapParagraphs": "Envolver cada párrafo en etiquetas <p>",
  "dz.merge.addMore": "Añadir más PDF",
  "dz.merge.benefit": "Combina varios PDF en uno, en el orden que quieras.",
  "dz.merge.drop": "Suelta archivos PDF o toca para elegir",
  "dz.merge.lifted": "{name} levantado. Usa las flechas para mover y Espacio para soltar.",
  "dz.merge.moveDown": "Bajar",
  "dz.merge.moveUp": "Subir",
  "dz.merge.moved": "Movido a la posición {i} de {total}.",
  "dz.merge.name": "Unir PDF",
  "dz.merge.pageTitle": "Unir PDF — Herramientas Dzzz",
  "dz.merge.pages": "{n} páginas",
  "dz.merge.range": "Páginas",
  "dz.merge.rangeBad": "Revisa el rango de páginas.",
  "dz.merge.rangePlaceholder": "todas (p. ej. 1-3, 7)",
  "dz.merge.remove": "Quitar",
  "dz.merge.reorderHint": "Arrastra, o enfoca una fila y pulsa Espacio y luego las flechas.",
  "dz.merge.seo": "Combina varios PDF en un solo archivo — arrastra para fijar el orden, elige rangos de páginas y únelos. Todo funciona en tu navegador; tus archivos nunca salen de tu dispositivo.",
  "dz.merge.skipped": "No se pudieron leer {n} archivo(s) (quizá protegidos con contraseña).",
  "dz.merge.tooBig": "Eso pasa del límite de 200 MB — prueba con menos archivos o más pequeños.",
  "dz.merge.verb": "Unir PDF",
  "dz.mergeCsv.addMore": "Añadir más archivos",
  "dz.mergeCsv.addSource": "Añadir una columna «archivo de origen»",
  "dz.mergeCsv.align": "Alinear las columnas por",
  "dz.mergeCsv.alignName": "Nombre de la columna",
  "dz.mergeCsv.alignPos": "Posición",
  "dz.mergeCsv.benefit": "Combina varios archivos CSV/Excel en uno",
  "dz.mergeCsv.name": "Unir CSV",
  "dz.mergeCsv.pageTitle": "Unir archivos CSV y Excel — Herramientas Dzzz",
  "dz.mergeCsv.pick": "Elige los archivos para unir",
  "dz.mergeCsv.run": "Unir",
  "dz.mergeCsv.seo": "Combina varios archivos CSV, TSV, XLSX o JSON en una sola tabla, directamente en tu navegador. Alinea las columnas por nombre o por posición, y si quieres marca cada fila con su archivo de origen. No se sube nada.",
  "dz.mergeCsv.title": "Unir archivos CSV y Excel",
  "dz.mergeCsv.widthWarn": "Algunos archivos tienen más columnas que el primero — las columnas de más se ignoran al alinear por posición.",
  "dz.mp3.high": "Alta",
  "dz.mp3.medium": "Media",
  "dz.mp3.pageTitle": "Video → MP3 — Herramientas Dzzz",
  "dz.mp3.quality": "Calidad",
  "dz.mp3.small": "Ligera",
  "dz.mp3.verb": "Convertir",
  "dz.ms.another": "Resumir otra reunión",
  "dz.ms.bannerBody": "El resumen con IA envía tu transcripción a nuestro servidor y la borra tras procesarla. Todo lo demás se queda aquí.",
  "dz.ms.bannerBold": "Este paso sale de tu dispositivo.",
  "dz.ms.basicLocal": "Mejor un resumen básico en el dispositivo",
  "dz.ms.benefit": "Transcripción en tu dispositivo; resumen con IA opcional y tareas.",
  "dz.ms.copied": "Copiado",
  "dz.ms.copy": "Copiar resumen",
  "dz.ms.drop": "Suelta una grabación de reunión (audio o video), o toca para elegir",
  "dz.ms.editTranscriptHint": "Revisa o edita la transcripción — es también tu oportunidad de quitar lo sensible antes de enviarla a ningún sitio.",
  "dz.ms.elapsed": "Transcurrido {t}",
  "dz.ms.elapsedSlow": "Transcurrido {t} · más lento aquí porque este dispositivo usa el motor de compatibilidad",
  "dz.ms.engineHint": "motor de ~80 MB",
  "dz.ms.exportMd": "MD",
  "dz.ms.exportTxt": "TXT",
  "dz.ms.failedSummarize": "El resumen no funcionó — inténtalo de nuevo.",
  "dz.ms.failedTranscribe": "La transcripción no funcionó — prueba con otro archivo.",
  "dz.ms.fallbackNote": "El servicio de resumen con IA no respondió — se muestra el resumen del dispositivo.",
  "dz.ms.language": "Idioma",
  "dz.ms.languageHint": "Elige el idioma de la grabación para una transcripción más precisa.",
  "dz.ms.name": "Resumen de reunión",
  "dz.ms.pageTitle": "Resumen de reunión gratis — Herramientas Dzzz",
  "dz.ms.resultHeading": "Resumen y tareas",
  "dz.ms.retry": "Reintentar",
  "dz.ms.sendServer": "Enviar para resumen con IA",
  "dz.ms.seo": "Convierte la grabación de una reunión en un resumen claro y una lista de tareas. La transcripción siempre corre en tu dispositivo — en ese paso no se sube nada. Consigue un resumen rápido igual, en el dispositivo y sin conexión, o envía la transcripción una vez a nuestro servidor para un resumen con IA más potente (bien señalado, y borrado justo después de procesarlo). Exporta el resultado en TXT o Markdown.",
  "dz.ms.sourceLocal": "Resumen básico en el dispositivo",
  "dz.ms.sourceServer": "Resumen con IA (servidor)",
  "dz.ms.transcriptLabel": "Transcripción",
  "dz.ms.transcriptLock": "Transcripción: en tu dispositivo",
  "dz.ms.verb": "Transcribir",
  "dz.ms.working": "— ~{s} s en este dispositivo",
  "dz.ms.workingSend": "Enviando para el resumen con IA…",
  "dz.ms.workingTranscribe": "Transcribiendo…",
  "dz.mute.extract": "Extraer el audio",
  "dz.mute.mute": "Silenciar el video",
  "dz.mute.pageTitle": "Silenciar / extraer audio — Herramientas Dzzz",
  "dz.mute.verb": "Procesar",
  "dz.myip.benefit": "Tu IP pública, tu ubicación y los datos de tu dispositivo",
  "dz.myip.browser": "Navegador",
  "dz.myip.city": "Ciudad",
  "dz.myip.copied": "Copiado",
  "dz.myip.copy": "Copiar",
  "dz.myip.country": "País",
  "dz.myip.explain": "Tu IP pública es la dirección que ven los sitios web cuando navegas. Revela tu ubicación aproximada y tu proveedor de internet — útil para revisar conexiones, comprobar una VPN y entender tu privacidad. La consultamos por ti y nunca la guardamos ni la registramos.",
  "dz.myip.explainTitle": "¿Qué es esto?",
  "dz.myip.fetchError": "No se pudo contactar con el servicio de consulta — los datos del dispositivo de abajo siguen disponibles.",
  "dz.myip.ip4": "IP pública (IPv4)",
  "dz.myip.ip6": "IP pública (IPv6)",
  "dz.myip.isp": "Proveedor (ISP)",
  "dz.myip.languages": "Idiomas",
  "dz.myip.localTitle": "Se lee localmente en tu dispositivo",
  "dz.myip.name": "Cuál es mi IP",
  "dz.myip.os": "Sistema operativo",
  "dz.myip.pageTitle": "Cuál es mi IP — Herramientas Dzzz",
  "dz.myip.screen": "Pantalla",
  "dz.myip.seo": "Consulta tu dirección IP pública, tu ubicación aproximada, tu proveedor y los datos de tu navegador. No se registra ni se guarda nada.",
  "dz.myip.timezone": "Zona horaria",
  "dz.myip.title": "¿Cuál es mi IP?",
  "dz.offline": "Funciona sin conexión",
  "dz.oven.benefit": "°C, °F y marca de gas, con ajuste para ventilador.",
  "dz.oven.celsius": "Celsius",
  "dz.oven.colC": "°C",
  "dz.oven.colF": "°F",
  "dz.oven.colFan": "°C con ventilador",
  "dz.oven.colGas": "Marca de gas",
  "dz.oven.conventionNote": "Las tablas de horno redondean °C y °F por separado a números reales del mando, así que no coinciden del todo. 180°C figura como 350°F; la conversión exacta es 356°F.",
  "dz.oven.conventional": "Horno convencional",
  "dz.oven.crossConverter": "Conversor de medidas de cocina",
  "dz.oven.crossScaler": "Escalar recetas",
  "dz.oven.crossUnit": "Conversor de unidades general",
  "dz.oven.enterTemp": "Introduce una temperatura.",
  "dz.oven.exact": "Conversión exacta",
  "dz.oven.exactLine": "Conversión exacta: {n}",
  "dz.oven.exactMatch": "Coincide con la tabla",
  "dz.oven.fahrenheit": "Fahrenheit",
  "dz.oven.fan": "Horno con ventilador (convección)",
  "dz.oven.fanNote": "Un horno con ventilador suele necesitar unos 20 °C menos que uno convencional. Es una cifra habitual, no una regla — varía según el horno y el plato.",
  "dz.oven.fanOff": "Horno convencional",
  "dz.oven.fanOn": "Con ventilador",
  "dz.oven.fanSetting": "Pon tu horno con ventilador a",
  "dz.oven.gas": "Marca de gas",
  "dz.oven.mode": "Introduce la temperatura en",
  "dz.oven.modeC": "°C",
  "dz.oven.modeF": "°F",
  "dz.oven.modeGas": "Marca de gas",
  "dz.oven.name": "Conversor de temperatura del horno",
  "dz.oven.nearest": "Fila más cercana de la tabla",
  "dz.oven.nearestGas": "Marca de gas más cercana",
  "dz.oven.pageTitle": "Conversor de temperatura del horno — Dzzz",
  "dz.oven.pickGas": "Elige una marca de gas.",
  "dz.oven.result": "Valor de la tabla",
  "dz.oven.seo": "Convierte temperaturas de horno entre grados Celsius, Fahrenheit y marcas de gas británicas con la tabla publicada estándar, con ajuste para horno con ventilador y la conversión aritmética exacta al lado. Funciona por completo en tu dispositivo.",
  "dz.oven.table": "Tabla de referencia rápida",
  "dz.oven.temp": "Temperatura",
  "dz.oven.title": "Conversor de temperatura del horno",
  "dz.pace.benefit": "Calcula ritmo, tiempo o distancia — con tabla de parciales y predicción del tiempo de carrera.",
  "dz.pace.cumTime": "Tiempo acumulado",
  "dz.pace.custom": "Personalizada",
  "dz.pace.customDistance": "Distancia personalizada",
  "dz.pace.disclaimer": "Estimaciones solo como referencia para el entrenamiento — no son consejo médico ni asesoramiento deportivo.",
  "dz.pace.distance": "Distancia",
  "dz.pace.h": "h",
  "dz.pace.km": "km",
  "dz.pace.kmh": "km/h",
  "dz.pace.knownDistance": "Una carrera reciente — distancia",
  "dz.pace.knownTime": "Una carrera reciente — tiempo",
  "dz.pace.m": "min",
  "dz.pace.mi": "mi",
  "dz.pace.mph": "mph",
  "dz.pace.name": "Calculadora de ritmo de carrera",
  "dz.pace.p10k": "10K",
  "dz.pace.p5k": "5K",
  "dz.pace.pHalf": "Media maratón",
  "dz.pace.pMarathon": "Maratón",
  "dz.pace.pace": "Ritmo",
  "dz.pace.pageTitle": "Calculadora de ritmo de carrera — Herramientas Dzzz",
  "dz.pace.predicted": "Tiempo previsto",
  "dz.pace.riegelNote": "La fórmula de Riegel (T2 = T1 × (D2 ÷ D1)^1.06) se dedujo de resultados de carreras de entre {min} y {max} minutos aproximadamente; la precisión baja a medida que crece la diferencia entre las dos distancias.",
  "dz.pace.riegelTitle": "Predicción del tiempo de carrera (Riegel)",
  "dz.pace.s": "s",
  "dz.pace.seo": "Calculadora de ritmo de carrera gratuita: calcula el ritmo, el tiempo o la distancia a partir de los otros dos, consulta los tiempos parciales en cualquier intervalo y estima tiempos de carrera con la fórmula de Riegel. Funciona por completo en tu dispositivo.",
  "dz.pace.solveLabel": "Calcular",
  "dz.pace.speed": "Velocidad media",
  "dz.pace.splitEvery": "Parcial cada",
  "dz.pace.splitsTitle": "Tiempos parciales",
  "dz.pace.targetDistance": "Distancia objetivo",
  "dz.pace.time": "Tiempo",
  "dz.pace.title": "Calculadora de ritmo de carrera",
  "dz.pace.tooManySplits": "Elige un intervalo de parciales mayor para ver la tabla.",
  "dz.payday.approximateHint": "Los festivos de ese año aún no se han anunciado, así que el periodo se deduce del calendario hégira.",
  "dz.payday.benefit": "Cuánto falta para el sueldo, con fines de semana y festivos.",
  "dz.payday.clear": "Borrar los ajustes",
  "dz.payday.cleared": "Borrado",
  "dz.payday.colMonth": "Mes",
  "dz.payday.colPayday": "Pago",
  "dz.payday.colReason": "Motivo",
  "dz.payday.colTag": "Estado",
  "dz.payday.copyLine": "Próximo pago: {eff} — faltan {n} días",
  "dz.payday.dayDown": "Día anterior del mes",
  "dz.payday.dayHint": "Por defecto, 27 — la convención del sector público saudí. Si el mes es más corto, se usa su último día.",
  "dz.payday.dayOfMonth": "Día del mes",
  "dz.payday.dayUp": "Día posterior del mes",
  "dz.payday.days": "días",
  "dz.payday.early": "Pagar antes",
  "dz.payday.earlyHint": "Por defecto: retrocede al último día hábil antes del fin de semana o del festivo — lo que hace la mayoría de los empleadores.",
  "dz.payday.effective": "Fecha de pago efectiva",
  "dz.payday.engineNote": "Fecha original → si cae viernes o sábado, se mueve en la dirección elegida; se vuelve a comprobar; si el resultado es un festivo oficial, se mueve otra vez con la misma regla, hasta dar con un día hábil. Se muestran ambas fechas para poder comprobar el ajuste.",
  "dz.payday.framing": "Estimaciones basadas en la práctica común — el día de pago real de tu empleador puede ser otro. No es una garantía.",
  "dz.payday.holidayData": "Lista de festivos versión {version}, revisada el {retrieved}.",
  "dz.payday.holidaySource": "Fuente: {source}",
  "dz.payday.holidays": "Tener en cuenta los festivos oficiales de Arabia Saudita",
  "dz.payday.holidaysHint": "Usa las fechas anunciadas en la lista incluida. Las fechas y duraciones oficiales cambian de un año a otro.",
  "dz.payday.hours": "horas",
  "dz.payday.late": "Pagar después",
  "dz.payday.lateHint": "Avanza al siguiente día hábil. Algunos empleadores lo hacen; nunca se asume por ti.",
  "dz.payday.local": "Los ajustes se guardan solo en este dispositivo — nunca se suben, sin cuenta.",
  "dz.payday.minutes": "min",
  "dz.payday.name": "Cuenta regresiva del sueldo",
  "dz.payday.nextPay": "Próximo pago",
  "dz.payday.noShift": "Cae en día hábil — sin ajuste.",
  "dz.payday.nthDown": "Día hábil anterior",
  "dz.payday.nthHint": "Se cuenta desde el día 1, saltando viernes, sábados y festivos.",
  "dz.payday.nthLabel": "Qué día hábil",
  "dz.payday.nthUp": "Día hábil posterior",
  "dz.payday.pageTitle": "Cuenta regresiva del sueldo — día de pago en Arabia Saudita — Dzzz",
  "dz.payday.raw": "Fecha sin ajustar",
  "dz.payday.rawWas": "Sin ajustar: {raw}",
  "dz.payday.rule": "Cómo se fija tu día de pago",
  "dz.payday.ruleFixed": "Día del mes",
  "dz.payday.ruleLastWorking": "Último día hábil",
  "dz.payday.ruleNthWorking": "Día hábil n.º",
  "dz.payday.schedule": "Próximos seis pagos",
  "dz.payday.scheduleHint": "con el ajuste indicado",
  "dz.payday.seo": "Calcula cuándo es probable que llegue tu sueldo. Elige un día fijo del mes, el último día hábil o el día hábil que quieras; el fin de semana saudí (viernes y sábado) y los festivos oficiales lo adelantan o lo atrasan, y se listan los seis próximos pagos para que compruebes el resultado tú mismo. Todo el cálculo ocurre en tu dispositivo.",
  "dz.payday.settings": "Regla del día de pago",
  "dz.payday.shiftMode": "Si el pago cae en fin de semana o festivo",
  "dz.payday.shiftNote": "El día {day} cae en {weekday} ({raw}) — la mayoría de los empleadores paga el {eff}.",
  "dz.payday.shiftNoteEarly": "El día {day} cae en {weekday} ({raw}) — la mayoría paga antes, el {eff}.",
  "dz.payday.shiftNoteHoliday": "{raw} cae dentro de un festivo oficial ({holiday}) — el día de pago mostrado es {eff}.",
  "dz.payday.shiftNoteLate": "El día {day} cae en {weekday} ({raw}) — con «pagar después», la fecha pasa al {eff}.",
  "dz.payday.tagApproximate": "Aproximado",
  "dz.payday.tagExact": "Sin ajuste",
  "dz.payday.tagHoliday": "Festivo",
  "dz.payday.tagNew": "Nuevo",
  "dz.payday.tagWeekend": "Fin de semana",
  "dz.payday.title": "Cuenta regresiva del sueldo",
  "dz.payday.weekendNote": "El fin de semana en Arabia Saudita es viernes y sábado.",
  "dz.pct.add": "Sumar",
  "dz.pct.benefit": "Todas las preguntas de porcentaje, en una herramienta.",
  "dz.pct.crossExtras": "Añadir y quitar IVA",
  "dz.pct.crossShopping": "Descuentos de compras",
  "dz.pct.decrease": "disminución",
  "dz.pct.from": "Desde",
  "dz.pct.increase": "aumento",
  "dz.pct.lineAdd": "¿Cuánto es {b} más {a}%?",
  "dz.pct.lineChange": "¿Cuál es el cambio en % de {a} a {b}?",
  "dz.pct.lineIsWhat": "¿Qué % de {b} es {a}?",
  "dz.pct.lineOf": "¿Cuánto es el {a}% de {b}?",
  "dz.pct.lineReverse": "¿{a} es el {b}% de qué número?",
  "dz.pct.lineSub": "¿Cuánto es {b} menos {a}%?",
  "dz.pct.modeAddSub": "Sumar / restar %",
  "dz.pct.modeChange": "% de cambio",
  "dz.pct.modeIsWhat": "X es qué % de Y",
  "dz.pct.modeOf": "% de un número",
  "dz.pct.modeReverse": "% inverso",
  "dz.pct.name": "Calculadora de porcentajes",
  "dz.pct.needPct": "Introduce un porcentaje distinto de cero.",
  "dz.pct.needWhole": "Introduce un total distinto de cero.",
  "dz.pct.nochange": "sin cambio",
  "dz.pct.pageTitle": "Calculadora de porcentajes — Dzzz",
  "dz.pct.part": "Parte",
  "dz.pct.pct": "Porcentaje",
  "dz.pct.result": "Resultado",
  "dz.pct.seo": "Calcula porcentajes al instante: el porcentaje de un número, qué porcentaje es un número de otro, el aumento o la disminución porcentual, sumar o restar un porcentaje y el porcentaje inverso. Funciona por completo en tu dispositivo.",
  "dz.pct.sub": "Restar",
  "dz.pct.title": "Calculadora de porcentajes",
  "dz.pct.to": "Hasta",
  "dz.pct.value": "Número",
  "dz.pct.whole": "Total",
  "dz.pdfimg.benefit": "Guarda las páginas de un PDF o sus imágenes incrustadas como archivos de imagen.",
  "dz.pdfimg.capHard": "El archivo es demasiado grande: el límite es 100 MB (esto se procesa en la memoria de tu navegador).",
  "dz.pdfimg.capPages": "Este PDF tiene demasiadas páginas: el límite es 500.",
  "dz.pdfimg.capSoft": "PDF grande: esto puede tardar un poco y usar bastante memoria.",
  "dz.pdfimg.colType": "Tipo",
  "dz.pdfimg.drop": "Suelta un PDF o toca para elegir",
  "dz.pdfimg.embeddedHint": "Encuentra cada imagen del PDF una sola vez, aunque se repita en varias páginas. La transparencia puede perderse en las imágenes recodificadas.",
  "dz.pdfimg.encrypted": "Este PDF está protegido con contraseña: quita la contraseña primero.",
  "dz.pdfimg.format": "Formato",
  "dz.pdfimg.mode": "¿Qué necesitas?",
  "dz.pdfimg.modeEmbedded": "Imágenes incrustadas",
  "dz.pdfimg.modePages": "Páginas como imágenes",
  "dz.pdfimg.name": "Extraer imágenes de un PDF",
  "dz.pdfimg.noImages": "No se encontraron imágenes incrustadas en este PDF.",
  "dz.pdfimg.pageTitle": "Extraer imágenes de un PDF — Herramientas Dzzz",
  "dz.pdfimg.quality": "Calidad",
  "dz.pdfimg.reencoded": "PNG recodificado",
  "dz.pdfimg.resultCount": "{count} imágenes · {size}",
  "dz.pdfimg.run": "Extraer las imágenes",
  "dz.pdfimg.scale": "Tamaño",
  "dz.pdfimg.seo": "Guarda las páginas de un PDF como imágenes PNG o JPEG, o extrae cada imagen incrustada en el archivo, todo dentro de tu navegador. Los JPEG originales se conservan byte a byte cuando es posible; el resto se recodifica de forma segura. La transparencia puede perderse en las imágenes extraídas. No se sube nada.",
  "dz.pdfimg.verbatim": "JPEG original",
  "dz.picker.benefit": "Sorteos justos a partir de tu lista — elige uno, elige varios o gira la ruleta. Todo se queda en tu dispositivo.",
  "dz.picker.itemsLabel": "Elementos (uno por línea)",
  "dz.picker.itemsPlaceholder": "Escribe cada nombre o elemento en su propia línea",
  "dz.picker.modeList": "Sorteo de lista",
  "dz.picker.modeWheel": "Ruleta",
  "dz.picker.name": "Sorteo y ruleta",
  "dz.picker.needTwo": "Agrega al menos dos elementos para girar la ruleta",
  "dz.picker.pageTitle": "Sorteo y ruleta — Dzzz",
  "dz.picker.pickCount": "Cuántos elegir",
  "dz.picker.pickNBtn": "Elegir varios",
  "dz.picker.pickNUniformHint": "«Elegir varios» sortea por igual — los pesos no se aplican.",
  "dz.picker.pickOneBtn": "Elegir uno",
  "dz.picker.rememberList": "Recordar mi lista en este dispositivo",
  "dz.picker.removeAfterPick": "Modo rifa: quitar de la lista los elementos ya elegidos",
  "dz.picker.resultsLabel": "Resultado",
  "dz.picker.seo": "Haz sorteos justos a partir de cualquier lista — elige un ganador, elige varios sin repetir, monta una rifa que va quitando a los ganadores, o gira una ruleta de colores. Cada sorteo usa aleatoriedad criptográficamente justa (crypto.getRandomValues, nunca Math.random), y la ruleta solo anima un resultado que ya se decidió con justicia. Tu lista se queda en tu dispositivo y nunca se sube — la herramienta funciona sin conexión.",
  "dz.picker.spinBtn": "Girar",
  "dz.picker.tagNew": "Nuevo",
  "dz.picker.weightLabel": "Peso",
  "dz.picker.weightsToggle": "Pesos por elemento (mayor = más probabilidad — solo en «Elegir uno»)",
  "dz.picker.winnerLabel": "Ganador",
  "dz.piv.close": "CIERRE",
  "dz.piv.disclaimer": "Aritmética sobre los números que introduces. No es una predicción ni asesoramiento de inversión.",
  "dz.piv.formula": "Fórmula",
  "dz.piv.high": "MÁXIMO",
  "dz.piv.invalidClose": "El cierre debe quedar entre el mínimo y el máximo.",
  "dz.piv.invalidRange": "El máximo debe ser igual o superior al mínimo.",
  "dz.piv.ladder": "ESCALERA",
  "dz.piv.low": "MÍNIMO",
  "dz.piv.method": "MÉTODO",
  "dz.piv.methodCamarilla": "Camarilla",
  "dz.piv.methodFibonacci": "Fibonacci",
  "dz.piv.methodStandard": "Estándar",
  "dz.piv.methodWoodie": "Woodie",
  "dz.piv.methodWorkbook": "Hoja de cálculo (variante de 4 niveles)",
  "dz.piv.name": "Puntos pivote",
  "dz.piv.pageTitle": "Calculadora de puntos pivote — Dzzz",
  "dz.piv.scale": "ESCALA",
  "dz.piv.seo": "Introduce el máximo, el mínimo y el cierre de una sesión y verás el punto pivote y sus niveles de soporte y resistencia en una escalera con etiquetas. Cinco métodos con nombre — el nivel que lees nunca es uno sin nombre. Solo aritmética, calculada en tu dispositivo.",
  "dz.piv.title": "Puntos pivote",
  "dz.piv.workbookNote": "Una variante no estándar tomada de una hoja de cálculo personal. Lleva nombre propio para que nunca se confunda con el método estándar.",
  "dz.piv.zoneAccumulate": "Banda inferior",
  "dz.piv.zoneNote": "Las tres bandas son una agrupación descriptiva de los niveles — nunca una indicación de comprar o vender.",
  "dz.piv.zoneTrim": "Banda superior",
  "dz.piv.zoneWatch": "Banda media",
  "dz.portion.benefit": "Cuánto cocinar para tus invitados.",
  "dz.portion.catMain": "Plato principal",
  "dz.portion.catProtein": "Carnes y pollo",
  "dz.portion.catSide": "Guarniciones y extras",
  "dz.portion.copyList": "Copiar la lista de compras",
  "dz.portion.crossCalorie": "Calculadora de calorías",
  "dz.portion.crossConverter": "Conversor de medidas de cocina",
  "dz.portion.crossScaler": "Ajuste de recetas",
  "dz.portion.errGuests": "Indica al menos un invitado.",
  "dz.portion.estimateNote": "Estimaciones habituales de la hospitalidad — no son un estándar oficial. En el Golfo se sirve con generosidad; ajústalo a tu gusto.",
  "dz.portion.forGuests": "Para {n} invitados",
  "dz.portion.guests": "Invitados",
  "dz.portion.item": "Producto",
  "dz.portion.listTitle": "Lista de compras",
  "dz.portion.multiplier": "Multiplicador ×{n}",
  "dz.portion.name": "Planificador de porciones",
  "dz.portion.noNutrition": "Solo cantidades — este planificador no trae datos de calorías ni de nutrición.",
  "dz.portion.occGenerous": "Generoso",
  "dz.portion.occGenerousHint": "Una invitación en la que se espera que sobre comida.",
  "dz.portion.occLight": "Ligero",
  "dz.portion.occLightHint": "Un bufé con muchos platos, o una comida más ligera.",
  "dz.portion.occNormal": "Normal",
  "dz.portion.occNormalHint": "Una comida familiar corriente.",
  "dz.portion.occasion": "Estilo de servicio",
  "dz.portion.pageTitle": "Planificador de porciones — Dzzz",
  "dz.portion.perPerson": "Por persona",
  "dz.portion.quantity": "Cantidad",
  "dz.portion.rangeNote": "Cada cifra es un rango a propósito. El apetito, cuántos platos hay en la mesa y cuánto dura la reunión lo mueven todo.",
  "dz.portion.seo": "Planifica cuánto arroz, carne, ensalada, pan y bebida preparar para una reunión. Cada cantidad es un rango tomado de la práctica común de la hospitalidad, no un estándar fijo, con un multiplicador de estilo de servicio que controlas tú. Funciona por completo en tu dispositivo.",
  "dz.portion.title": "Planificador de porciones",
  "dz.portion.total": "Total",
  "dz.portion.unitBird": "pollos enteros",
  "dz.portion.unitG": "g",
  "dz.portion.unitMl": "ml",
  "dz.portion.unitPiece": "piezas",
  "dz.pos.addPosition": "Añadir posición",
  "dz.pos.addPreset": "Añadir perfil",
  "dz.pos.addTrade": "Añadir operación",
  "dz.pos.adjBasis": "COSTO BASE AJUSTADO",
  "dz.pos.adjBasisSub": "Lo que en realidad te cuestan las acciones que te quedan, después de lo que ya retiraste. Comisión incluida.",
  "dz.pos.aggNote": "Unificado al tipo de cambio que introdujiste. Plegado por defecto.",
  "dz.pos.atRisk": "del capital aún en riesgo",
  "dz.pos.avgCost": "COSTO MEDIO",
  "dz.pos.avgCostSub": "comisión incluida",
  "dz.pos.avgSellPrice": "PRECIO MEDIO DE VENTA",
  "dz.pos.avgSellSub": "neto de comisión",
  "dz.pos.back": "Atrás",
  "dz.pos.balCol": "Saldo acumulado",
  "dz.pos.basisNote": "El costo medio abarca todas las compras, incluidas las hechas después de una venta — así que añadir luego una operación antigua cambiará esta cifra.",
  "dz.pos.breakEven": "punto de equilibrio",
  "dz.pos.buy": "Compra",
  "dz.pos.cancel": "Cancelar",
  "dz.pos.capitalAtRisk": "Capital en riesgo",
  "dz.pos.clearAll": "Eliminar todo",
  "dz.pos.closed": "Cerradas",
  "dz.pos.closedPos": "posición cerrada",
  "dz.pos.commission": "COMISIÓN",
  "dz.pos.commissionSub": "un costo real, ya dentro del costo base",
  "dz.pos.computed": "calculada",
  "dz.pos.confirmClearAll": "¿Eliminar todas las posiciones, perfiles y ajustes guardados en este dispositivo?",
  "dz.pos.confirmDelete": "¿Eliminar esta posición y todas sus operaciones? No se puede deshacer.",
  "dz.pos.confirmImport": "Importar {n} operaciones",
  "dz.pos.confirmImport.few": "Importar {n} operaciones",
  "dz.pos.confirmImport.one": "Importar 1 operación",
  "dz.pos.confirmImport.two": "Importar 2 operaciones",
  "dz.pos.currency": "Moneda",
  "dz.pos.dataWarning": "Se vendió más de lo comprado. Las cifras se calculan igual, pero revisa el registro.",
  "dz.pos.date": "FECHA",
  "dz.pos.dayFirst": "Las fechas son día/mes",
  "dz.pos.delete": "Eliminar",
  "dz.pos.deletePosition": "Eliminar posición",
  "dz.pos.disclaimer": "Tus propios números, introducidos por ti y guardados solo en este dispositivo. No es asesoramiento de inversión.",
  "dz.pos.editTrade": "Editar operación",
  "dz.pos.edited": "editada",
  "dz.pos.emptyBody": "Anota las compras y ventas de una acción y calcula el costo, la comisión, la ganancia realizada y lo que en realidad te cuestan las acciones que te quedan.",
  "dz.pos.emptyTitle": "Aún no hay posiciones",
  "dz.pos.exactPrice": "PRECIO EXACTO",
  "dz.pos.exampleBody": "Compra 2,000 a 7.62 y vende 2,000 a 7.80 → 331.00 realizados tras 46.00 de comisión.",
  "dz.pos.exampleCap": "EJEMPLO RESUELTO",
  "dz.pos.explainAdjBasis": "Todo lo que gastaste, menos todo lo que recuperaste, dividido entre las acciones que aún tienes.",
  "dz.pos.explainAvgCost": "Lo que pagaste por acción en todo lo que compraste — no en lo que queda.",
  "dz.pos.explainAvgSell": "Lo que recibiste por acción en lo que vendiste.",
  "dz.pos.explainCommission": "La comisión es un costo real y está dentro del costo base, no escondida en otro sitio.",
  "dz.pos.explainInvested": "Todo lo que salió de tu cuenta, comisión incluida.",
  "dz.pos.explainRealized": "Ya cobrado, medido contra el costo medio. Es también lo que bajó el costo base ajustado — por eso no se suma otra vez a la G/P total.",
  "dz.pos.explainReceived": "Todo lo que volvió, después de la comisión.",
  "dz.pos.exportBackup": "Copia completa JSON",
  "dz.pos.exportCsv": "Exportar CSV",
  "dz.pos.exportSummary": "Resumen CSV",
  "dz.pos.exportTitle": "Exportar",
  "dz.pos.exportTradeLog": "Registro de operaciones CSV",
  "dz.pos.feeShort": "com.",
  "dz.pos.fieldFlatFee": "COMISIÓN FIJA",
  "dz.pos.fieldMinFee": "COMISIÓN MÍNIMA",
  "dz.pos.fieldPerShare": "POR ACCIÓN",
  "dz.pos.fieldRate": "TASA %",
  "dz.pos.fieldVat": "IVA SOBRE LA COMISIÓN %",
  "dz.pos.formula": "Fórmula",
  "dz.pos.held": "en cartera",
  "dz.pos.hideTotals": "Ocultar totales",
  "dz.pos.howCalculated": "Cómo se calcula esto",
  "dz.pos.ignored": "Ignorada",
  "dz.pos.importCsv": "Importar desde CSV",
  "dz.pos.importTitle": "Importar CSV",
  "dz.pos.lastPrice": "ÚLTIMO PRECIO QUE PUSISTE",
  "dz.pos.mapStep": "Asignar columnas",
  "dz.pos.model": "MODELO",
  "dz.pos.modelFlat": "Fija",
  "dz.pos.modelNone": "Ninguna",
  "dz.pos.modelOverSell": "Eso supera las {n} acciones que tienes — las cifras de abajo no tienen sentido.",
  "dz.pos.modelPerShare": "Por acción",
  "dz.pos.modelPercentage": "Porcentaje",
  "dz.pos.modelSell": "Simular una venta parcial",
  "dz.pos.name": "Calculadora de posiciones",
  "dz.pos.newBasis": "Nuevo costo base ajustado",
  "dz.pos.newRemaining": "Acciones restantes",
  "dz.pos.noPriceSet": "Introduce un precio en «Qué pasaría si» para ver esto.",
  "dz.pos.noneBody": "Sin comisión. Toda comisión se calcula como cero.",
  "dz.pos.note": "Nota (opcional)",
  "dz.pos.ofInvested": "del total invertido",
  "dz.pos.openPos": "ABIERTA",
  "dz.pos.ourField": "NUESTRO CAMPO",
  "dz.pos.overSell": "Solo tienes {n} acciones. Se guardó igualmente — corrígelo si fue un error.",
  "dz.pos.pageTitle": "Calculadora de posiciones — Dzzz",
  "dz.pos.pickSheet": "Hoja a importar",
  "dz.pos.plAt": "G/P TOTAL A ESE PRECIO",
  "dz.pos.portfolio": "Cartera",
  "dz.pos.positionName": "Nombre (opcional)",
  "dz.pos.positions": "Posiciones",
  "dz.pos.presetDefault": "PREDETERMINADO",
  "dz.pos.presetName": "Nombre del perfil",
  "dz.pos.presets": "Perfiles de comisión",
  "dz.pos.preview": "VISTA PREVIA",
  "dz.pos.price": "PRECIO",
  "dz.pos.privacy": "Guardado solo en este dispositivo. Sin cuenta, y sin números en el enlace.",
  "dz.pos.qty": "CANTIDAD",
  "dz.pos.rateDate": "tipo introducido",
  "dz.pos.rateLabel": "1 USD =",
  "dz.pos.rateNote": "Un tipo de cambio que introdujiste tú — no se consulta nada.",
  "dz.pos.realizedPL": "G/P REALIZADA",
  "dz.pos.remaining": "ACCIONES RESTANTES",
  "dz.pos.resetFee": "Usar la comisión calculada",
  "dz.pos.result": "Resultado",
  "dz.pos.resultingRealized": "Realizado en esta venta",
  "dz.pos.sample": "EJEMPLO EN VIVO",
  "dz.pos.samplePrice": "PRECIO",
  "dz.pos.sampleQty": "CANT.",
  "dz.pos.save": "Guardar operación",
  "dz.pos.sell": "Venta",
  "dz.pos.sellNote": "No se guarda nada. Solo muestra cómo quedarían las cuentas.",
  "dz.pos.sellShares": "ACCIONES A VENDER",
  "dz.pos.seo": "Anota las compras y ventas de una acción y calcula tu costo base, la comisión que de verdad pagaste, la ganancia realizada y lo que en realidad te cuestan las acciones que te quedan tras una venta parcial. Tus números, en tu dispositivo — no se consultan precios ni se sube nada.",
  "dz.pos.sharesBought": "acciones compradas",
  "dz.pos.sharesSold": "acciones vendidas",
  "dz.pos.showTotals": "Mostrar totales",
  "dz.pos.skippedRows": "{n} filas omitidas",
  "dz.pos.skippedRows.few": "{n} filas omitidas",
  "dz.pos.skippedRows.one": "1 fila omitida",
  "dz.pos.skippedRows.two": "2 filas omitidas",
  "dz.pos.sortBy": "Ordenar",
  "dz.pos.sortColumn": "Ordenar por {col}",
  "dz.pos.sortPl": "G/P",
  "dz.pos.sortSize": "Tamaño",
  "dz.pos.sortSymbol": "Símbolo",
  "dz.pos.symbol": "Símbolo",
  "dz.pos.theirCol": "SU COLUMNA",
  "dz.pos.title": "Calculadora de posiciones",
  "dz.pos.total": "TOTAL",
  "dz.pos.totalCommission": "COMISIÓN TOTAL",
  "dz.pos.totalInvested": "TOTAL INVERTIDO",
  "dz.pos.totalPL": "G/P TOTAL",
  "dz.pos.totalReceived": "TOTAL RECIBIDO",
  "dz.pos.tradeLog": "Registro de operaciones",
  "dz.pos.unrealizedPL": "G/P NO REALIZADA",
  "dz.pos.unrealizedSub": "al último precio que pusiste",
  "dz.pos.vatNote": "El IVA se aplica a la comisión, no al valor de la operación.",
  "dz.pos.whatIf": "Qué pasaría si",
  "dz.pos.whatIfSub": "aritmética, no una previsión",
  "dz.qr.advanced": "Opciones avanzadas",
  "dz.qr.alsoVideo": "O descarga este video",
  "dz.qr.arrivalTooLong": "Ese valor es demasiado largo para un código QR, así que no se rellenó nada. Acórtalo e inténtalo de nuevo.",
  "dz.qr.benefit": "Crea un QR para un enlace, wifi o contacto.",
  "dz.qr.bg": "Fondo",
  "dz.qr.contrast": "Con poco contraste puede que no se escanee bien.",
  "dz.qr.copiedImg": "Imagen copiada.",
  "dz.qr.copyImg": "Copiar la imagen",
  "dz.qr.copyImgFail": "No se pudo copiar — descarga el PNG en su lugar.",
  "dz.qr.corner.dot": "Punto",
  "dz.qr.corner.extraRounded": "Muy redondeada",
  "dz.qr.corner.square": "Cuadrada",
  "dz.qr.corners": "Estilo de las esquinas",
  "dz.qr.descContact": "Tarjeta de contacto",
  "dz.qr.dots": "Estilo de los puntos",
  "dz.qr.ec": "Corrección de errores",
  "dz.qr.email": "Correo",
  "dz.qr.encodedLabel": "Codificado:",
  "dz.qr.fg": "Primer plano",
  "dz.qr.geo": "Ubicación",
  "dz.qr.link": "Enlace",
  "dz.qr.logo": "Logo en el centro",
  "dz.qr.logoHint": "Un logo sube la corrección de errores para que el código siga escaneándose.",
  "dz.qr.mail": "Correo electrónico",
  "dz.qr.name": "Generador de códigos QR",
  "dz.qr.name.f": "Nombre",
  "dz.qr.nothingYet": "Aún no hay nada que codificar",
  "dz.qr.pageTitle": "Generador de códigos QR — Dzzz",
  "dz.qr.password": "Contraseña",
  "dz.qr.phone": "Teléfono",
  "dz.qr.ready": "Listo",
  "dz.qr.removeLogo": "Quitar el logo",
  "dz.qr.secNone": "Ninguna",
  "dz.qr.security": "Seguridad",
  "dz.qr.seo": "Un código QR convierte un enlace, unos datos de wifi o una tarjeta de contacto en un código cuadrado que puede leer la cámara de cualquier teléfono. Crea el tuyo aquí — nunca sale de tu dispositivo.",
  "dz.qr.size": "Tamaño",
  "dz.qr.ssid": "Nombre de la red",
  "dz.qr.style.dots": "Puntos",
  "dz.qr.style.rounded": "Redondeados",
  "dz.qr.style.square": "Cuadrados",
  "dz.qr.tel": "Número de teléfono",
  "dz.qr.text": "Texto",
  "dz.qr.tooLong": "Demasiado largo para codificarlo con este nivel de corrección de errores. Baja el nivel o acorta el contenido.",
  "dz.qr.vcard": "Contacto",
  "dz.qr.wifi": "Wifi",
  "dz.redact.aiBeta": "Beta",
  "dz.redact.aiCategoriesLabel": "Categorías a detectar",
  "dz.redact.aiCautionBody": "Este modelo de IA opcional, que corre en tu dispositivo, intenta encontrar nombres, lugares, organizaciones y fechas que el análisis exacto de arriba no puede detectar. La calidad de la detección no está verificada — puede pasar por alto nombres (sobre todo en árabe) o marcar el texto equivocado. Revisa cada resaltado antes de confiar en él. No se descarga ni se analiza nada hasta que toques el botón de abajo.",
  "dz.redact.aiCautionBold": "Experimental.",
  "dz.redact.aiScanBtn": "Analizar con IA (beta)",
  "dz.redact.aiScanError": "El análisis con IA no funcionó — los resultados de coincidencia exacta de arriba siguen siendo válidos.",
  "dz.redact.aiScanNone": "No se encontraron más nombres, lugares, organizaciones ni fechas.",
  "dz.redact.aiScanning": "Analizando con IA…",
  "dz.redact.aiTitle": "Detección de nombres y lugares con IA",
  "dz.redact.benefit": "Encuentra y oculta información personal — en privado, en tu dispositivo.",
  "dz.redact.caveat": "La detección automática no lo encuentra todo — sobre todo los nombres árabes y los formatos poco comunes. Revisa cada resaltado antes de compartir.",
  "dz.redact.copied": "Copiado",
  "dz.redact.copy": "Copiar",
  "dz.redact.detectError": "No se pudo analizar este texto. Inténtalo de nuevo.",
  "dz.redact.detectTruncated": "Este texto es muy grande — solo se muestran las primeras {n} detecciones, así que el análisis está incompleto. Ocúltalo por partes más pequeñas para asegurarte de que no se escapa nada.",
  "dz.redact.download": "Descargar .txt",
  "dz.redact.exportError": "No se pudo generar el texto oculto. Inténtalo de nuevo.",
  "dz.redact.foundNone": "No se encontraron identificadores con formato fijo. Aún puedes ocultar nombres o direcciones a mano, más abajo.",
  "dz.redact.foundPrefix": "Encontrados",
  "dz.redact.inputLabel": "Pega o escribe el texto que quieres analizar",
  "dz.redact.kind.card": "Número de tarjeta",
  "dz.redact.kind.date": "Fecha",
  "dz.redact.kind.email": "Correo",
  "dz.redact.kind.iban": "IBAN",
  "dz.redact.kind.ip": "Dirección IP",
  "dz.redact.kind.org": "Organización",
  "dz.redact.kind.person": "Nombre",
  "dz.redact.kind.phone": "Teléfono",
  "dz.redact.kind.place": "Dirección/lugar",
  "dz.redact.kind.saudiId": "Identidad/iqama saudí",
  "dz.redact.kind.secret": "Clave/secreto de API",
  "dz.redact.kind.url": "URL",
  "dz.redact.manualAdded": "Selección añadida a la lista de revisión",
  "dz.redact.manualAsName": "Nombre",
  "dz.redact.manualAsPlace": "Dirección",
  "dz.redact.manualBtn": "Ocultar la selección",
  "dz.redact.manualHint": "Selecciona cualquier texto de arriba — un nombre, una dirección, lo que se le haya escapado al análisis — y ocúltalo. Así se cubren los nombres y las direcciones en texto libre.",
  "dz.redact.manualNoSelection": "Selecciona un texto primero.",
  "dz.redact.manualTitle": "Selección manual",
  "dz.redact.name": "Ocultar datos del texto",
  "dz.redact.notYet": "No se oculta nada hasta que presiones Ocultar, más abajo.",
  "dz.redact.outputLabel": "Texto con los datos ocultos",
  "dz.redact.pageTitle": "Ocultar información personal de un texto — Herramientas Dzzz",
  "dz.redact.privacyNote": "Nada de lo que pegues, subas o generes aquí se guarda, se registra, se transmite ni se conserva. Esta herramienta no tiene historial. Funciona por completo sin conexión.",
  "dz.redact.provenanceManual": "tu selección",
  "dz.redact.provenanceModel": "{pct}% de confianza",
  "dz.redact.provenancePattern": "coincidencia exacta",
  "dz.redact.redactBtn": "Ocultar",
  "dz.redact.redactedStatus": "Ocultado — {n} elementos",
  "dz.redact.scopeNote": "Solo encuentra identificadores con formato fijo — correos, teléfonos, IBAN, números de tarjeta, identidad/iqama saudí, URL, direcciones IP y claves o secretos de API. No detecta nombres ni direcciones en texto libre — para eso usa la selección manual.",
  "dz.redact.seo": "Encuentra información personal en un texto pegado — correos, teléfonos, IBAN, números de tarjeta, identidad saudí, URL, direcciones IP y claves de API — con coincidencia exacta de patrones verificada por checksum, directamente en tu navegador. Revisa cada coincidencia antes de que cambie nada: descarta los falsos positivos o selecciona cualquier otro texto (como un nombre o una dirección) para ocultarlo a mano. Elige un estilo de ocultación con bloque, etiqueta o carácter personalizado, y luego copia o descarga el resultado. La detección automática no lo encuentra todo, sobre todo los nombres árabes y los formatos poco comunes — revisa siempre antes de compartir. Nada de lo que pegues o generes aquí se guarda, se registra ni se transmite.",
  "dz.redact.stateKeep": "Conservado",
  "dz.redact.stateRedact": "Se ocultará",
  "dz.redact.styleBlock": "Bloque (████)",
  "dz.redact.styleChar": "Carácter personalizado",
  "dz.redact.styleCharLabel": "Carácter",
  "dz.redact.styleLabel": "Estilo de ocultación",
  "dz.redact.styleLabelOpt": "Etiqueta ([CORREO])",
  "dz.redact.tagNew": "Nuevo",
  "dz.redact.tooLarge": "Este texto es demasiado largo para revisarlo aquí (límite de 500,000 caracteres). Prueba con un fragmento más corto.",
  "dz.redact.uploadLabel": "O sube un archivo .txt",
  "dz.reel.benefit": "Recorta, ajusta a 9:16, añade música y un texto — una sola exportación",
  "dz.reel.captionColor": "Color",
  "dz.reel.captionSize": "Tamaño",
  "dz.reel.captionText": "Texto",
  "dz.reel.clipCap": "Los clips están limitados a 60 segundos.",
  "dz.reel.cropHint": "La salida siempre se recorta a 9:16 (1080×1920). Activa esto para elegir el punto focal en la vista previa — si no, se usa el centro.",
  "dz.reel.error": "El video dura más de {min} minutos — recórtalo primero o procésalo en una computadora.",
  "dz.reel.name": "Creador de reels",
  "dz.reel.pageTitle": "Creador de reels — Herramientas Dzzz",
  "dz.reel.posBottom": "Abajo",
  "dz.reel.posMiddle": "Centro",
  "dz.reel.posTop": "Arriba",
  "dz.reel.seo": "Convierte cualquier clip en un reel listo para publicar — recorta la mejor parte, ajústalo a 9:16, añade música de fondo y un texto que se ve correcto en árabe y en inglés, todo en una sola exportación. Pensado para creadores y vendedores que hacen reels de producto, por completo en tu dispositivo.",
  "dz.reel.sizeL": "G",
  "dz.reel.sizeM": "M",
  "dz.reel.sizeS": "P",
  "dz.reel.slowNote": "Esto vuelve a codificar tu video — puede tardar varios minutos y es mucho más rápido en una computadora.",
  "dz.reel.stepCaption": "4. Texto",
  "dz.reel.stepCrop": "2. Ajustar a 9:16",
  "dz.reel.stepMusic": "3. Música",
  "dz.reel.stepTrim": "1. Recorte",
  "dz.reel.title": "Creador de reels",
  "dz.related.all": "Todas las herramientas de {cat}",
  "dz.related.title": "Herramientas relacionadas",
  "dz.scaler.addRow": "Añadir ingrediente",
  "dz.scaler.amount": "Cantidad",
  "dz.scaler.baseServings": "La receta rinde",
  "dz.scaler.benefit": "Cambia las cantidades de una receta sin decimales raros.",
  "dz.scaler.clear": "Borrar todo",
  "dz.scaler.copyList": "Copiar la lista ajustada",
  "dz.scaler.crossConverter": "Conversor de medidas de cocina",
  "dz.scaler.crossOven": "Conversor de temperatura del horno",
  "dz.scaler.crossPortion": "Planificador de raciones",
  "dz.scaler.crossSubs": "Sustituciones de ingredientes",
  "dz.scaler.errAmount": "El ingrediente fijado necesita una cantidad mayor que cero.",
  "dz.scaler.errServings": "Las raciones deben ser más de cero.",
  "dz.scaler.factor": "Factor",
  "dz.scaler.factorLine": "Cada cantidad × {n}",
  "dz.scaler.ingredient": "Ingrediente",
  "dz.scaler.ingredients": "Ingredientes",
  "dz.scaler.mode": "Ajustar por",
  "dz.scaler.modeIngredient": "Un ingrediente",
  "dz.scaler.modeServings": "Raciones",
  "dz.scaler.name": "Escalar recetas",
  "dz.scaler.namePlaceholder": "p. ej. harina",
  "dz.scaler.needRows": "Añade al menos un ingrediente con cantidad.",
  "dz.scaler.original": "Original",
  "dz.scaler.pageTitle": "Escalar recetas — Dzzz",
  "dz.scaler.pin": "Ajustar por este ingrediente",
  "dz.scaler.pinPick": "Elige el ingrediente por el que ajustar",
  "dz.scaler.pinTarget": "Cantidad que tienes",
  "dz.scaler.pinned": "Ajustando por",
  "dz.scaler.quickDouble": "Doble",
  "dz.scaler.quickHalf": "Mitad",
  "dz.scaler.quickTriple": "Triple",
  "dz.scaler.removeRow": "Quitar ingrediente",
  "dz.scaler.roundNote": "Las cantidades de volumen se ajustan a las fracciones que las tazas y cucharas de medida pueden dar de verdad. Los pesos se redondean a la precisión que muestra una balanza de cocina, nunca a una fracción — un tercio de gramo no es algo que puedas medir.",
  "dz.scaler.scaled": "Receta ajustada",
  "dz.scaler.seo": "Ajusta una receta hacia arriba o hacia abajo por raciones, o fijando un ingrediente a la cantidad que realmente tienes. Las cantidades de volumen se ajustan a las fracciones que un juego de medidas puede dar de verdad, y los pesos se redondean a la precisión que muestra una balanza de cocina. Funciona por completo en tu dispositivo.",
  "dz.scaler.servings": "Raciones",
  "dz.scaler.shareNote": "El enlace lleva solo las raciones — tu lista de ingredientes se queda en este dispositivo.",
  "dz.scaler.targetServings": "La necesitas para",
  "dz.scaler.timeNote": "Escalar cambia solo las cantidades. Los tiempos de cocción, los tamaños de molde y la temperatura del horno no cambian con ellas.",
  "dz.scaler.title": "Escalar recetas",
  "dz.scaler.unit": "Unidad",
  "dz.scaler.unitCup": "taza",
  "dz.scaler.unitG": "g",
  "dz.scaler.unitKg": "kg",
  "dz.scaler.unitL": "l",
  "dz.scaler.unitLb": "lb",
  "dz.scaler.unitMl": "ml",
  "dz.scaler.unitNone": "sin unidad",
  "dz.scaler.unitOz": "oz",
  "dz.scaler.unitPiece": "pieza",
  "dz.scaler.unitTbsp": "cda",
  "dz.scaler.unitTsp": "cdta",
  "dz.scan.aim": "Apunta la cámara a un código. Se lee solo — no hay botón de disparo.",
  "dz.scan.backendNative": "Usamos el lector integrado de tu navegador — no se descargó nada.",
  "dz.scan.backendWasm": "Usamos el lector incluido (cerca de 1 MB, se descarga una vez y tu navegador lo guarda en caché).",
  "dz.scan.benefit": "Mira qué dice de verdad un código antes de actuar",
  "dz.scan.busy": "La cámara no se inició",
  "dz.scan.busyBody": "Puede que otra app o pestaña la tenga tomada, o que el navegador no haya podido abrirla. Cierra cualquier cosa que pueda estar usando la cámara e inténtalo otra vez — o sube una foto.",
  "dz.scan.cancel": "Cancelar",
  "dz.scan.checkDigit": "Dígito de control válido",
  "dz.scan.checkDigitBad": "El dígito de control no coincide",
  "dz.scan.checkDigitExpected": "Último dígito esperado: {d}",
  "dz.scan.clearAll": "Borrar todo",
  "dz.scan.clearConfirm": "¿Borrar todo el historial de escaneos?",
  "dz.scan.close": "Cerrar",
  "dz.scan.contactEmail": "Correo",
  "dz.scan.contactName": "Nombre",
  "dz.scan.contactPhone": "Teléfono",
  "dz.scan.contents": "Contenido",
  "dz.scan.copyLink": "Copiar el enlace",
  "dz.scan.copyNumber": "Copiar el número",
  "dz.scan.copyPassword": "Copiar la contraseña",
  "dz.scan.copySsid": "Copiar el nombre de la red",
  "dz.scan.copyText": "Copiar el texto",
  "dz.scan.crossBarcode": "Crear un código de barras",
  "dz.scan.crossQr": "Crear un código QR",
  "dz.scan.crossZatca": "Crear un QR de factura ZATCA",
  "dz.scan.decoderTitle": "Decodificador en este dispositivo",
  "dz.scan.denied": "La cámara está bloqueada para este sitio",
  "dz.scan.deniedBody": "No hay problema — elige una foto y obtienes el mismo resultado.",
  "dz.scan.destination": "Destino",
  "dz.scan.handoffNote": "El código se pasa en memoria, no en la barra de direcciones.",
  "dz.scan.hidePassword": "Ocultar la contraseña",
  "dz.scan.historyEmpty": "Todavía no has escaneado nada.",
  "dz.scan.ibanInvalid": "La suma de control no coincide",
  "dz.scan.ibanValid": "Suma de control válida",
  "dz.scan.kindBarcode": "Código de barras de producto",
  "dz.scan.kindContact": "Contacto",
  "dz.scan.kindIban": "IBAN",
  "dz.scan.kindText": "Texto",
  "dz.scan.kindUrl": "Enlace",
  "dz.scan.kindWifi": "Red Wi-Fi",
  "dz.scan.kindZatca": "QR de factura ZATCA",
  "dz.scan.lowLight": "Hay poca luz — prueba la linterna o busca un lugar más iluminado.",
  "dz.scan.name": "Lector de QR y códigos de barras",
  "dz.scan.no": "No",
  "dz.scan.noCamera": "No se encontró ninguna cámara",
  "dz.scan.noCameraBody": "Sube una foto o pega una imagen.",
  "dz.scan.noLookup": "Sin búsqueda de producto — eso necesitaría una consulta en red y una base de datos con licencia.",
  "dz.scan.noTorch": "¿No ves el botón de linterna? Tu navegador no permite controlarla en esta cámara — muchos no lo permiten.",
  "dz.scan.nothingFound": "No se encontró ningún código en esa imagen.",
  "dz.scan.oneFound": "1 código encontrado",
  "dz.scan.openCamera": "Abrir la cámara",
  "dz.scan.openIban": "Comprobar en el validador de IBAN",
  "dz.scan.openLink": "Abrir el enlace",
  "dz.scan.openZatca": "Abrir en el decodificador ZATCA",
  "dz.scan.pageTitle": "Lector de QR y códigos de barras — Dzzz",
  "dz.scan.pasteBlocked": "Tu navegador no entregó el portapapeles. Presiona Ctrl+V (⌘V) con esta página en primer plano, o sube la imagen.",
  "dz.scan.pasteImage": "Pegar una imagen",
  "dz.scan.pasteNoImage": "No hay ninguna imagen en el portapapeles.",
  "dz.scan.privacyNote": "Los códigos se decodifican en tu dispositivo. No se sube nada.",
  "dz.scan.reading": "Leyendo…",
  "dz.scan.reasonCredentials": "La dirección lleva incrustado un usuario o una contraseña.",
  "dz.scan.reasonInsecure": "Usa http:// en lugar de https.",
  "dz.scan.reasonLongEncoded": "La dirección es inusualmente larga y está muy codificada.",
  "dz.scan.reasonPunycode": "El dominio usa caracteres que pueden imitar a otro sitio.",
  "dz.scan.reasonShortener": "La dirección es un acortador, así que el destino real queda oculto.",
  "dz.scan.recent": "Escaneos recientes",
  "dz.scan.revealPassword": "Mostrar la contraseña",
  "dz.scan.saveContact": "Guardar el contacto (.vcf)",
  "dz.scan.scanAnother": "Escanear otro",
  "dz.scan.secOpen": "Abierta (sin contraseña)",
  "dz.scan.secWep": "WEP",
  "dz.scan.secWpa": "WPA/WPA2",
  "dz.scan.seo": "Escanea códigos QR y de barras con la cámara, con una imagen que subas o con una captura que pegues. Todo se decodifica en tu dispositivo — no se sube nada. Los enlaces nunca se abren solos, y los acortados o inseguros se señalan antes de que los toques.",
  "dz.scan.sheetTitle": "Escanear un código",
  "dz.scan.storedHere": "Guardado solo en este dispositivo",
  "dz.scan.switchCamera": "Cambiar de cámara",
  "dz.scan.title": "Lector de QR y códigos de barras",
  "dz.scan.torch": "Linterna",
  "dz.scan.tryAgain": "Reintentar",
  "dz.scan.twoFound": "{n} códigos encontrados — elige uno",
  "dz.scan.twoFoundDual": "Dos códigos encontrados — elige uno",
  "dz.scan.uploadCta": "Subir una imagen",
  "dz.scan.uploadInstead": "Subir una imagen",
  "dz.scan.viewResult": "Ver el resultado",
  "dz.scan.warnNoticeBody": "Abre solo enlaces en los que confíes — los códigos QR son un método de phishing habitual.",
  "dz.scan.warnNoticeTitle": "Este enlace oculta adónde va",
  "dz.scan.warnStrongBody": "Lo que escribas en él podrían leerlo otras personas de tu red, o la página puede no pertenecer al sitio que aparenta ser.",
  "dz.scan.warnStrongTitle": "No es seguro confiar en este enlace tal como está",
  "dz.scan.wifiHidden": "Red oculta",
  "dz.scan.wifiNote": "Copiado a tu portapapeles — conectarte depende de ti. Nunca nos conectamos por ti.",
  "dz.scan.wifiPassword": "Contraseña",
  "dz.scan.wifiSecurity": "Seguridad",
  "dz.scan.wifiSsid": "Nombre de la red",
  "dz.scan.yes": "Sí",
  "dz.search.hubHint": "Busca entre {n} herramientas en árabe o inglés — por nombre o por lo que hacen.",
  "dz.search.regionLabel": "Buscar herramientas",
  "dz.shell.accepts": "Acepta {list}",
  "dz.shell.another": "Convertir otro",
  "dz.shell.drop": "Suelta un archivo o toca para elegir",
  "dz.shell.eta": "~{min} min restantes",
  "dz.shell.failed": "No funcionó — puede que el archivo no sea compatible.",
  "dz.shell.preparing": "Preparando el motor… (solo la primera vez)",
  "dz.shell.remove": "Quitar el archivo",
  "dz.shell.sizeNote": "{from} → {to}",
  "dz.shell.zipAll": "Guardar todo (ZIP)",
  "dz.shop.addRow": "Añadir producto (hasta 6)",
  "dz.shop.benefit": "Descuentos, precio por unidad y mejor oferta",
  "dz.shop.best": "Mejor precio",
  "dz.shop.bundlePrice": "Precio del pack",
  "dz.shop.bundleQty": "Cantidad del pack",
  "dz.shop.buyX": "Compra",
  "dz.shop.combined": "Descuento combinado real",
  "dz.shop.dBogo": "Compra X, Y gratis",
  "dz.shop.dBundle": "Pack («3 por 25»)",
  "dz.shop.dPct": "% de descuento",
  "dz.shop.dSecond": "% en la segunda unidad",
  "dz.shop.dSimple": "Precio directo",
  "dz.shop.dealType": "Tipo de oferta",
  "dz.shop.disc1": "Descuento %",
  "dz.shop.disc2": "+ % extra",
  "dz.shop.discount": "Descuento",
  "dz.shop.finalPrice": "Precio final",
  "dz.shop.g": "g",
  "dz.shop.getY": "Gratis",
  "dz.shop.gotOff": "Conseguiste un {n}% de descuento",
  "dz.shop.kg": "kg",
  "dz.shop.l": "L",
  "dz.shop.label": "Nombre",
  "dz.shop.ml": "ml",
  "dz.shop.name": "Asistente de compras",
  "dz.shop.offerA": "Oferta A",
  "dz.shop.offerB": "Oferta B",
  "dz.shop.offers": "Comparar ofertas",
  "dz.shop.original": "Precio original",
  "dz.shop.pageDesc": "Calcula el mejor precio entre distintas ofertas — descuentos porcentuales, ofertas combinadas, precio por unidad y qué compra sale más barata, sin enviar datos.",
  "dz.shop.pageTitle": "Asistente de compras — descuentos y precio por unidad — Herramientas Dzzz",
  "dz.shop.pcs": "pieza",
  "dz.shop.pctOff": "% de descuento",
  "dz.shop.per": "por {unit}",
  "dz.shop.perItem": "por artículo",
  "dz.shop.perUnit": "Precio por unidad",
  "dz.shop.price": "Precio",
  "dz.shop.qty": "Cantidad",
  "dz.shop.relatedExtras": "Relacionado: Extras de compras",
  "dz.shop.reverse": "Sé el precio final — calcula mi % de descuento",
  "dz.shop.seo": "Una calculadora de supermercado para tu teléfono: saca el descuento real (incluidas las ofertas acumuladas de «50% + 20% extra» — el total verdadero es 60%, no 70%), compara el precio por kilo o por litro entre productos, y averigua qué promoción (2x1, packs, descuento en la segunda unidad) sale de verdad más barata por artículo. En tu dispositivo, al instante.",
  "dz.shop.symbol": "Moneda",
  "dz.shop.tagNew": "Nuevo",
  "dz.shop.tie": "Mismo precio — elige la que prefieras",
  "dz.shop.unit": "Unidad",
  "dz.shop.unitMismatch": "Usa la misma unidad para poder comparar",
  "dz.shop.unitVerdict": "{label} es {n}% más barato por {unit}",
  "dz.shop.vatInfo": "Parte del IVA: {v}",
  "dz.shop.vatToggle": "Los precios incluyen 15% de IVA",
  "dz.shop.verdict": "{winner} es {n}% más barato por artículo",
  "dz.shop.whyNot": "¿Por qué no 70%?",
  "dz.shop.whyNotD": "El % extra se aplica al precio ya rebajado, así que los descuentos acumulados se multiplican — nunca se suman.",
  "dz.shop.youPay": "Pagas",
  "dz.shop.youSave": "Ahorras",
  "dz.sleep.bedTime": "Hora de acostarse",
  "dz.sleep.bedtimes": "Horas sugeridas para acostarse",
  "dz.sleep.benefit": "Horas sugeridas para acostarse o despertar según los ciclos de sueño — funciona por completo en tu dispositivo.",
  "dz.sleep.buffer": "Las horas incluyen un margen de {n} minutos para dormirte.",
  "dz.sleep.disclaimer": "Estimaciones basadas en ciclos de sueño promedio — no son consejo médico. Si tienes problemas de sueño persistentes, consulta a un médico.",
  "dz.sleep.durH": "{h} h de sueño",
  "dz.sleep.durHM": "{h} h {m} min de sueño",
  "dz.sleep.honesty": "El ciclo de {avg} minutos es un promedio poblacional. Los promedios individuales medidos van de {min} a {max} minutos (DE ≈ {sd} min), y la duración del ciclo cambia a lo largo de la noche — esta herramienta no puede conocer los límites reales de tus ciclos.",
  "dz.sleep.modeBed": "Me voy a acostar a las…",
  "dz.sleep.modeWake": "Quiero despertarme a las…",
  "dz.sleep.name": "Calculadora de ciclos de sueño",
  "dz.sleep.optCycles": "{n} ciclos",
  "dz.sleep.pageTitle": "Calculadora de ciclos de sueño — Dzzz",
  "dz.sleep.seo": "Calculadora gratuita de ciclos de sueño: horas sugeridas para acostarse o despertar según ciclos de 90 minutos, con notas honestas sobre la variación individual. Funciona por completo en tu dispositivo.",
  "dz.sleep.title": "Calculadora de ciclos de sueño",
  "dz.sleep.wakeTime": "Hora de despertar",
  "dz.sleep.wakes": "Horas sugeridas para despertar",
  "dz.splitCsv.benefit": "Divide un archivo CSV/Excel en varias partes",
  "dz.splitCsv.byCol": "Valor de una columna",
  "dz.splitCsv.byRows": "Número de filas",
  "dz.splitCsv.count": "Se crearán {n} archivos",
  "dz.splitCsv.mode": "Dividir por",
  "dz.splitCsv.name": "Dividir CSV",
  "dz.splitCsv.pageTitle": "Dividir un archivo CSV o Excel — Herramientas Dzzz",
  "dz.splitCsv.pick": "Elige un archivo para dividir",
  "dz.splitCsv.pickCol": "Columna",
  "dz.splitCsv.rowsPer": "Filas por archivo",
  "dz.splitCsv.run": "Dividir",
  "dz.splitCsv.seo": "Divide un archivo CSV, TSV, XLSX o JSON en varias partes, directamente en tu navegador — por un número fijo de filas o por el valor de la columna que elijas. Recibes todas las partes en una sola descarga ZIP. No se sube nada.",
  "dz.splitCsv.title": "Dividir un archivo CSV o Excel",
  "dz.sub.another": "Traducir otro",
  "dz.sub.attachSub": "Adjuntar como pista de subtítulos (.mkv)",
  "dz.sub.attaching": "Adjuntando…",
  "dz.sub.benefit": "Traduce los subtítulos de un video entre inglés y árabe — en tu dispositivo.",
  "dz.sub.burnIn": "Incrustar en el video (experimental)",
  "dz.sub.burnNote": "Experimental: dibuja los subtítulos en árabe dentro de la imagen con una fuente incluida. Comprueba que las letras se unan bien antes de confiar en él.",
  "dz.sub.burning": "Incrustando…",
  "dz.sub.dirArEn": "Árabe → Inglés",
  "dz.sub.dirEnAr": "Inglés → Árabe",
  "dz.sub.direction": "Dirección",
  "dz.sub.dropSubtitle": "Suelta un archivo SRT o VTT, o toca para elegir",
  "dz.sub.dropVideo": "Suelta un archivo de video, o toca para elegir",
  "dz.sub.editLine": "Editar esta línea",
  "dz.sub.elapsed": "Transcurrido {t}",
  "dz.sub.elapsedSlow": "Transcurrido {t} · más lento aquí porque este dispositivo usa el motor de compatibilidad",
  "dz.sub.engineHint": "motor de ~120 MB",
  "dz.sub.exportSrt": "SRT",
  "dz.sub.exportVtt": "VTT",
  "dz.sub.failed": "No funcionó — prueba con otro archivo.",
  "dz.sub.mtNote": "La calidad de la traducción automática varía — revisa y edita antes de exportar.",
  "dz.sub.name": "Traducir subtítulos",
  "dz.sub.outBilingual": "Bilingüe (original + traducción)",
  "dz.sub.outTranslated": "Solo la traducción",
  "dz.sub.outputMode": "Salida",
  "dz.sub.pageTitle": "Traducción de subtítulos EN↔AR — Herramientas Dzzz",
  "dz.sub.parseError": "No se pudo leer ese archivo de subtítulos — comprueba que sea un SRT o VTT válido.",
  "dz.sub.postFailed": "No se pudo crear el archivo con subtítulos — prueba la opción de subtítulos separados, o con otro video.",
  "dz.sub.seo": "Traduce los subtítulos de un video entre inglés y árabe, por completo en tu dispositivo. Transcribe un video o sube un archivo SRT/VTT que ya tengas, traduce cada línea conservando los tiempos originales y exporta subtítulos solo en árabe o bilingües que puedes editar ahí mismo en el navegador. Sin subidas, sin cuenta.",
  "dz.sub.subtitleTab": "Subir SRT/VTT",
  "dz.sub.verb": "Traducir",
  "dz.sub.videoOutput": "Video con subtítulos",
  "dz.sub.videoTab": "Desde un video",
  "dz.sub.working": "— ~{s} s en este dispositivo",
  "dz.sub.workingTranscribe": "Transcribiendo…",
  "dz.sub.workingTranslate": "Traduciendo…",
  "dz.tools.audio.benefit": "MP3 o M4A, tú eliges.",
  "dz.tools.audio.name": "Conversor de audio",
  "dz.tools.gif.benefit": "Crea un GIF en bucle a partir de un clip.",
  "dz.tools.gif.name": "Video → GIF",
  "dz.tools.mp3.benefit": "Extrae el audio de cualquier video.",
  "dz.tools.mp3.name": "Video → MP3",
  "dz.tools.mute.benefit": "Silencia un video o extrae su sonido.",
  "dz.tools.mute.name": "Silenciar / extraer audio",
  "dz.tools.sub": "Convierte y edita — directamente en tu dispositivo.",
  "dz.tools.title": "Herramientas",
  "dz.tools.trim.benefit": "Quédate solo con la parte que necesitas.",
  "dz.tools.trim.name": "Recortar video",
  "dz.tr.another": "Transcribir otro",
  "dz.tr.benefit": "Convierte audio o video en texto — en tu dispositivo.",
  "dz.tr.copied": "Copiado",
  "dz.tr.copy": "Copiar la transcripción",
  "dz.tr.drop": "Suelta un archivo de audio o video, o toca para elegir",
  "dz.tr.editLine": "Editar esta línea",
  "dz.tr.elapsed": "Transcurrido {t}",
  "dz.tr.elapsedSlow": "Transcurrido {t} · más lento aquí porque este dispositivo usa el motor de compatibilidad",
  "dz.tr.engineHint": "motor de ~80 MB",
  "dz.tr.exportSrt": "SRT",
  "dz.tr.exportTxt": "TXT",
  "dz.tr.exportVtt": "VTT",
  "dz.tr.failed": "No funcionó — prueba con otro archivo.",
  "dz.tr.language": "Idioma",
  "dz.tr.languageHint": "Elige el idioma del audio para obtener la mejor precisión.",
  "dz.tr.micDenied": "Se denegó el acceso al micrófono — sube un archivo en su lugar.",
  "dz.tr.model": "Modelo",
  "dz.tr.modelBase": "Base (más preciso)",
  "dz.tr.modelSmall": "Small (el mejor en árabe)",
  "dz.tr.modelSmallNote": "Bastante mejor con el árabe, pero son 249 MB de descarga y va mucho más lento en el teléfono. Mejor en una computadora.",
  "dz.tr.modelTiny": "Tiny (más rápido, menos preciso)",
  "dz.tr.name": "Transcribir",
  "dz.tr.pageTitle": "Transcripción gratuita de audio y video — Dzzz",
  "dz.tr.pause": "Pausar",
  "dz.tr.play": "Reproducir",
  "dz.tr.record": "Grabar",
  "dz.tr.recordTab": "Grabar",
  "dz.tr.rerecord": "Grabar de nuevo",
  "dz.tr.seo": "Transcribe audio y video a texto gratis y por completo en tu dispositivo — incluida una transcripción sólida del árabe. Sube un archivo o graba con tu micrófono, obtén subtítulos con marcas de tiempo que puedes editar en el propio navegador y expórtalos como TXT, SRT o VTT. Sin subidas, sin cuenta — y sigue funcionando sin conexión una vez que el modelo se ha descargado.",
  "dz.tr.stop": "Detener",
  "dz.tr.tagNew": "Nuevo",
  "dz.tr.uploadTab": "Subir un archivo",
  "dz.tr.useRecording": "Usar esta grabación",
  "dz.tr.verb": "Transcribir",
  "dz.tr.working": "Trabajando — ~{s} s en este dispositivo",
  "dz.trip.addExpense": "Añadir un gasto",
  "dz.trip.addPerson": "Añadir persona",
  "dz.trip.allSettled": "Todos están en cero — nada que pagar.",
  "dz.trip.amount": "Monto",
  "dz.trip.balances": "Saldos",
  "dz.trip.basis": "¿Cómo se cuenta?",
  "dz.trip.benefit": "Planea el presupuesto y luego divide lo que pagó cada uno.",
  "dz.trip.breakdown": "En qué se va",
  "dz.trip.budgetEmpty": "Pon un monto en alguna categoría para ver los totales.",
  "dz.trip.catActivities": "Actividades",
  "dz.trip.catFlights": "Vuelos",
  "dz.trip.catFood": "Comida",
  "dz.trip.catOther": "Otros",
  "dz.trip.catShopping": "Compras",
  "dz.trip.catStay": "Alojamiento",
  "dz.trip.catTransport": "Transporte",
  "dz.trip.categories": "Categorías",
  "dz.trip.clearAll": "Borrar todo",
  "dz.trip.clearAllConfirm": "Esto borra de este dispositivo el viaje, las personas y todos los gastos. No se puede deshacer.",
  "dz.trip.clearAllDone": "Se borró todo.",
  "dz.trip.copyLabel": "Resumen",
  "dz.trip.copySummary": "Copiar el resumen",
  "dz.trip.currency": "Moneda",
  "dz.trip.currencyHint": "Solo una etiqueta — elige la moneda en la que gastas.",
  "dz.trip.currencyPlaceholder": "SAR",
  "dz.trip.dataTitle": "Tus datos",
  "dz.trip.days": "Duración del viaje en días",
  "dz.trip.daysShort": "días",
  "dz.trip.desc": "Planea el presupuesto y luego divide lo que pagó cada uno.",
  "dz.trip.errAmong": "Elige al menos una persona entre quienes dividirlo.",
  "dz.trip.errAmount": "Escribe un monto mayor que cero.",
  "dz.trip.errDays": "Indica al menos un día.",
  "dz.trip.errGeneric": "Revisa los datos — esto no se puede dividir.",
  "dz.trip.errName": "Escribe un nombre.",
  "dz.trip.errNameTaken": "Ese nombre ya está en la lista.",
  "dz.trip.errPayer": "Elige quién pagó.",
  "dz.trip.errShares": "Las partes deben ser números enteros mayores que cero.",
  "dz.trip.errTravellers": "Indica al menos un viajero.",
  "dz.trip.everyone": "Todos",
  "dz.trip.expenseWhat": "¿De qué fue?",
  "dz.trip.expenseWhatPlaceholder": "Cena",
  "dz.trip.expenses": "Gastos",
  "dz.trip.expensesCount": "{n} gastos",
  "dz.trip.expensesEmpty": "Aún no hay gastos.",
  "dz.trip.export": "Exportar",
  "dz.trip.exportDone": "Exportado.",
  "dz.trip.fxLink": "¿Necesitas convertir? Abre el conversor de monedas.",
  "dz.trip.level": "En cero",
  "dz.trip.name": "Presupuesto de viaje y división de gastos",
  "dz.trip.noRates": "Los montos van en la moneda que elijas. No se usan ni se consultan tipos de cambio.",
  "dz.trip.owed": "Le deben {n}",
  "dz.trip.owes": "Debe {n}",
  "dz.trip.pageTitle": "Presupuesto de viaje y división de gastos — Dzzz",
  "dz.trip.paidBy": "Pagó",
  "dz.trip.people": "¿Quiénes van al viaje?",
  "dz.trip.peopleEmpty": "Añade al menos dos personas antes de dividir nada.",
  "dz.trip.perDay": "Por día",
  "dz.trip.perDayHint": "Se multiplica por la duración del viaje.",
  "dz.trip.perPerson": "Por persona",
  "dz.trip.perPersonPerDay": "Por persona y día",
  "dz.trip.perTrip": "Para todo el viaje",
  "dz.trip.personName": "Nombre",
  "dz.trip.personPlaceholder": "Nombre",
  "dz.trip.privacy": "Todo se queda en este dispositivo. No se sube nada y no hay cuenta.",
  "dz.trip.removeExpense": "Quitar este gasto",
  "dz.trip.removePerson": "Quitar a {name}",
  "dz.trip.seo": "Dos mitades del mismo viaje. Planea un presupuesto por categoría, para todo el viaje o por día, y mira el total, el costo por persona y el costo por día. Después registra quién pagó qué y obtén el saldo de cada uno junto con la liquidación: quién le paga a quién y cuánto. Todos los montos se calculan en unidades mínimas enteras de la moneda, así que la liquidación cierra en cero exacto. Todo se queda en tu dispositivo — sin cuenta, sin subir nada y sin tipos de cambio en el cálculo.",
  "dz.trip.seoIntro": "Dos mitades del mismo viaje. Planea un presupuesto por categoría, para todo el viaje o por día, y mira el total, el costo por persona y el costo por día. Después registra quién pagó qué y obtén el saldo de cada uno junto con la liquidación: quién le paga a quién y cuánto. Todos los montos se calculan en unidades mínimas enteras de la moneda, así que la liquidación cierra en cero exacto. Todo se queda en tu dispositivo — sin cuenta, sin subir nada y sin tipos de cambio en el cálculo.",
  "dz.trip.settleExact": "Este es el mínimo de transferencias posible.",
  "dz.trip.settleGreedy": "Son menos transferencias que devolverle a cada uno por separado.",
  "dz.trip.settleMethodHint": "Pasadas {n} personas con algo por cobrar o por pagar, hallar el mínimo real deja de ser rápido, así que se usa una ruta lo bastante buena.",
  "dz.trip.settleOne": "1 transferencia",
  "dz.trip.settleTransfers": "{n} transferencias",
  "dz.trip.settleUp": "Saldar cuentas",
  "dz.trip.shareOfTotal": "{pct}% del total",
  "dz.trip.shares": "Partes",
  "dz.trip.sharesHint": "Números enteros. Un 2 vale el doble que un 1.",
  "dz.trip.someone": "Solo algunos",
  "dz.trip.spentTotal": "Gastado hasta ahora",
  "dz.trip.splitAmong": "Dividir entre",
  "dz.trip.splitByShares": "Por partes",
  "dz.trip.splitEvenly": "Por igual",
  "dz.trip.summaryTitle": "Resumen del viaje",
  "dz.trip.tabBudget": "Presupuesto",
  "dz.trip.tabSplit": "División de gastos",
  "dz.trip.tabsAria": "Herramientas de viaje",
  "dz.trip.title": "Presupuesto de viaje y división de gastos",
  "dz.trip.total": "Total",
  "dz.trip.totalPerDay": "Por día",
  "dz.trip.transferLine": "{from} le paga {amount} a {to}",
  "dz.trip.travellers": "Viajeros",
  "dz.trip.tripName": "Nombre del viaje",
  "dz.trip.tripNamePlaceholder": "Verano en Georgia",
  "dz.tz.addCity": "Añadir una ciudad",
  "dz.tz.ambiguous": "Esa hora local ocurre dos veces en esta fecha — elige a cuál te refieres.",
  "dz.tz.ambiguousTitle": "Esa hora ocurre dos veces",
  "dz.tz.benefit": "Convierte una hora entre ciudades, organiza una reunión, mira un reloj mundial.",
  "dz.tz.chosenHour": "Hora elegida",
  "dz.tz.cityLabel": "Ciudad",
  "dz.tz.cityNoResults": "Ninguna ciudad coincide con esa búsqueda.",
  "dz.tz.cityResults": "{n} ciudades",
  "dz.tz.citySearch": "Buscar ciudades",
  "dz.tz.citySearchPlaceholder": "Ciudad o país",
  "dz.tz.clear": "Borrar las ciudades fijadas",
  "dz.tz.clockEmpty": "Aún no hay ciudades fijadas.",
  "dz.tz.clockHint": "En vivo, y sigue andando mientras esta página esté abierta.",
  "dz.tz.clockLocal": "Tu dispositivo",
  "dz.tz.clockTitle": "Reloj mundial",
  "dz.tz.copyLabel": "Horas",
  "dz.tz.copyTimes": "Copiar las horas",
  "dz.tz.date": "Fecha",
  "dz.tz.dayLabel": "Día",
  "dz.tz.daysEarlier": "{n} días antes",
  "dz.tz.daysLater": "{n} días después",
  "dz.tz.desc": "Convierte una hora entre ciudades, organiza una reunión, mira un reloj mundial.",
  "dz.tz.differenceAhead": "{n} h por delante de {city}",
  "dz.tz.differenceBehind": "{n} h por detrás de {city}",
  "dz.tz.differenceSame": "la misma hora que {city}",
  "dz.tz.errDate": "Escribe una fecha válida.",
  "dz.tz.errTime": "Escribe una hora válida.",
  "dz.tz.errYear": "Escribe un año de cuatro cifras.",
  "dz.tz.errZone": "Este navegador no reconoce esa zona horaria.",
  "dz.tz.gap": "Esa hora local no existe en esta zona — los relojes se adelantan.",
  "dz.tz.gapSuggestion": "Los relojes pasan directamente a {time}.",
  "dz.tz.gapTitle": "Esa hora no existe",
  "dz.tz.hourAria": "{time} en {city}",
  "dz.tz.meetingDate": "Fecha de la reunión",
  "dz.tz.meetingEmpty": "Añade al menos dos ciudades para comparar.",
  "dz.tz.meetingHint": "Elige una fecha y lee de un vistazo — cada ciudad elegida en una sola franja.",
  "dz.tz.meetingTitle": "Planificador de reuniones",
  "dz.tz.name": "Conversor de zonas horarias",
  "dz.tz.nextDay": "el día siguiente",
  "dz.tz.nightLabel": "Noche",
  "dz.tz.noDst": "Arabia Saudita no aplica el horario de verano, así que su diferencia horaria es la misma todo el año.",
  "dz.tz.now": "Ahora",
  "dz.tz.nowLegend": "Ahora",
  "dz.tz.occurrenceFirst": "La primera",
  "dz.tz.occurrenceHint": "Las dos son momentos reales separados por poco tiempo. Se usa la primera salvo que la cambies.",
  "dz.tz.occurrenceSecond": "La segunda",
  "dz.tz.offsetLabel": "Diferencia con UTC",
  "dz.tz.outsideLegend": "Fuera del horario laboral",
  "dz.tz.pageTitle": "Conversor de zonas horarias — Dzzz",
  "dz.tz.pickHour": "Elegir esta hora",
  "dz.tz.pinnedCities": "Tus ciudades",
  "dz.tz.pinnedEmpty": "Aún no hay ciudades — busca arriba y añade una.",
  "dz.tz.prevDay": "el día anterior",
  "dz.tz.privacy": "Tus ciudades fijadas se recuerdan solo en este dispositivo. No se sube nada y no hay cuenta.",
  "dz.tz.removeCity": "Quitar {city}",
  "dz.tz.result": "El mismo momento en otras ciudades",
  "dz.tz.resultsAria": "Horas convertidas",
  "dz.tz.sameDay": "el mismo día",
  "dz.tz.seo": "Convierte una hora local entre ciudades, organiza una reunión con varias zonas horarias a la vez y mantén un reloj mundial con los lugares que te importan. El horario de verano se lee de la propia base de datos de zonas horarias de tu navegador y no de un desfase guardado, así que una hora local que no existe y una hora local que ocurre dos veces se muestran tal cual, en vez de adivinarse en silencio. Riad viene fijada por defecto. Funciona por completo en tu dispositivo — sin red y sin cuenta.",
  "dz.tz.seoIntro": "Convierte una hora local entre ciudades, organiza una reunión con varias zonas horarias a la vez y mantén un reloj mundial con los lugares que te importan. El horario de verano se lee de la propia base de datos de zonas horarias de tu navegador y no de un desfase guardado, así que una hora local que no existe y una hora local que ocurre dos veces se muestran tal cual, en vez de adivinarse en silencio. Riad viene fijada por defecto. Funciona por completo en tu dispositivo — sin red y sin cuenta.",
  "dz.tz.sourceCity": "De",
  "dz.tz.stripAria": "Horas en {city}",
  "dz.tz.tabClock": "Reloj mundial",
  "dz.tz.tabConvert": "Convertir",
  "dz.tz.tabMeeting": "Reuniones",
  "dz.tz.tabsAria": "Herramientas de zonas horarias",
  "dz.tz.targetCities": "A",
  "dz.tz.time": "Hora",
  "dz.tz.title": "Conversor de zonas horarias",
  "dz.tz.useNow": "Usar la hora actual",
  "dz.tz.utcOffset": "UTC{offset}",
  "dz.tz.weekdayLabel": "Día de la semana",
  "dz.tz.workEnd": "Fin del horario laboral",
  "dz.tz.workStart": "Inicio del horario laboral",
  "dz.tz.workingHours": "Horario laboral",
  "dz.tz.workingLegend": "Dentro del horario laboral",
  "dz.tz.zoneLabel": "Zona horaria",
  "dz.vaudio.benefit": "Música, narración o ambas — sin recodificar",
  "dz.vaudio.error": "Primero añade o graba una pista de audio.",
  "dz.vaudio.fastNote": "Tu video no se recodifica — esto es rápido.",
  "dz.vaudio.loop": "Repetir el audio hasta cubrir el video",
  "dz.vaudio.micDenied": "Micrófono no disponible — sube un archivo de audio en su lugar.",
  "dz.vaudio.mixNoAudio": "No se pudo mezclar — puede que este video no tenga pista de audio. Prueba el modo Reemplazar.",
  "dz.vaudio.modeMix": "Mezclar",
  "dz.vaudio.modeReplace": "Reemplazar",
  "dz.vaudio.modeVoice": "Voz en off",
  "dz.vaudio.musicVol": "Volumen de la música",
  "dz.vaudio.name": "Añadir música / voz en off",
  "dz.vaudio.offset": "Retardo de inicio (segundos)",
  "dz.vaudio.pageTitle": "Añadir música / voz en off — Herramientas Dzzz",
  "dz.vaudio.pickAudio": "Archivo de audio",
  "dz.vaudio.record": "Grabar",
  "dz.vaudio.rerecord": "Volver a grabar",
  "dz.vaudio.seo": "Añade música de fondo, reemplaza el audio de un video o graba una voz en off en tu propio navegador — con retardo de inicio, repetición para cubrir el video y mezcla de volumen. Tu video nunca se recodifica, así que esto sigue siendo rápido.",
  "dz.vaudio.stop": "Detener",
  "dz.vaudio.title": "Añadir música / voz en off",
  "dz.vaudio.videoVol": "Volumen del video",
  "dz.vframe.benefit": "Bordes y marcos para videos y fotos",
  "dz.vframe.capNote": "El video dura más de {min} minutos — recórtalo primero, o procésalo en una computadora.",
  "dz.vframe.color": "Color del borde",
  "dz.vframe.fastNote": "Las fotos se enmarcan al instante en tu dispositivo.",
  "dz.vframe.gradient": "Degradado de dos colores",
  "dz.vframe.name": "Marco para video y fotos",
  "dz.vframe.pageTitle": "Marco para video y fotos — Herramientas Dzzz",
  "dz.vframe.presetCaption": "Espacio para el pie de foto",
  "dz.vframe.presetNone": "Ninguno",
  "dz.vframe.presetPolaroid": "Polaroid",
  "dz.vframe.presetSimple": "Con degradado o esquinas redondeadas el borde queda uniforme — la forma del ajuste solo se aplica a los bordes lisos.",
  "dz.vframe.radius": "Radio de las esquinas (px)",
  "dz.vframe.seo": "Añade un borde o un marco a tus videos y fotos — color sólido o degradado de dos colores, esquinas redondeadas y ajustes rápidos como polaroid o espacio para el pie de foto. Las fotos se enmarcan al instante; los videos se procesan en tu dispositivo.",
  "dz.vframe.slowNote": "Esto vuelve a codificar tu video — puede tardar varios minutos, y es mucho más rápido en una computadora.",
  "dz.vframe.thickness": "Grosor del borde (px)",
  "dz.vframe.title": "Marco para video y fotos",
  "dz.vratio.benefit": "9:16, 1:1, 4:5 — ajustar o rellenar",
  "dz.vratio.bgBlur": "Difuminado",
  "dz.vratio.bgColor": "Color",
  "dz.vratio.capNote": "El video dura más de {min} minutos — recórtalo primero, o procésalo en una computadora.",
  "dz.vratio.customH": "Alto",
  "dz.vratio.customW": "Ancho",
  "dz.vratio.error": "No se pudo leer este video.",
  "dz.vratio.focalHint": "Arrastra el punto para mantener lo importante dentro del cuadro",
  "dz.vratio.modeFill": "Rellenar",
  "dz.vratio.modeFit": "Ajustar",
  "dz.vratio.name": "Proporción para redes sociales",
  "dz.vratio.pageTitle": "Proporción para redes sociales — Dzzz",
  "dz.vratio.preset11": "1:1",
  "dz.vratio.preset169": "16:9",
  "dz.vratio.preset45": "4:5",
  "dz.vratio.preset916": "9:16",
  "dz.vratio.presetCustom": "Personalizado",
  "dz.vratio.seo": "Reencuadra tu video a 9:16, 1:1 o 4:5 para redes sociales — ajústalo con un fondo difuminado o de color, o rellena el cuadro con un punto de enfoque que puedes arrastrar. Funciona por completo en tu dispositivo.",
  "dz.vratio.slowNote": "Esto vuelve a codificar tu video — puede tardar varios minutos, y es mucho más rápido en una computadora.",
  "dz.vratio.title": "Proporción para redes sociales",
  "dz.vsize.already": "Ya es más pequeño que el objetivo — conservamos tu original.",
  "dz.vsize.benefit": "Alcanza un tamaño objetivo — 25 MB correo, 16 MB WhatsApp",
  "dz.vsize.capNote": "El video dura más de {min} minutos — recórtalo primero o procésalo en una computadora.",
  "dz.vsize.customMb": "Tamaño objetivo (MB)",
  "dz.vsize.error": "No se pudo comprimir este video.",
  "dz.vsize.name": "Comprimir video",
  "dz.vsize.pageTitle": "Comprimir video — Herramientas Dzzz",
  "dz.vsize.presetCustom": "MB personalizados",
  "dz.vsize.presetEmail": "Correo (25 MB)",
  "dz.vsize.presetQuality": "Calidad",
  "dz.vsize.presetWhatsapp": "WhatsApp (16 MB)",
  "dz.vsize.qHigh": "Alta",
  "dz.vsize.qLow": "Baja",
  "dz.vsize.qMed": "Media",
  "dz.vsize.scaleNote": "Los ajustes de tamaño también reducen la resolución a 720p.",
  "dz.vsize.seo": "Reduce un video hasta un tamaño objetivo — 25 MB para el correo, 16 MB para WhatsApp o un límite personalizado — o elige un ajuste de calidad. La codificación en dos pasadas nunca entrega un archivo más grande que el original. Funciona por completo en tu dispositivo.",
  "dz.vsize.slowNote": "Comprimir un video vuelve a codificar el archivo — puede tardar varios minutos y es mucho más rápido en una computadora.",
  "dz.vsize.title": "Comprimir video",
  "dz.vsize.tooSmall": "Ese objetivo es demasiado pequeño para la duración de este video.",
  "dz.water.activity": "El ejercicio, el calor, la fiebre y el embarazo o la lactancia aumentan la necesidad de agua — toma estas cifras como base para condiciones templadas.",
  "dz.water.benefit": "Valores de referencia publicados para el consumo diario de agua — se calculan por completo en tu dispositivo.",
  "dz.water.disclaimer": "Valores de referencia para adultos sanos — no son consejo médico. La necesidad de agua varía con la actividad, el clima, el embarazo y el estado de salud; consulta a un médico si tienes dudas.",
  "dz.water.efsa": "EFSA (Europa)",
  "dz.water.efsaSub": "Autoridad Europea de Seguridad Alimentaria, 2010",
  "dz.water.female": "Mujer",
  "dz.water.glasses": "Ocho vasos de 8 oz suman unos {liters} L — por debajo de los valores de referencia de arriba. La cifra viene de una nota de 1945 leída fuera de contexto, que ya contaba el agua de los alimentos (Valtin, 2002).",
  "dz.water.glassesTitle": "¿Por qué no «8 vasos al día»?",
  "dz.water.inclFood": "Agua total incluyendo la comida — unos {food} L suelen venir de los alimentos.",
  "dz.water.iom": "IOM (EE. UU.)",
  "dz.water.iomSub": "Academias Nacionales de EE. UU. (IOM), 2004",
  "dz.water.litersDay": "L al día",
  "dz.water.male": "Hombre",
  "dz.water.name": "Consumo diario de agua",
  "dz.water.pageTitle": "Consumo diario de agua — Dzzz",
  "dz.water.relatedBmi": "Ver también: calculadora de IMC",
  "dz.water.rule": "Regla práctica",
  "dz.water.ruleNeedsWeight": "Indica tu peso para ver esta cifra.",
  "dz.water.ruleSub": "33 ml por kg de peso corporal — una regla práctica común, no una recomendación oficial.",
  "dz.water.seo": "Calculadora gratuita del consumo diario de agua con los valores de referencia de EFSA e IOM, una regla práctica según el peso y la historia detrás del mito de los «8 vasos al día». Funciona por completo en tu dispositivo.",
  "dz.water.sex": "Sexo",
  "dz.water.title": "Consumo diario de agua",
  "dz.water.unitKg": "kg",
  "dz.water.unitLb": "lb",
  "dz.water.weight": "Peso",
  "dz.wmark.benefit": "Pon tu logo en tus videos",
  "dz.wmark.capNote": "El video dura más de {min} minutos — recórtalo primero, o procésalo en una computadora.",
  "dz.wmark.error": "Añade primero una imagen de logo.",
  "dz.wmark.logoHint": "Un PNG con transparencia funciona mejor",
  "dz.wmark.margin": "Margen (px)",
  "dz.wmark.name": "Marca de agua en video",
  "dz.wmark.opacity": "Opacidad",
  "dz.wmark.pageTitle": "Marca de agua en video — Dzzz",
  "dz.wmark.pickLogo": "Imagen del logo",
  "dz.wmark.position": "Posición",
  "dz.wmark.seo": "Añade tu logo como marca de agua a tus videos — elige la posición, el tamaño y la opacidad, o repítelo por todo el cuadro para proteger tu propio contenido. Funciona por completo en tu dispositivo.",
  "dz.wmark.size": "Tamaño",
  "dz.wmark.slowNote": "Esto vuelve a codificar tu video — puede tardar varios minutos, y es mucho más rápido en una computadora.",
  "dz.wmark.tiled": "Repetir por todo el cuadro",
  "dz.wmark.title": "Marca de agua en video",
  "dz.xlc.accept": "CSV, TSV, XLSX, JSON",
  "dz.xlc.advanced": "Avanzado",
  "dz.xlc.badFormat": "Tipo de archivo no admitido — usa CSV, TSV, XLSX o JSON.",
  "dz.xlc.benefit": "CSV, XLSX, JSON y TSV — en los dos sentidos",
  "dz.xlc.capSize": "El archivo es demasiado grande — el límite es 20 MB (la conversión corre en la memoria de tu navegador).",
  "dz.xlc.comma": "Coma",
  "dz.xlc.delimiter": "Separador",
  "dz.xlc.encoding": "Codificación de entrada",
  "dz.xlc.error": "No se pudo leer este archivo.",
  "dz.xlc.export": "Convertir y guardar",
  "dz.xlc.name": "Conversor Excel / CSV",
  "dz.xlc.pick": "Elige un archivo",
  "dz.xlc.preview": "Vista previa (primeras filas)",
  "dz.xlc.semicolon": "Punto y coma",
  "dz.xlc.seo": "Convierte entre CSV, Excel (XLSX), JSON y TSV en tu navegador. Codificación segura para el árabe con BOM. No se sube nada.",
  "dz.xlc.sheets": "Hojas que convertir",
  "dz.xlc.tabChar": "Tabulación",
  "dz.xlc.target": "Convertir a",
  "dz.xlc.title": "Conversor Excel / CSV",
  "dz.zakat.above": "Por encima del nisab — corresponde zakat.",
  "dz.zakat.below": "Este año no corresponde zakat.",
  "dz.zakat.benefit": "Calcula tu zakat, con el nisab",
  "dz.zakat.cash": "Efectivo y cuentas bancarias",
  "dz.zakat.disclaimer": "Contenido educativo — consulta a un erudito para un dictamen.",
  "dz.zakat.due": "Zakat a pagar",
  "dz.zakat.fiqhJewelry": "Las opiniones de los sabios difieren — muchos incluyen la joyería en uso.",
  "dz.zakat.fiqhStocks": "Los criterios varían; el valor de mercado es lo más habitual.",
  "dz.zakat.gold": "Oro y plata",
  "dz.zakat.goldBasis": "Oro (85g)",
  "dz.zakat.goldGrams": "Oro (gramos)",
  "dz.zakat.goldPrice": "Precio del oro / gramo",
  "dz.zakat.hint": "A la mayoría le basta con «Efectivo» y «Oro» — las secciones vacías cuentan como cero.",
  "dz.zakat.inventory": "Mercancía del negocio",
  "dz.zakat.liabilities": "Deudas que vencen este año (−)",
  "dz.zakat.lunar": "Año lunar (2.5%)",
  "dz.zakat.name": "Calculadora de zakat",
  "dz.zakat.near": "Cerca del nisab — vuelve a revisarlo antes de que se cumpla el año.",
  "dz.zakat.net": "Base − deudas",
  "dz.zakat.nisab": "Umbral del nisab",
  "dz.zakat.nisabBasis": "Base del nisab",
  "dz.zakat.nisabCheck": "Comprobación del nisab",
  "dz.zakat.notAdvice": "Informativo — no es un dictamen religioso.",
  "dz.zakat.pageDesc": "Calcula el zakat que corresponde a tu patrimonio — escribe el monto y fija el criterio del nisab.",
  "dz.zakat.pageTitle": "Calculadora de zakat — Herramientas Dzzz",
  "dz.zakat.priceHint": "Consulta el precio del oro de hoy",
  "dz.zakat.rate": "Año",
  "dz.zakat.receivables": "Dinero que te deben",
  "dz.zakat.running": "Total hasta ahora",
  "dz.zakat.seo": "Calcula tu zakat sobre el efectivo, el oro, la plata, las acciones y los bienes del negocio, con el umbral del nisab calculado en vivo desde el precio del oro o de la plata de hoy. Elige un año lunar (2.5%) o solar (2.577%). Contenido educativo, en tu dispositivo, sin subir nada.",
  "dz.zakat.silverBasis": "Plata (595g)",
  "dz.zakat.silverGrams": "Plata (gramos)",
  "dz.zakat.silverPrice": "Precio de la plata / gramo",
  "dz.zakat.solar": "Año solar (2.577%)",
  "dz.zakat.stocks": "Acciones y fondos",
  "dz.zakat.tagNew": "Nuevo",
  "dz.zatca.another": "Decodificar otro",
  "dz.zatca.auto15": "auto 15%",
  "dz.zatca.benefit": "Lee o crea el QR de una factura electrónica saudí",
  "dz.zatca.cameraAim": "Apunta la cámara al QR de la factura",
  "dz.zatca.cameraAuto": "Se detecta automáticamente — sin botones",
  "dz.zatca.cameraDenied": "Cámara no disponible — sube una foto en su lugar.",
  "dz.zatca.close": "Cerrar",
  "dz.zatca.copied": "Copiado",
  "dz.zatca.copyB64": "Copiar el Base64",
  "dz.zatca.crypto": "Hay campos criptográficos ({n})",
  "dz.zatca.cryptoItem": "Etiqueta {tag} · {size} bytes",
  "dz.zatca.decode": "Decodificar",
  "dz.zatca.disclaimer": "Campos decodificados — esto no verifica el sello de ZATCA ni el registro.",
  "dz.zatca.err1": "No es un código QR",
  "dz.zatca.err1d": "Prueba con una foto más nítida donde se vea el código completo.",
  "dz.zatca.err2": "El QR no es una factura electrónica de ZATCA",
  "dz.zatca.err2d": "Parece un QR normal, no una factura de ZATCA.",
  "dz.zatca.err3": "Datos incompletos",
  "dz.zatca.err3d": "Parte del código no se puede leer — vuelve a escanear o sube una imagen más clara.",
  "dz.zatca.genDisclaimer": "Genera el QR de la factura simplificada (solo los campos de la Fase 1). Cumplir con ZATCA por completo exige más que el QR — confirma tus obligaciones de facturación.",
  "dz.zatca.genSeller": "Nombre del vendedor",
  "dz.zatca.genTime": "Fecha y hora",
  "dz.zatca.genTotal": "Total de la factura (con IVA)",
  "dz.zatca.genVat": "Número de IVA (15 dígitos)",
  "dz.zatca.genVatAmount": "Monto del IVA",
  "dz.zatca.genVatWarn": "Los números de IVA tienen 15 dígitos y suelen empezar y terminar con 3.",
  "dz.zatca.generate": "Generar",
  "dz.zatca.hijriLabel": "Hégira",
  "dz.zatca.live": "Vista previa en vivo",
  "dz.zatca.name": "QR de factura ZATCA",
  "dz.zatca.pageDesc": "Decodifica y genera códigos QR de facturas electrónicas saudíes (Fase 1) en tu navegador — lee el vendedor, el número de IVA y los montos, o crea un QR, sin subir nada.",
  "dz.zatca.pageTitle": "QR de factura electrónica ZATCA — Decodificar y generar — Herramientas Dzzz",
  "dz.zatca.paste": "Pegar texto",
  "dz.zatca.pastePlaceholder": "Pega el texto del QR (Base64)…",
  "dz.zatca.scan": "Escanear",
  "dz.zatca.seller": "Vendedor",
  "dz.zatca.seo": "Decodifica y genera el QR de la factura electrónica saudí de ZATCA (Fase 1, TLV/Base64) por completo en tu navegador — lee el vendedor, el número de IVA, la fecha y hora y los totales, o crea un QR desde tu factura. No se sube nada, y los sellos criptográficos nunca se verifican.",
  "dz.zatca.tagNew": "Nuevo",
  "dz.zatca.time": "Fecha y hora",
  "dz.zatca.torch": "Linterna",
  "dz.zatca.total": "Total (con IVA)",
  "dz.zatca.upload": "Subir imagen",
  "dz.zatca.uploadInstead": "Subir una imagen",
  "dz.zatca.vatAmount": "Monto del IVA",
  "dz.zatca.vatNo": "Número de IVA",
  "dz.zatca.vatSanity": "Este no es un número de IVA de 15 dígitos.",
  "dz.copyDone": "Copiado",
  "dz.trim.verb": "Recortar",
  "dz.trim.in": "Inicio",
  "dz.trim.out": "Fin",
  "dz.trim.keyframe": "Los cortes se ajustan al fotograma clave más cercano (rápido, sin recodificar).",
  "dz.trim.pageTitle": "Recortar video — Dzzz",
  "dz.heic.name": "HEIC a JPG",
  "dz.heic.benefit": "Convierte fotos de iPhone a JPG o PNG.",
  "dz.heic.verb": "Convertir",
  "dz.heic.format": "Formato",
  "dz.heic.jpg": "JPG",
  "dz.heic.png": "PNG",
  "dz.heic.quality": "Calidad",
  "dz.heic.saveAll": "Guardar todo (ZIP)",
  "dz.heic.seo": "HEIC es el formato de foto de alta eficiencia que usan los iPhone desde iOS 11 — archivos más pequeños, pero muchos teléfonos Android y muchos sitios web no pueden abrirlos. Convierte aquí tus fotos HEIC a JPG o PNG, en tu propio dispositivo.",
  "dz.heic.pageTitle": "HEIC a JPG — Dzzz",
  "dz.bg.name": "Quitar el fondo",
  "dz.bg.benefit": "Borra el fondo de tus fotos, en tu dispositivo.",
  "dz.bg.verb": "Quitar el fondo",
  "dz.bg.working": "Procesando… ~{s} s en este dispositivo",
  "dz.bg.bgLabel": "Fondo",
  "dz.bg.transparent": "Transparente",
  "dz.bg.color": "Color",
  "dz.bg.blur": "Desenfocar el original",
  "dz.bg.before": "Antes",
  "dz.bg.after": "Después",
  "dz.bg.afterPct": "{n}% después",
  "dz.bg.downscaled": "Imagen grande reducida a 4096 px.",
  "dz.bg.drop": "Suelta una imagen o toca para elegir",
  "dz.bg.seo": "Quita el fondo de tus imágenes gratis y sin límite — un modelo de IA funciona por completo en tu dispositivo, así que tus fotos nunca salen de él. Sin subidas, sin créditos, sin cuenta.",
  "dz.bg.failed": "No funcionó — prueba con otra imagen.",
  "dz.bg.engineHint": "motor de ~40 MB",
  "dz.bg.pageTitle": "Quitar el fondo — Dzzz",
  "dz.tafqit.name": "Tafqit — importe en letras",
  "dz.tafqit.benefit": "Escribe cualquier importe en letras árabes",
  "dz.tafqit.tagNew": "Nuevo",
  "dz.tafqit.amount": "Importe",
  "dz.tafqit.currency": "Moneda",
  "dz.tafqit.wrapper": "Fórmula «فقط … لا غير»",
  "dz.tafqit.ar": "عربي",
  "dz.tafqit.en": "English",
  "dz.tafqit.copy": "Copiar",
  "dz.tafqit.copied": "Copiado",
  "dz.tafqit.subunitNote": "Admite subunidades de 3 decimales (fils / baisa)",
  "dz.tafqit.persistNote": "Recordamos tu moneda — los importes nunca.",
  "dz.tafqit.seo": "Convierte cualquier número a palabras en árabe (tafqit) para cheques y facturas — con la gramática correcta de género y dual, y la fórmula «فقط … لا غير» — además de una pestaña con las palabras en inglés. SAR, AED, KWD, BHD, QAR, OMR, USD y EUR con los nombres y decimales correctos de cada subunidad. En tu dispositivo, al instante.",
  "dz.tafqit.pageTitle": "Tafqit — números a palabras en árabe — Dzzz",
  "dz.tafqit.pageDesc": "Convierte números a palabras en árabe — con monedas, millones y miles de millones, sin enviar ningún dato.",
  "dz.unit.name": "Conversor de unidades",
  "dz.unit.benefit": "Longitud, peso, volumen, velocidad y más.",
  "dz.unit.title": "Conversor de unidades",
  "dz.unit.pageTitle": "Conversor de unidades — Dzzz",
  "dz.unit.seo": "Convierte entre unidades de longitud, masa, volumen, área, velocidad, temperatura, tiempo, almacenamiento digital, presión y energía, con factores estándar exactos. Funciona por completo en tu dispositivo.",
  "dz.unit.category": "Categoría",
  "dz.unit.from": "De",
  "dz.unit.to": "A",
  "dz.unit.swap": "Invertir las unidades",
  "dz.unit.allTargets": "1 {unit} equivale a",
  "dz.unit.catLength": "Longitud",
  "dz.unit.catMass": "Peso / masa",
  "dz.unit.catVolume": "Volumen",
  "dz.unit.catArea": "Área",
  "dz.unit.catSpeed": "Velocidad",
  "dz.unit.catTemperature": "Temperatura",
  "dz.unit.catTime": "Tiempo",
  "dz.unit.catStorage": "Almacenamiento digital",
  "dz.unit.catPressure": "Presión",
  "dz.unit.catEnergy": "Energía",
  "dz.unit.storageNote": "KB, MB y GB cuentan de mil en mil; KiB, MiB y GiB cuentan de 1024 en 1024. Se muestran los dos porque no son lo mismo.",
  "dz.unit.timeNote": "Los meses y los años se dejan fuera a propósito — su duración depende de qué mes o qué año sea.",
  "dz.unit.crossHealth": "Conversores de unidades médicas y de laboratorio",
  "dz.subs.name": "Sustitutos de ingredientes",
  "dz.subs.benefit": "¿Se te acabó algo? Cámbialo por lo correcto.",
  "dz.subs.title": "Sustitutos de ingredientes",
  "dz.subs.pageTitle": "Sustitutos de ingredientes — Dzzz",
  "dz.subs.seo": "Descubre qué usar en lugar de suero de mantequilla, harina para repostería, polvo de hornear, crema para batir, tahini y más — con la proporción que publica cada fuente y las advertencias que la acompañan. Entre las fuentes están King Arthur Baking, servicios de extensión universitaria y America's Test Kitchen. Funciona por completo en tu dispositivo.",
  "dz.subs.search": "¿Qué ingrediente se te acabó?",
  "dz.subs.searchPlaceholder": "Busca en árabe o en inglés",
  "dz.subs.noResults": "Nada coincide con esa búsqueda. Prueba con el otro nombre del ingrediente.",
  "dz.subs.browseAll": "Ver todos los ingredientes",
  "dz.subs.results": "{n} resultados",
  "dz.subs.forAmount": "Proporción indicada para",
  "dz.subs.options": "Usa en su lugar",
  "dz.subs.option": "Sustituto",
  "dz.subs.caveat": "Ten en cuenta",
  "dz.subs.source": "Fuente",
  "dz.subs.varyNote": "Las fuentes no siempre coinciden en estas proporciones, por eso cada opción indica de dónde viene. Cuando dos fuentes fiables difieren, se muestran las dos en vez de elegir una por ti.",
  "dz.subs.tasteNote": "Un sustituto casi siempre cambia la textura o el sabor, y la repostería es la menos indulgente — espera un resultado algo distinto.",
  "dz.subs.count": "{n} ingredientes incluidos",
  "dz.subs.crossConverter": "Conversor de medidas de cocina",
  "dz.subs.crossScaler": "Ajustar las cantidades de una receta",
  "dz.shx.name": "Extras de compras",
  "dz.shx.benefit": "Repartir la propina, presupuestos, IVA y metas de ahorro",
  "dz.shx.title": "Extras de compras",
  "dz.shx.currency": "Nombre de la moneda",
  "dz.shx.tabTip": "Propina y reparto",
  "dz.shx.tabBudget": "Presupuesto por artículo",
  "dz.shx.tabVat": "Añadir/quitar IVA",
  "dz.shx.tabSave": "Meta de ahorro",
  "dz.shx.bill": "Importe de la cuenta",
  "dz.shx.tipPct": "Propina %",
  "dz.shx.people": "Número de personas",
  "dz.shx.total": "Total con propina",
  "dz.shx.perPerson": "Por persona",
  "dz.shx.modeSplit": "Repartir el presupuesto",
  "dz.shx.modeHowMany": "¿Cuántos puedo comprar?",
  "dz.shx.totalBudget": "Presupuesto total",
  "dz.shx.itemsCount": "Número de artículos",
  "dz.shx.perItem": "Presupuesto por artículo",
  "dz.shx.unitPrice": "Precio por artículo",
  "dz.shx.canBuy": "Puedes comprar {n} artículos",
  "dz.shx.leftOver": "Sobra",
  "dz.shx.dirAdd": "Añadir IVA",
  "dz.shx.dirRemove": "Quitar IVA",
  "dz.shx.amount": "Importe",
  "dz.shx.vatPct": "IVA %",
  "dz.shx.net": "Neto (sin IVA)",
  "dz.shx.vatAmount": "Importe del IVA",
  "dz.shx.gross": "Bruto (con IVA)",
  "dz.shx.target": "Importe objetivo",
  "dz.shx.current": "Ahorrado hasta ahora",
  "dz.shx.monthly": "Ahorro mensual",
  "dz.shx.monthsNeeded": "{n} meses para tu meta",
  "dz.shx.needMonthly": "Introduce un importe mensual para ver el plazo",
  "dz.shx.alreadyMet": "Ya alcanzaste tu meta",
  "dz.shx.completionGreg": "Fecha de término (gregoriano)",
  "dz.shx.completionHijri": "Fecha de término (hégira)",
  "dz.shx.relatedShopping": "Relacionado: calculadora de compras",
  "dz.shx.disclaimer": "Solo para planificar — no es asesoramiento financiero.",
  "dz.shx.seo": "Una calculadora que te acompaña al comprar: reparte una cuenta de restaurante con propina entre varias personas, calcula el presupuesto por artículo o cuántas unidades te alcanzan, añade o quita el IVA, y mira cuántos meses tardas en llegar a una meta de ahorro — con la fecha de término en gregoriano y hégira. En tu dispositivo, al instante.",
  "dz.shx.pageTitle": "Extras de compras — propina, presupuesto, IVA y meta de ahorro — Dzzz",
  "dz.shx.pageDesc": "Reparte una cuenta con propina, planea el presupuesto por artículo, añade o quita el IVA, y mira cuántos meses faltan para tu meta de ahorro — con la fecha de término en gregoriano y hégira. Funciona por completo en tu dispositivo.",
  "dz.zipm.name": "Gestor de ZIP",
  "dz.zipm.benefit": "Crea y extrae archivos ZIP, en tu propio navegador.",
  "dz.zipm.drop": "Suelta archivos para comprimir, o un solo .zip para extraer",
  "dz.zipm.extracting": "Extrayendo…",
  "dz.zipm.accept": "Cualquier archivo, o un único .zip",
  "dz.zipm.addMore": "Añadir más archivos",
  "dz.zipm.archiveName": "Nombre del ZIP",
  "dz.zipm.compression": "Compresión",
  "dz.zipm.deflate": "Deflate (más pequeño)",
  "dz.zipm.store": "Sin comprimir (más rápido)",
  "dz.zipm.storeNote": "Todos los archivos elegidos ya están comprimidos, así que se usó el modo sin comprimir.",
  "dz.zipm.createRun": "Crear ZIP",
  "dz.zipm.tooManyEntries": "Demasiados archivos — el límite es 1000 por ZIP.",
  "dz.zipm.tooBig": "El tamaño total es excesivo — el límite es 500 MB por ZIP (esto se procesa en la memoria de tu navegador).",
  "dz.zipm.encrypted": "Este ZIP está protegido con contraseña, y eso no es compatible.",
  "dz.zipm.badArchive": "No se pudo leer este ZIP — puede estar dañado.",
  "dz.zipm.extractSummary": "{count} archivos · {size}",
  "dz.zipm.colName": "Nombre",
  "dz.zipm.colSize": "Tamaño",
  "dz.zipm.preview": "Vista previa",
  "dz.zipm.hidePreview": "Ocultar",
  "dz.zipm.noPreview": "No hay vista previa",
  "dz.zipm.seo": "Crea un ZIP con tus archivos, o extrae uno — todo dentro de tu navegador. Los ZIP protegidos con contraseña no son compatibles. No se sube nada.",
  "dz.zipm.pageTitle": "Gestor de ZIP — crear y extraer archivos — Dzzz",
  "dz.pwgen.name": "Generador de contraseñas",
  "dz.pwgen.tagNew": "Nuevo",
  "dz.pwgen.benefit": "Contraseñas aleatorias y una medida honesta de su fuerza",
  "dz.pwgen.generateTab": "Generar",
  "dz.pwgen.checkTab": "Comprobar",
  "dz.pwgen.mode": "Tipo",
  "dz.pwgen.modeRandom": "Caracteres aleatorios",
  "dz.pwgen.modePronounceable": "Pronunciable",
  "dz.pwgen.modePassphrase": "Frase de contraseña (palabras)",
  "dz.pwgen.length": "Longitud",
  "dz.pwgen.upper": "Mayúsculas (A-Z)",
  "dz.pwgen.lower": "Minúsculas (a-z)",
  "dz.pwgen.digits": "Dígitos (0-9)",
  "dz.pwgen.symbols": "Símbolos (!@#$…)",
  "dz.pwgen.excludeAmbiguous": "Excluir caracteres ambiguos (I l 1 O 0 o)",
  "dz.pwgen.words": "Número de palabras",
  "dz.pwgen.separator": "Separador",
  "dz.pwgen.addDigit": "Añadir un dígito al final",
  "dz.pwgen.batch": "Cuántas contraseñas (1-20)",
  "dz.pwgen.generateBtn": "Generar",
  "dz.pwgen.regenerate": "Volver a generar",
  "dz.pwgen.copy": "Copiar",
  "dz.pwgen.copied": "Copiado",
  "dz.pwgen.errorNoClass": "Elige al menos un tipo de carácter.",
  "dz.pwgen.checkLabel": "Escribe o pega una contraseña para comprobarla",
  "dz.pwgen.crackTime": "Tiempo para descifrarla (ataque sin conexión)",
  "dz.pwgen.score0": "Muy débil",
  "dz.pwgen.score1": "Débil",
  "dz.pwgen.score2": "Aceptable",
  "dz.pwgen.score3": "Buena",
  "dz.pwgen.score4": "Fuerte",
  "dz.pwgen.privacyNote": "Nada de lo que escribes o generas aquí se guarda, se registra, se envía ni se conserva. Esta herramienta no tiene historial. Funciona por completo sin conexión.",
  "dz.pwgen.seo": "Genera contraseñas fuertes — aleatorias, pronunciables o frases de varias palabras — con crypto.getRandomValues, nunca con Math.random. Comprueba la fuerza real de cualquier contraseña con una puntuación basada en zxcvbn, una estimación del tiempo para descifrarla y comentarios honestos. Nada de lo que escribes o generas se guarda, se registra ni se envía — esta herramienta funciona por completo sin conexión.",
  "dz.pwgen.pageTitle": "Generador y comprobador de contraseñas — Dzzz",
  "dz.pwgen.linkNote": "El enlace lleva solo tus ajustes — nunca se pone una contraseña en una URL.",
  "dz.geo.name": "Calculadora de área y volumen",
  "dz.geo.benefit": "Áreas y volúmenes con conversión de unidades.",
  "dz.geo.title": "Calculadora de área y volumen",
  "dz.geo.pageTitle": "Calculadora de área y volumen — Dzzz",
  "dz.geo.seo": "Calcula el área de rectángulos, triángulos, círculos, trapecios y paralelogramos, y el volumen de cajas, cilindros, esferas, conos y prismas triangulares — con unidades métricas e imperiales, y unidades de superficie para terrenos. Funciona por completo en tu dispositivo.",
  "dz.geo.tabArea": "Área",
  "dz.geo.tabVolume": "Volumen",
  "dz.geo.shape": "Forma",
  "dz.geo.inputUnit": "Unidad de medida",
  "dz.geo.resultUnit": "Unidad del resultado",
  "dz.geo.result": "Resultado",
  "dz.geo.landNote": "Para inmuebles y terrenos, el metro cuadrado y la hectárea son las unidades habituales en el Golfo.",
  "dz.geo.rectangle": "Rectángulo / cuadrado",
  "dz.geo.triangle": "Triángulo",
  "dz.geo.circle": "Círculo",
  "dz.geo.trapezoid": "Trapecio",
  "dz.geo.parallelogram": "Paralelogramo",
  "dz.geo.box": "Caja",
  "dz.geo.cylinder": "Cilindro",
  "dz.geo.sphere": "Esfera",
  "dz.geo.cone": "Cono",
  "dz.geo.prism": "Prisma triangular",
  "dz.geo.fieldW": "Ancho (w)",
  "dz.geo.fieldH": "Altura (h)",
  "dz.geo.fieldB": "Base (b)",
  "dz.geo.fieldR": "Radio (r)",
  "dz.geo.fieldA": "Lado superior (a)",
  "dz.geo.fieldL": "Largo (l)",
  "dz.geo.needAll": "Completa todas las medidas.",
  "dz.qibla.name": "Buscador de la qibla",
  "dz.qibla.benefit": "La dirección de la Kaaba desde donde estás.",
  "dz.qibla.title": "Buscador de la qibla",
  "dz.qibla.tagNew": "Nuevo",
  "dz.qibla.pageTitle": "Buscador de la qibla — dirección de la Kaaba — Dzzz",
  "dz.qibla.seo": "Encuentra la qibla estés donde estés. El rumbo de círculo máximo hacia la Kaaba se calcula en tu dispositivo a partir de tus propias coordenadas — una brújula en vivo cuando tu teléfono tiene el sensor, y un rumbo fijo que puedes alinear con cualquier brújula cuando no lo tiene. Sin cuenta, sin servidor, funciona sin conexión.",
  "dz.qibla.gateTitle": "Encuentra la qibla desde donde estás",
  "dz.qibla.gateBody": "Calculamos la dirección de círculo máximo hacia la Kaaba a partir de tus coordenadas — por completo en tu dispositivo.",
  "dz.qibla.useLocation": "Usar mi ubicación",
  "dz.qibla.enterCity": "O introduce una ciudad o unas coordenadas",
  "dz.qibla.privacy": "Tus coordenadas nunca salen del dispositivo — no se envía ninguna petición a ningún servidor.",
  "dz.qibla.gateNote": "iOS exige un toque explícito antes de poder leer la brújula, y esta pantalla es ese toque. Si se deniega el permiso, pasamos directo a la vista sin sensor — nunca a un callejón sin salida.",
  "dz.qibla.locating": "Buscando tu ubicación…",
  "dz.qibla.denied": "Se denegó el permiso de ubicación — introduce una ciudad o unas coordenadas.",
  "dz.qibla.unsupported": "Este navegador no ofrece la ubicación — introduce una ciudad o unas coordenadas.",
  "dz.qibla.retry": "Reintentar",
  "dz.qibla.back": "Atrás",
  "dz.qibla.change": "Cambiar",
  "dz.qibla.location": "Ubicación",
  "dz.qibla.coords": "Coordenadas",
  "dz.qibla.bearing": "Qibla",
  "dz.qibla.fromNorth": "desde el norte geográfico",
  "dz.qibla.direction": "Dirección",
  "dz.qibla.aligned": "Alineado — estás mirando hacia la qibla",
  "dz.qibla.turn": "Gira hasta que la flecha apunte hacia arriba",
  "dz.qibla.calibrate": "Las lecturas parecen inestables — mueve el teléfono en forma de 8 para recalibrar la brújula.",
  "dz.qibla.heading": "Rumbo del dispositivo",
  "dz.qibla.headingSource": "Origen del rumbo",
  "dz.qibla.sourceTrue": "Brújula de iOS — ya da el norte geográfico.",
  "dz.qibla.sourceMagnetic": "Rumbo magnético — puede diferir del norte geográfico en algunos grados.",
  "dz.qibla.sourceMagneticCorrected": "Rumbo magnético, corregido al norte geográfico con el modelo WMM2025.",
  "dz.qibla.declination": "Declinación magnética",
  "dz.qibla.declinationApplied": "Corregido {deg}° por la declinación magnética en tu ubicación.",
  "dz.qibla.declinationStale": "El modelo magnético caducó, así que el rumbo se muestra como norte magnético sin corregir.",
  "dz.qibla.noSensor": "Este dispositivo no tiene brújula (o se denegó el permiso) — aquí tienes el rumbo, y una rosa que puedes alinear con cualquier brújula.",
  "dz.qibla.face": "Mira hacia",
  "dz.qibla.roseHint": "Alinea la rosa con una brújula física o un mapa en papel; el brazo rojo es la qibla.",
  "dz.qibla.map": "Dirección a La Meca",
  "dz.qibla.mapDist": "distancia de círculo máximo",
  "dz.qibla.makkah": "La Meca",
  "dz.qibla.mapNote": "La línea discontinua es la trayectoria de círculo máximo; en un mapa plano no se ve como una recta, y justo por eso manda el número del rumbo.",
  "dz.qibla.distance": "Distancia a la Kaaba",
  "dz.qibla.km": "km",
  "dz.qibla.city": "Ciudad",
  "dz.qibla.cityPh": "Escribe el nombre de una ciudad…",
  "dz.qibla.noCity": "Ninguna ciudad coincide con esa búsqueda — introduce las coordenadas.",
  "dz.qibla.lat": "Latitud",
  "dz.qibla.lon": "Longitud",
  "dz.qibla.compute": "Calcular la qibla",
  "dz.qibla.useCity": "Elegir una ciudad",
  "dz.qibla.useCoords": "Introducir coordenadas",
  "dz.qibla.manualNote": "La búsqueda de ciudades usa una lista incluida en la herramienta — no se hace ninguna petición de geocodificación. Las coordenadas van en grados decimales.",
  "dz.qibla.errCoords": "La latitud debe estar entre -90 y 90, y la longitud entre -180 y 180.",
  "dz.qibla.atKaaba": "Estás en la Kaaba — oriéntate directamente hacia ella.",
  "dz.qibla.honesty": "Orientación aproximada — verifícala con una fuente fiable; las brújulas del teléfono se ven afectadas por metales e imanes.",
  "dz.qibla.copyLine": "Qibla desde {city}: {bearing}° ({point}) — {km} km hasta la Kaaba",
  "dz.tts.name": "Leer en voz alta",
  "dz.tts.desc": "Lee texto en árabe o inglés con la propia voz de tu dispositivo.",
  "dz.tts.benefit": "Lee texto en árabe o inglés con la propia voz de tu dispositivo.",
  "dz.tts.title": "Leer en voz alta",
  "dz.tts.pageTitle": "Leer en voz alta — texto a voz — Dzzz",
  "dz.tts.seo": "Pega texto en árabe o inglés y escúchalo leído por las voces ya instaladas en tu dispositivo. No se descarga ningún modelo ni se sube nada — el propio motor de voz del navegador hace el trabajo, así que sigue funcionando sin conexión. El texto largo se divide en partes cortas automáticamente, porque varios navegadores detienen a mitad una lectura larga. La velocidad, el tono y el volumen se pueden ajustar. Esto lee el texto en voz alta, pero no puede guardar un archivo de audio — los navegadores no dan acceso al audio sintetizado.",
  "dz.tts.seoIntro": "Pega texto en árabe o inglés y escúchalo leído por las voces ya instaladas en tu dispositivo. No se descarga ningún modelo ni se sube nada — el propio motor de voz del navegador hace el trabajo, así que sigue funcionando sin conexión. El texto largo se divide en partes cortas automáticamente, porque varios navegadores detienen a mitad una lectura larga. La velocidad, el tono y el volumen se pueden ajustar. Esto lee el texto en voz alta, pero no puede guardar un archivo de audio — los navegadores no dan acceso al audio sintetizado.",
  "dz.tts.textLabel": "Texto",
  "dz.tts.textPlaceholder": "Pega o escribe el texto que quieres escuchar…",
  "dz.tts.textHint": "El texto largo se divide en partes cortas automáticamente, porque varios navegadores detienen a mitad una lectura larga.",
  "dz.tts.chars": "Caracteres: {n}",
  "dz.tts.clear": "Borrar",
  "dz.tts.settings": "Ajustes de voz",
  "dz.tts.voice": "Voz",
  "dz.tts.voiceAuto": "La del dispositivo",
  "dz.tts.voiceLoading": "Buscando voces en este dispositivo…",
  "dz.tts.langAr": "Árabe",
  "dz.tts.langEn": "Inglés",
  "dz.tts.otherLangs": "Otros idiomas",
  "dz.tts.rate": "Velocidad",
  "dz.tts.pitch": "Tono",
  "dz.tts.volume": "Volumen",
  "dz.tts.reset": "Restablecer los controles",
  "dz.tts.play": "Reproducir",
  "dz.tts.pause": "Pausar",
  "dz.tts.resume": "Continuar",
  "dz.tts.stop": "Detener",
  "dz.tts.replay": "Reproducir de nuevo",
  "dz.tts.progress": "Parte {n} de {total}",
  "dz.tts.nowReading": "Leyendo ahora",
  "dz.tts.statusIdle": "Listo",
  "dz.tts.statusStarting": "Iniciando…",
  "dz.tts.statusPlaying": "Leyendo…",
  "dz.tts.statusPaused": "En pausa",
  "dz.tts.statusDone": "Finalizado",
  "dz.tts.statusError": "No se pudo completar la lectura. Inténtalo otra vez, o elige otra voz.",
  "dz.tts.stalled": "La voz dejó de responder. Toca reproducir para continuar.",
  "dz.tts.unsupported": "Este navegador no puede leer texto en voz alta — no tiene ningún motor de voz disponible para la página. Prueba con otro navegador.",
  "dz.tts.errEmpty": "Escribe o pega algo de texto primero.",
  "dz.tts.arabicRefused": "Este texto está en árabe y aquí no hay ninguna voz árabe disponible. Una voz inglesa no lo leería de forma comprensible, así que no se usa.",
  "dz.tts.notesTitle": "Conviene saber",
  "dz.tts.noExport": "Esto lee el texto en voz alta, pero no puede guardar un archivo de audio — los navegadores no dan acceso al audio sintetizado.",
  "dz.tts.deviceVoices": "Las voces vienen de tu dispositivo, así que la lista cambia entre teléfonos y computadoras.",
  "dz.tts.noArabicVoice": "No se encontró ninguna voz árabe en este dispositivo. Añadir una en los ajustes del sistema puede ayudar, aunque algunos navegadores no muestran las voces instaladas en el sistema.",
  "dz.tts.msaNote": "Las voces del dispositivo leen en árabe estándar moderno, no en dialecto.",
  "dz.tts.privacy": "El texto se queda en este dispositivo. No se sube nada.",
  "dz.tts.switchedToArabic": "Tu texto está en árabe, así que se seleccionó una voz árabe — una voz no árabe se salta el texto árabe en vez de leerlo.",
  "dz.docscan.name": "Escáner de documentos",
  "dz.docscan.title": "Escáner de documentos",
  "dz.docscan.pageTitle": "Escáner de documentos — Dzzz",
  "dz.docscan.benefit": "Fotografía una hoja y obtén un PDF recto y legible",
  "dz.docscan.seo": "Fotografía cualquier hoja con el teléfono, o sube una foto que ya tengas, y obtén un PDF recto y legible. Los bordes se detectan, la perspectiva se corrige y la iluminación se empareja por completo en tu dispositivo — no se sube nada, no hay cuenta y no hay marca de agua. Reúne varias páginas en un solo archivo, o guárdalas como imágenes en un zip.",
  "dz.docscan.privacyNote": "Las páginas se procesan en tu dispositivo. No se sube nada.",
  "dz.docscan.openCamera": "Abrir la cámara",
  "dz.docscan.cameraAsk": "El navegador pedirá acceso a la cámara después de que toques.",
  "dz.docscan.uploadCta": "Subir una foto",
  "dz.docscan.dropHere": "Suelta una foto aquí, o haz clic para elegir una",
  "dz.docscan.howTitle": "Cómo funciona",
  "dz.docscan.how1": "Fotografía la hoja, o sube una foto que ya tengas.",
  "dz.docscan.how2": "Arrastra las esquinas hasta que el contorno coincida con la hoja.",
  "dz.docscan.how3": "Elige un aspecto — blanco y negro es lo mejor para texto.",
  "dz.docscan.how4": "Guárdalo como PDF, o como imágenes en un zip.",
  "dz.docscan.contrastTitle": "Lo que obtienes",
  "dz.docscan.contrastBody": "Sin cuenta, sin subidas, sin marca de agua y sin más límite de páginas que el que aguante tu dispositivo. La foto nunca sale de tu navegador, así que después no queda nada que borrar.",
  "dz.docscan.engineTitle": "Descarga única",
  "dz.docscan.engineNote": "Detectar los bordes y enderezar la página usan un motor de imagen de unos 4 MB. Se descarga una sola vez, solo cuando lo pides, y tu navegador lo conserva después.",
  "dz.docscan.sheetTitle": "Escanear una hoja",
  "dz.docscan.shutter": "Capturar",
  "dz.docscan.camAim": "Llena el encuadre con la hoja y toca Capturar.",
  "dz.docscan.camDetectOn": "Los bordes se marcan en vivo.",
  "dz.docscan.camDetectOff": "El marcado de bordes en vivo necesita la descarga única.",
  "dz.docscan.camCount": "{n} páginas hasta ahora",
  "dz.docscan.camCountOne": "1 página hasta ahora",
  "dz.docscan.camCountTwo": "2 páginas hasta ahora",
  "dz.docscan.adjustTitle": "Ajusta las esquinas a la hoja",
  "dz.docscan.adjustGroup": "Esquinas de la página",
  "dz.docscan.corner": "Esquina {n}",
  "dz.docscan.edge": "Borde {n}",
  "dz.docscan.reset": "Restablecer las esquinas",
  "dz.docscan.dragHint": "Arrastra una esquina. Las flechas la mueven poco a poco, Shift más rápido, R restablece.",
  "dz.docscan.detectFound": "Bordes detectados. Ajusta cualquier esquina que no encaje.",
  "dz.docscan.detectNone": "No se detectaron los bordes de la hoja — arrastra tú las esquinas.",
  "dz.docscan.engineWhy": "Detectar los bordes y enderezar la página usan el motor de imagen de abajo.",
  "dz.docscan.continue": "Las esquinas están bien",
  "dz.docscan.cancel": "Cancelar",
  "dz.docscan.opening": "Abriendo…",
  "dz.docscan.flattening": "Enderezando…",
  "dz.docscan.saving": "Guardando…",
  "dz.docscan.enhanceTitle": "Elige un aspecto",
  "dz.docscan.previewAlt": "Vista previa de la página",
  "dz.docscan.modeLegend": "Aspecto de la página",
  "dz.docscan.modeColour": "Color",
  "dz.docscan.modeGrey": "Escala de grises",
  "dz.docscan.modeBw": "Blanco y negro",
  "dz.docscan.modeAuto": "Automático",
  "dz.docscan.modeNoteColour": "Conserva sellos, logotipos y tinta de color. El archivo más grande.",
  "dz.docscan.modeNoteGrey": "Gris neutro. Más pequeño que el color, y los matices se conservan.",
  "dz.docscan.modeNoteBw": "Solo dos tonos. El texto más nítido y el archivo más pequeño, pero el lápiz tenue puede desaparecer.",
  "dz.docscan.modeNoteAuto": "Empareja las sombras y conserva el color. Más lento, y una sombra dura puede dejar marca.",
  "dz.docscan.modeBwTag": "Mejor para texto",
  "dz.docscan.modeColourWhy": "Esta página tiene color de verdad, así que se eligió Color. Blanco y negro está a un toque.",
  "dz.docscan.rotate": "Girar",
  "dz.docscan.back": "Atrás",
  "dz.docscan.addPage": "Añadir esta página",
  "dz.docscan.saveEdits": "Guardar los cambios",
  "dz.docscan.pagesTitle": "Páginas",
  "dz.docscan.stripLabel": "Páginas de este documento",
  "dz.docscan.allPages": "Todas las páginas",
  "dz.docscan.gridTitle": "Todas las páginas",
  "dz.docscan.done": "Listo",
  "dz.docscan.reorder": "Reordenar",
  "dz.docscan.pageN": "Página {n}",
  "dz.docscan.pageCount": "{n} páginas",
  "dz.docscan.pageCountOne": "1 página",
  "dz.docscan.pageCountTwo": "2 páginas",
  "dz.docscan.openActions": "Página {n} — acciones de la página",
  "dz.docscan.stripHint": "Reordenar y editar una página concreta se hace en «Todas las páginas».",
  "dz.docscan.selectHint": "Elige una página para ver sus acciones.",
  "dz.docscan.retake": "Repetir la foto",
  "dz.docscan.recrop": "Recortar de nuevo",
  "dz.docscan.pageMode": "Aspecto",
  "dz.docscan.removePage": "Eliminar",
  "dz.docscan.addAnother": "Añadir otra página",
  "dz.docscan.toExport": "Exportar",
  "dz.docscan.emptyPages": "Aún no hay páginas.",
  "dz.docscan.capReached": "El límite aquí son {n} páginas — exporta estas primero y empieza otro documento.",
  "dz.docscan.exportTitle": "Exportar",
  "dz.docscan.titleLabel": "Nombre del archivo",
  "dz.docscan.formatLabel": "Formato",
  "dz.docscan.formatPdf": "PDF",
  "dz.docscan.formatImages": "Imágenes (.zip)",
  "dz.docscan.sizeLabel": "Tamaño de página",
  "dz.docscan.sizeA4": "A4",
  "dz.docscan.sizeLetter": "Letter",
  "dz.docscan.sizeAuto": "Automático",
  "dz.docscan.qualityLabel": "Calidad",
  "dz.docscan.qSmall": "Pequeño",
  "dz.docscan.qSmallSub": "El archivo más pequeño",
  "dz.docscan.qMedium": "Medio",
  "dz.docscan.qMediumSub": "Equilibrado",
  "dz.docscan.qHigh": "Alto",
  "dz.docscan.qHighSub": "Lo más nítido",
  "dz.docscan.resNote": "Las páginas se procesan hasta 2000 px en el lado largo.",
  "dz.docscan.estimateNote": "El tamaño que aparece en el botón es una estimación, medida codificando una página con esta calidad. El tamaño real se muestra después de guardar.",
  "dz.docscan.estimating": "Estimando…",
  "dz.docscan.savePdf": "Guardar PDF",
  "dz.docscan.saveImages": "Guardar las imágenes",
  "dz.docscan.exporting": "Página {n} de {total}",
  "dz.docscan.savedSize": "Guardado — {size}",
  "dz.docscan.redactFirst": "Ocultar datos primero",
  "dz.docscan.redactNote": "Abre la herramienta de ocultado con esta página, pasada en memoria — nunca por la barra de direcciones.",
  "dz.docscan.failed": "No funcionó. Inténtalo otra vez, o usa otra foto."
}
