mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
Close genuinely-untranslated UI strings and fix orthography/diacritic errors across every non-English locale, while keeping legitimate cognates, loanwords, and technical tokens (OIDC, SAML, PDF, YAML, brand names) as-is. - Untranslated strings closed: 225 (976 -> 751 remaining; the remainder are legit cognates / brand / format tokens that natives keep in English) - Orthography: Italian 52 accent fixes (verb forms, a/e/i finals), Vietnamese 41 strings with restored tone marks, Turkish 35, Polish 42, Dutch 17 (trema), plus smaller passes in es/fr/sv/pt-BR - Biggest gap wins: Indonesian 102 -> 72; every CJK/Cyrillic/Arabic/Indic locale roughly halved its English leftovers Cross-locale key parity preserved exactly; all placeholders intact. Verified: pnpm typecheck, i18n parity/locale/tool-i18n tests (43/43), placeholder-integrity check (0 mismatches), Biome.
3479 lines
125 KiB
TypeScript
3479 lines
125 KiB
TypeScript
import type { TranslationKeys } from "./en.js";
|
|
|
|
export const es: TranslationKeys = {
|
|
common: {
|
|
upload: "Subir desde la computadora",
|
|
process: "Procesar",
|
|
download: "Descargar",
|
|
cancel: "Cancelar",
|
|
save: "Guardar",
|
|
delete: "Eliminar",
|
|
settings: "Configuración",
|
|
search: "Buscar herramientas...",
|
|
dropFiles: "Arrastra archivos aquí o haz clic en el botón de carga",
|
|
loading: "Cargando...",
|
|
saving: "Guardando...",
|
|
error: "Ocurrió un error",
|
|
confirm: "Confirmar",
|
|
close: "Cerrar",
|
|
back: "Atrás",
|
|
next: "Siguiente",
|
|
clear: "Limpiar",
|
|
copy: "Copiar",
|
|
copied: "¡Copiado!",
|
|
noResults: "No se encontraron resultados",
|
|
showLess: "Mostrar menos",
|
|
showMore: "Mostrar {count} más",
|
|
experimental: "Experimental",
|
|
enabled: "Activado",
|
|
disabled: "Desactivado",
|
|
rename: "Renombrar",
|
|
edit: "Editar",
|
|
actions: "Acciones",
|
|
create: "Crear",
|
|
or: "o",
|
|
goHome: "Ir al inicio",
|
|
somethingWentWrong: "Algo salió mal",
|
|
unexpectedError: "Ocurrió un error inesperado.",
|
|
retry: "Reintentar",
|
|
privacyPolicy: "Política de privacidad",
|
|
pageNotFound: "Página no encontrada",
|
|
pageNotFoundDescription: "La página que buscas no existe o ha sido movida.",
|
|
},
|
|
categories: {
|
|
essentials: "Esenciales",
|
|
adjustments: "Ajustes",
|
|
enhance: "Mejorar e IA",
|
|
watermark: "Marca de agua y superposición",
|
|
layout: "Diseño y composición",
|
|
utilities: "Utilidades",
|
|
optimization: "Optimización",
|
|
format: "Formato y conversión",
|
|
"video-edit": "Video",
|
|
"video-convert": "Convertir",
|
|
"video-effects": "Efectos y composición",
|
|
"video-subtitles": "Subtítulos",
|
|
"video-metadata": "Metadatos",
|
|
"audio-edit": "Editar",
|
|
"audio-convert": "Convertir",
|
|
"audio-effects": "Efectos y composición",
|
|
"audio-metadata": "Metadatos",
|
|
"pdf-organize": "Organizar",
|
|
"pdf-edit": "Editar y anotar",
|
|
"pdf-security": "Seguridad",
|
|
"pdf-optimize": "Optimizar",
|
|
"doc-convert": "Convertir",
|
|
data: "Archivos",
|
|
archives: "Archivos comprimidos",
|
|
},
|
|
modalities: {
|
|
image: "Imagen",
|
|
video: "Video",
|
|
audio: "Audio",
|
|
documentsAndFiles: "PDF y archivos",
|
|
},
|
|
tools: {
|
|
resize: {
|
|
name: "Redimensionar",
|
|
description: "Redimensiona por píxeles, porcentaje o presets de redes sociales",
|
|
},
|
|
crop: {
|
|
name: "Recortar",
|
|
description: "Recorte libre, relaciones de aspecto, recorte con forma",
|
|
},
|
|
rotate: { name: "Rotar y voltear", description: "Rota, voltea y endereza imágenes" },
|
|
convert: { name: "Convertir", description: "Convierte entre formatos de imagen" },
|
|
compress: {
|
|
name: "Comprimir",
|
|
description: "Reduce el tamaño del archivo por calidad o tamaño objetivo",
|
|
},
|
|
"optimize-for-web": {
|
|
name: "Optimizar para web",
|
|
description:
|
|
"Optimiza imágenes para web con conversión de formato, control de calidad y vista previa en vivo",
|
|
},
|
|
"strip-metadata": {
|
|
name: "Eliminar metadatos",
|
|
description: "Elimina EXIF, GPS e información de la cámara",
|
|
},
|
|
"edit-metadata": {
|
|
name: "Editar metadatos",
|
|
description: "Edita EXIF, IPTC, XMP, GPS, palabras clave y fechas",
|
|
},
|
|
"bulk-rename": {
|
|
name: "Renombrado masivo",
|
|
description: "Renombra múltiples archivos con patrones",
|
|
},
|
|
"image-to-pdf": {
|
|
name: "Imagen a PDF",
|
|
description: "Combina imágenes en un documento PDF",
|
|
},
|
|
"pdf-to-image": { name: "PDF a imagen", description: "Convierte páginas PDF a imágenes" },
|
|
favicon: {
|
|
name: "Generador de Favicon",
|
|
description: "Genera todos los tamaños de favicon e iconos de app",
|
|
},
|
|
"adjust-colors": {
|
|
name: "Ajustar colores",
|
|
description: "Brillo, contraste, exposición, saturación, temperatura, nitidez y efectos",
|
|
},
|
|
sharpening: {
|
|
name: "Enfoque",
|
|
description: "Enfoque adaptativo, máscara de desenfoque y paso alto con presets",
|
|
},
|
|
"replace-color": {
|
|
name: "Reemplazar e invertir color",
|
|
description: "Reemplaza colores específicos o invierte",
|
|
},
|
|
"color-blindness": {
|
|
name: "Simulación de daltonismo",
|
|
description:
|
|
"Simula cómo se ven las imágenes con diferentes tipos de deficiencia de visión del color",
|
|
},
|
|
"remove-background": {
|
|
name: "Eliminar fondo",
|
|
description: "Eliminación de fondo con AI",
|
|
},
|
|
upscale: { name: "Escalar imagen", description: "Mejora de super-resolución con AI" },
|
|
"erase-object": {
|
|
name: "Borrador de objetos",
|
|
description: "Elimina objetos no deseados con AI",
|
|
},
|
|
ocr: {
|
|
name: "OCR / Extracción de texto",
|
|
description: "Extrae texto de imágenes con precisión potenciada por AI",
|
|
},
|
|
"ocr-pdf": {
|
|
name: "OCR de PDF",
|
|
description: "Extrae texto de documentos PDF con OCR potenciado por IA",
|
|
},
|
|
"blur-faces": {
|
|
name: "Desenfocar rostros / datos sensibles",
|
|
description: "Detecta y desenfoca rostros e información sensible automáticamente",
|
|
},
|
|
"enhance-faces": {
|
|
name: "Mejora de rostros",
|
|
description: "Restaura y mejora rostros con AI",
|
|
},
|
|
"smart-crop": {
|
|
name: "Recorte inteligente",
|
|
description: "Recorte inteligente por sujeto, rostro o bordes",
|
|
},
|
|
"image-enhancement": {
|
|
name: "Mejora de imagen",
|
|
description:
|
|
"Mejora automática con un clic: exposición, contraste, color y nitidez inteligentes",
|
|
},
|
|
"noise-removal": {
|
|
name: "Eliminación de ruido",
|
|
description: "Eliminación de ruido y grano con AI",
|
|
},
|
|
"red-eye-removal": {
|
|
name: "Eliminación de ojos rojos",
|
|
description: "Detección y corrección de ojos rojos con AI para fotos con flash",
|
|
},
|
|
"restore-photo": {
|
|
name: "Restauración de fotos",
|
|
description: "Repara rasguños, roturas y daños en fotos antiguas con AI",
|
|
},
|
|
"content-aware-resize": {
|
|
name: "Redimensión consciente del contenido",
|
|
description: "Redimensiona imágenes de forma inteligente preservando el contenido importante",
|
|
},
|
|
"ai-canvas-expand": {
|
|
name: "Expandir lienzo con AI",
|
|
description: "Expande el lienzo con relleno generado por AI",
|
|
},
|
|
colorize: {
|
|
name: "Colorización con AI",
|
|
description:
|
|
"Convierte fotos en blanco y negro a color usando modelos de aprendizaje profundo con AI",
|
|
},
|
|
"passport-photo": {
|
|
name: "Foto de pasaporte",
|
|
description:
|
|
"Crea fotos de pasaporte, visa e identificación que cumplen con los requisitos oficiales, con detección automática de rostro",
|
|
},
|
|
"transcribe-audio": {
|
|
name: "Transcribir audio",
|
|
description: "Convierte voz a texto con transcripción impulsada por IA",
|
|
},
|
|
"auto-subtitles": {
|
|
name: "Subtítulos automáticos",
|
|
description: "Genera archivos de subtítulos a partir de pistas de audio de video",
|
|
},
|
|
"transparency-fixer": {
|
|
name: "Corrector de transparencia PNG",
|
|
description: "Corrige PNGs con transparencia falsa en un clic",
|
|
},
|
|
"background-replace": {
|
|
name: "Reemplazar fondo",
|
|
description: "Reemplazar el fondo de la imagen con un color sólido",
|
|
},
|
|
"blur-background": {
|
|
name: "Desenfocar fondo",
|
|
description: "Desenfocar el fondo manteniendo el sujeto nítido",
|
|
},
|
|
"watermark-text": {
|
|
name: "Marca de agua de texto",
|
|
description: "Agrega una marca de agua de texto",
|
|
},
|
|
"watermark-image": {
|
|
name: "Marca de agua de imagen",
|
|
description: "Superpone un logo como marca de agua",
|
|
},
|
|
"text-overlay": {
|
|
name: "Texto superpuesto",
|
|
description: "Agrega texto con estilo a las imágenes",
|
|
},
|
|
compose: {
|
|
name: "Composición de imagen",
|
|
description: "Superpone imágenes con posición y opacidad",
|
|
},
|
|
"meme-generator": {
|
|
name: "Generador de Meme",
|
|
description:
|
|
"Crea memes con plantillas populares o tus propias imágenes. Texto clásico estilo Impact con fuentes, colores y posición personalizables.",
|
|
},
|
|
info: {
|
|
name: "Info de imagen",
|
|
description: "Ve todos los metadatos y propiedades de la imagen",
|
|
},
|
|
compare: { name: "Comparar imágenes", description: "Comparación lado a lado de dos imágenes" },
|
|
"find-duplicates": {
|
|
name: "Buscar duplicados",
|
|
description: "Detecta imágenes duplicadas y casi duplicadas",
|
|
},
|
|
"color-palette": {
|
|
name: "Paleta de colores",
|
|
description: "Extrae los colores dominantes de una imagen",
|
|
},
|
|
"qr-generate": {
|
|
name: "Generador de códigos QR",
|
|
description: "Genera códigos QR con estilos, colores personalizados, patrones y logos",
|
|
},
|
|
"html-to-image": {
|
|
name: "HTML a imagen",
|
|
description: "Captura páginas web como imágenes de alta calidad",
|
|
},
|
|
"barcode-read": {
|
|
name: "Lector de códigos de barras",
|
|
description: "Escanea imágenes en busca de códigos QR, códigos de barras y códigos 2D",
|
|
},
|
|
collage: {
|
|
name: "Collage / Cuadrícula",
|
|
description: "Combina imágenes en hermosos collages con más de 25 plantillas",
|
|
},
|
|
stitch: {
|
|
name: "Unir / Combinar",
|
|
description: "Une imágenes lado a lado, apiladas o en cuadrícula",
|
|
},
|
|
split: {
|
|
name: "Dividir imagen",
|
|
description: "Divide imágenes en cuadrícula o por tamaño en píxeles con vista previa en vivo",
|
|
},
|
|
border: {
|
|
name: "Borde y marco",
|
|
description: "Agrega bordes, relleno, esquinas redondeadas y sombras con presets de un clic",
|
|
},
|
|
beautify: {
|
|
name: "Embellecer captura de pantalla",
|
|
description:
|
|
"Agrega fondos degradados, marcos de dispositivo, sombras y tamaños de redes sociales a capturas de pantalla",
|
|
},
|
|
"circle-crop": {
|
|
name: "Recorte circular",
|
|
description: "Recorta la imagen en un círculo centrado con esquinas transparentes",
|
|
},
|
|
duotone: {
|
|
name: "Duotono",
|
|
description: "Aplica un efecto duotono con colores personalizados de sombra y resaltado",
|
|
},
|
|
"image-pad": {
|
|
name: "Relleno de imagen",
|
|
description:
|
|
"Rellena la imagen hasta una relación de aspecto objetivo con un fondo de color sólido",
|
|
},
|
|
pixelate: {
|
|
name: "Pixelar",
|
|
description: "Aplica un efecto de pixelado a la imagen completa o a una región específica",
|
|
},
|
|
vignette: {
|
|
name: "Viñeta",
|
|
description: "Añade un efecto de viñeta con intensidad y color ajustables",
|
|
},
|
|
"gif-webp": {
|
|
name: "Convertidor GIF/WebP",
|
|
description: "Convierte GIF animado a WebP y viceversa, conservando todos los fotogramas",
|
|
},
|
|
histogram: {
|
|
name: "Histograma",
|
|
description: "Genera un gráfico de histograma RGB a partir de una imagen",
|
|
},
|
|
"lqip-placeholder": {
|
|
name: "Marcador LQIP",
|
|
description: "Genera un marcador de imagen de baja calidad con URI de datos base64",
|
|
},
|
|
"sprite-sheet": {
|
|
name: "Hoja de sprites",
|
|
description: "Combina varias imágenes en una cuadrícula de hoja de sprites",
|
|
},
|
|
"svg-to-raster": {
|
|
name: "SVG a raster",
|
|
description:
|
|
"Convierte SVG a PNG, JPEG, WebP, AVIF, TIFF, GIF o HEIF a escala y DPI personalizados",
|
|
},
|
|
vectorize: {
|
|
name: "Imagen a SVG",
|
|
description: "Convierte imágenes a gráficos vectoriales escalables",
|
|
},
|
|
"gif-tools": {
|
|
name: "Herramientas GIF",
|
|
description:
|
|
"Redimensiona, optimiza, cambia velocidad, invierte, extrae fotogramas y rota GIFs animados",
|
|
},
|
|
"image-to-base64": {
|
|
name: "Imagen a Base64",
|
|
description: "Convierte imágenes a cadenas Base64 para incrustar en HTML, CSS y más",
|
|
},
|
|
"barcode-generate": {
|
|
name: "Generador de códigos de barras",
|
|
description:
|
|
"Genera códigos de barras en Code 128, EAN-13, UPC-A, Code 39, ITF-14 y Data Matrix",
|
|
},
|
|
"chart-maker": {
|
|
name: "Creador de gráficos",
|
|
description: "Crea gráficos de barras, líneas o circulares a partir de datos CSV o JSON",
|
|
},
|
|
"convert-video": {
|
|
name: "Convertir vídeo",
|
|
description: "Convierte vídeos entre MP4, MOV y WebM",
|
|
},
|
|
"compress-video": {
|
|
name: "Comprimir vídeo",
|
|
description: "Reduce el tamaño del archivo de vídeo con control de calidad",
|
|
},
|
|
"trim-video": {
|
|
name: "Cortar vídeo",
|
|
description: "Corta un fragmento de un vídeo",
|
|
},
|
|
"mute-video": {
|
|
name: "Silenciar vídeo",
|
|
description: "Elimina la pista de audio de un vídeo",
|
|
},
|
|
"video-to-gif": {
|
|
name: "Vídeo a GIF",
|
|
description: "Convierte un fragmento de vídeo en un GIF animado",
|
|
},
|
|
"resize-video": {
|
|
name: "Redimensionar vídeo",
|
|
description: "Escala un vídeo a una nueva resolución o tamaño predefinido",
|
|
},
|
|
"crop-video": {
|
|
name: "Recortar vídeo",
|
|
description: "Recorta una región de un vídeo",
|
|
},
|
|
"rotate-video": {
|
|
name: "Rotar vídeo",
|
|
description: "Rota o voltea un vídeo",
|
|
},
|
|
"change-fps": {
|
|
name: "Cambiar FPS",
|
|
description: "Cambia la velocidad de fotogramas de un vídeo",
|
|
},
|
|
"video-color": {
|
|
name: "Color de vídeo",
|
|
description: "Ajusta brillo, contraste, saturación y gamma",
|
|
},
|
|
"video-speed": {
|
|
name: "Velocidad de vídeo",
|
|
description: "Acelera o ralentiza un vídeo",
|
|
},
|
|
"reverse-video": {
|
|
name: "Invertir vídeo",
|
|
description: "Reproduce un fragmento de vídeo al revés",
|
|
},
|
|
"video-loudnorm": {
|
|
name: "Normalizar audio",
|
|
description: "Normaliza el volumen del audio del vídeo al estándar de emisión",
|
|
},
|
|
"aspect-pad": {
|
|
name: "Relleno de aspecto",
|
|
description: "Añade barras de color sólido para ajustar a una relación de aspecto",
|
|
},
|
|
"blur-pad": {
|
|
name: "Relleno difuminado",
|
|
description: "Rellena las barras con una copia difuminada del vídeo",
|
|
},
|
|
"watermark-video": {
|
|
name: "Marca de agua en vídeo",
|
|
description: "Graba una marca de agua de texto en los fotogramas del vídeo",
|
|
},
|
|
"stabilize-video": {
|
|
name: "Estabilizar vídeo",
|
|
description: "Reduce el temblor de cámara con estabilización de dos pasadas",
|
|
},
|
|
"gif-to-video": {
|
|
name: "GIF a vídeo",
|
|
description: "Convierte un GIF animado en un vídeo MP4 o WebM",
|
|
},
|
|
"video-to-webp": {
|
|
name: "Vídeo a WebP",
|
|
description: "Convierte un fragmento de vídeo en una imagen WebP animada",
|
|
},
|
|
"video-to-frames": {
|
|
name: "Vídeo a fotogramas",
|
|
description: "Extrae fotogramas de un vídeo como un ZIP de imágenes",
|
|
},
|
|
"merge-videos": {
|
|
name: "Unir vídeos",
|
|
description: "Une varios fragmentos de vídeo en un solo archivo",
|
|
},
|
|
"replace-audio": {
|
|
name: "Reemplazar audio",
|
|
description: "Sustituye la pista de audio de un vídeo con otro archivo",
|
|
},
|
|
"burn-subtitles": {
|
|
name: "Grabar subtítulos",
|
|
description: "Incrusta subtítulos permanentemente en los fotogramas del vídeo",
|
|
},
|
|
"embed-subtitles": {
|
|
name: "Incrustar subtítulos",
|
|
description: "Añade una pista de subtítulos al contenedor de vídeo",
|
|
},
|
|
"extract-subtitles": {
|
|
name: "Extraer subtítulos",
|
|
description: "Extrae la pista de subtítulos de un vídeo como archivo SRT",
|
|
},
|
|
"images-to-video": {
|
|
name: "Imágenes a vídeo",
|
|
description: "Convierte un conjunto de imágenes en un vídeo de presentación",
|
|
},
|
|
"video-metadata": {
|
|
name: "Limpiar metadatos de vídeo",
|
|
description: "Elimina los metadatos de un vídeo e informa de lo encontrado",
|
|
},
|
|
"convert-audio": {
|
|
name: "Convertir audio",
|
|
description: "Convierte audio entre MP3, WAV, OGG y más",
|
|
},
|
|
"trim-audio": {
|
|
name: "Cortar audio",
|
|
description: "Corta una sección de un archivo de audio",
|
|
},
|
|
"extract-audio": {
|
|
name: "Extraer audio",
|
|
description: "Extrae la pista de audio de un vídeo",
|
|
},
|
|
"volume-adjust": {
|
|
name: "Ajustar volumen",
|
|
description: "Aumenta o disminuye el volumen de audio con una ganancia fija",
|
|
},
|
|
"normalize-audio": {
|
|
name: "Normalizar audio",
|
|
description: "Iguala la sonoridad a niveles estándar de emisión",
|
|
},
|
|
"fade-audio": {
|
|
name: "Fundido de audio",
|
|
description: "Añade efectos de fundido de entrada y salida al audio",
|
|
},
|
|
"reverse-audio": {
|
|
name: "Invertir audio",
|
|
description: "Reproduce el audio al revés",
|
|
},
|
|
"audio-speed": {
|
|
name: "Velocidad de audio",
|
|
description: "Acelera o ralentiza la reproducción de audio",
|
|
},
|
|
"pitch-shift": {
|
|
name: "Cambio de tono",
|
|
description: "Sube o baja el tono por semitonos sin cambiar la velocidad",
|
|
},
|
|
"audio-channels": {
|
|
name: "Canales de audio",
|
|
description: "Convierte entre mono, estéreo o intercambia canales izquierdo y derecho",
|
|
},
|
|
"silence-removal": {
|
|
name: "Eliminar silencios",
|
|
description: "Elimina las secciones silenciosas del audio",
|
|
},
|
|
"noise-reduction": {
|
|
name: "Reducción de ruido",
|
|
description: "Reduce el ruido de fondo con eliminación de ruido basada en FFT",
|
|
},
|
|
"merge-audio": {
|
|
name: "Unir audio",
|
|
description: "Combina varios archivos de audio en uno",
|
|
},
|
|
"split-audio": {
|
|
name: "Dividir audio",
|
|
description: "Divide el audio por tiempo, partes iguales o detección de silencio",
|
|
},
|
|
"ringtone-maker": {
|
|
name: "Creador de tonos",
|
|
description: "Crea un tono de llamada a partir de cualquier archivo de audio",
|
|
},
|
|
"waveform-image": {
|
|
name: "Imagen de forma de onda",
|
|
description: "Genera una visualización de forma de onda como imagen PNG",
|
|
},
|
|
"audio-metadata": {
|
|
name: "Metadatos de audio",
|
|
description: "Ver, editar o eliminar etiquetas de audio (ID3)",
|
|
},
|
|
"merge-pdf": {
|
|
name: "Unir PDFs",
|
|
description: "Combina varios PDFs en uno",
|
|
},
|
|
"split-pdf": {
|
|
name: "Dividir PDF",
|
|
description: "Extrae páginas o divide en partes",
|
|
},
|
|
"compress-pdf": {
|
|
name: "Comprimir PDF",
|
|
description: "Reduce el tamaño del archivo PDF",
|
|
},
|
|
"rotate-pdf": {
|
|
name: "Rotar PDF",
|
|
description: "Rota las páginas de un PDF",
|
|
},
|
|
"convert-document": {
|
|
name: "Convertir documento",
|
|
description: "Convierte entre formatos Word, OpenDocument, RTF y texto plano",
|
|
},
|
|
"convert-presentation": {
|
|
name: "Convertir presentación",
|
|
description: "Convierte entre formatos de presentación PowerPoint y OpenDocument",
|
|
},
|
|
"convert-spreadsheet": {
|
|
name: "Convertir hoja de cálculo",
|
|
description:
|
|
"Convierte entre formatos Excel, OpenDocument y CSV. Los libros con varias hojas exportan la primera hoja a CSV.",
|
|
},
|
|
"excel-to-pdf": {
|
|
name: "Excel a PDF",
|
|
description:
|
|
"Convierte hojas de cálculo a PDF. Las hojas anchas pueden paginarse en varias páginas.",
|
|
},
|
|
"word-to-pdf": {
|
|
name: "Word a PDF",
|
|
description: "Convierte documentos Word a PDF",
|
|
},
|
|
"extract-pages": {
|
|
name: "Extraer páginas",
|
|
description: "Extrae las páginas seleccionadas en un nuevo PDF",
|
|
},
|
|
"remove-pages": {
|
|
name: "Eliminar páginas",
|
|
description: "Elimina páginas específicas de un PDF",
|
|
},
|
|
"organize-pdf": {
|
|
name: "Organizar PDF",
|
|
description: "Reordena las páginas con un orden explícito",
|
|
},
|
|
"protect-pdf": {
|
|
name: "Proteger PDF",
|
|
description: "Añade protección con contraseña (cifrado AES-256)",
|
|
},
|
|
"unlock-pdf": {
|
|
name: "Desbloquear PDF",
|
|
description: "Elimina la protección con contraseña de un PDF",
|
|
},
|
|
"repair-pdf": {
|
|
name: "Reparar PDF",
|
|
description: "Intenta reparar un PDF dañado o corrupto",
|
|
},
|
|
"linearize-pdf": {
|
|
name: "Optimizar PDF para web",
|
|
description: "Linealiza un PDF para una visualización web rápida",
|
|
},
|
|
"grayscale-pdf": {
|
|
name: "PDF en escala de grises",
|
|
description: "Convierte todos los colores a escala de grises",
|
|
},
|
|
"pdfa-convert": {
|
|
name: "Convertir a PDF/A",
|
|
description: "Convierte a formato de archivo PDF/A-2",
|
|
},
|
|
"crop-pdf": {
|
|
name: "Recortar PDF",
|
|
description: "Recorta todas las páginas con un margen uniforme",
|
|
},
|
|
"nup-pdf": {
|
|
name: "PDF N-up",
|
|
description: "Dispone varias páginas por hoja",
|
|
},
|
|
"booklet-pdf": {
|
|
name: "PDF en folleto",
|
|
description: "Dispone las páginas para plegar en un folleto",
|
|
},
|
|
"watermark-pdf": {
|
|
name: "Marca de agua en PDF",
|
|
description: "Añade una marca de agua de texto a cada página",
|
|
},
|
|
"pdf-page-numbers": {
|
|
name: "Números de página PDF",
|
|
description: "Añade números de página a cada página",
|
|
},
|
|
"flatten-pdf": {
|
|
name: "Aplanar PDF",
|
|
description: "Fija formularios y anotaciones en el contenido de la página",
|
|
},
|
|
"redact-pdf": {
|
|
name: "Censurar PDF",
|
|
description: "Elimina permanentemente apariciones de texto (censura verificada)",
|
|
},
|
|
"pdf-to-text": {
|
|
name: "PDF a texto",
|
|
description: "Extrae texto plano de un PDF",
|
|
},
|
|
"pdf-to-word": {
|
|
name: "PDF a Word",
|
|
description: "Ideal para PDFs con texto; las páginas escaneadas necesitan OCR",
|
|
},
|
|
"pdf-metadata": {
|
|
name: "Metadatos de PDF",
|
|
description: "Lee y edita los metadatos del documento PDF",
|
|
},
|
|
"powerpoint-to-pdf": {
|
|
name: "PowerPoint a PDF",
|
|
description: "Convierte presentaciones a PDF",
|
|
},
|
|
"html-to-pdf": {
|
|
name: "HTML a PDF",
|
|
description:
|
|
"Convierte un archivo HTML a PDF. Los recursos remotos están deshabilitados por privacidad.",
|
|
},
|
|
"markdown-to-docx": {
|
|
name: "Markdown a Word",
|
|
description: "Convierte un archivo Markdown a un documento Word (DOCX)",
|
|
},
|
|
"markdown-to-html": {
|
|
name: "Markdown a HTML",
|
|
description:
|
|
"Convierte un archivo Markdown a una página HTML independiente. Las imágenes remotas del origen se mantienen tal cual en la salida.",
|
|
},
|
|
"markdown-to-pdf": {
|
|
name: "Markdown a PDF",
|
|
description:
|
|
"Convierte un archivo Markdown a un PDF con estilo. Los recursos remotos están deshabilitados por privacidad.",
|
|
},
|
|
"epub-convert": {
|
|
name: "Convertir EPUB",
|
|
description:
|
|
"Convierte un EPUB a PDF, DOCX, HTML o Markdown. Los recursos remotos dentro del libro no se descargan.",
|
|
},
|
|
"to-epub": {
|
|
name: "Convertir a EPUB",
|
|
description: "Convierte archivos Word, Markdown, HTML o texto plano a EPUB",
|
|
},
|
|
"csv-excel": {
|
|
name: "CSV a Excel",
|
|
description: "Convierte entre CSV y Excel (XLSX) en ambas direcciones",
|
|
},
|
|
"csv-json": {
|
|
name: "CSV a JSON",
|
|
description: "Convierte entre CSV y JSON en ambas direcciones",
|
|
},
|
|
"json-xml": {
|
|
name: "JSON a XML",
|
|
description: "Convierte entre JSON y XML en ambas direcciones",
|
|
},
|
|
"split-csv": {
|
|
name: "Dividir CSV",
|
|
description: "Divide un CSV en archivos más pequeños por número de filas",
|
|
},
|
|
"merge-csvs": {
|
|
name: "Unir CSVs",
|
|
description: "Combina varios archivos CSV o TSV con columnas coincidentes en uno",
|
|
},
|
|
"yaml-json": {
|
|
name: "YAML / JSON",
|
|
description: "Convierte entre YAML y JSON en ambas direcciones",
|
|
},
|
|
"xml-to-csv": {
|
|
name: "XML a CSV",
|
|
description: "Extrae elementos repetitivos de XML a una tabla CSV",
|
|
},
|
|
"create-zip": {
|
|
name: "Crear ZIP",
|
|
description: "Agrupa varios archivos en un solo archivo ZIP",
|
|
},
|
|
"extract-zip": {
|
|
name: "Extraer ZIP",
|
|
description:
|
|
"Extrae archivos de un ZIP de forma segura con protección contra bombas. Los archivos con un solo elemento devuelven el archivo directamente.",
|
|
},
|
|
pipeline: {
|
|
name: "Constructor de Pipeline",
|
|
description: "Encadena múltiples herramientas en un flujo de trabajo",
|
|
},
|
|
processing: { canceled: "Procesamiento cancelado" },
|
|
mediaPlayer: {
|
|
unsupported: "Tu navegador no admite este formato de medios.",
|
|
},
|
|
documentView: {
|
|
loadFailed: "Error al cargar el documento.",
|
|
previousPage: "Página anterior",
|
|
nextPage: "Página siguiente",
|
|
inputNotPreviewable: "Vista previa no disponible para este tipo de archivo",
|
|
},
|
|
},
|
|
toolSettings: {
|
|
compress: {
|
|
compressionMode: "Modo de compresión",
|
|
targetSize: "Tamaño objetivo",
|
|
quality: "Calidad",
|
|
smallestFile: "Archivo más pequeño",
|
|
bestQuality: "Mejor calidad",
|
|
submit: "Comprimir",
|
|
submitBatch: "Comprimir ({count} archivos)",
|
|
progressLabel: "Comprimiendo",
|
|
original: "Original: {size} KB",
|
|
processed: "Procesado: {size} KB",
|
|
saved: "Ahorro: {percent}%",
|
|
},
|
|
resize: {
|
|
customSize: "Tamaño personalizado",
|
|
scale: "Escala",
|
|
presets: "Predefinidos",
|
|
contentAware: "Consciente del contenido",
|
|
widthPx: "Ancho (px)",
|
|
heightPx: "Alto (px)",
|
|
fitMode: "Modo de ajuste",
|
|
cropToFit: "Recortar para ajustar",
|
|
fitInside: "Ajustar dentro",
|
|
stretch: "Estirar",
|
|
limitToOriginalSize: "Limitar al tamaño original",
|
|
limitToOriginalSizeHint:
|
|
"Si tu imagen ya es más pequeña que el objetivo, se mantiene como está en lugar de escalarla",
|
|
scalePercent: "Escala (%)",
|
|
resizeToSquare: "Redimensionar a cuadrado",
|
|
protectFaces: "Proteger rostros",
|
|
smoothing: "Suavizado",
|
|
edgeSensitivity: "Sensibilidad de bordes",
|
|
submit: "Redimensionar",
|
|
submitBatch: "Redimensionar ({count} archivos)",
|
|
progressLabel: "Redimensionando",
|
|
},
|
|
crop: {
|
|
aspectRatio: "Relación de aspecto",
|
|
custom: "Personalizado",
|
|
positionAndSize: "Posición y tamaño",
|
|
ruleOfThirds: "Regla de tercios",
|
|
leftOffsetPx: "Desplazamiento izquierdo (px)",
|
|
topOffsetPx: "Desplazamiento superior (px)",
|
|
submit: "Recortar",
|
|
submitBatch: "Recortar ({count} archivos)",
|
|
progressLabel: "Recortando",
|
|
},
|
|
rotate: {
|
|
rotate: "Rotar",
|
|
angle: "Ángulo",
|
|
straighten: "Enderezar",
|
|
flip: "Voltear",
|
|
horizontal: "Horizontal",
|
|
vertical: "Vertical",
|
|
resetAllChanges: "Restablecer todos los cambios",
|
|
submit: "Aplicar",
|
|
submitBatch: "Aplicar ({count} archivos)",
|
|
progressLabel: "Aplicando",
|
|
},
|
|
convert: {
|
|
targetFormat: "Formato de destino",
|
|
sourceFormat: "Formato de origen",
|
|
quality: "Calidad",
|
|
submit: "Convertir",
|
|
submitBatch: "Convertir ({count} archivos)",
|
|
progressLabel: "Convirtiendo",
|
|
},
|
|
"optimize-for-web": {
|
|
outputFormat: "Formato de salida",
|
|
quality: "Calidad",
|
|
smallestFile: "Archivo más pequeño",
|
|
bestQuality: "Mejor calidad",
|
|
maxDimensions: "Dimensiones máximas",
|
|
maxWidth: "Ancho máximo",
|
|
maxHeight: "Alto máximo",
|
|
stripMetadata: "Eliminar metadatos",
|
|
sizeComparison: "Comparación de tamaño",
|
|
optimized: "Optimizado:",
|
|
smaller: "{percent}% más pequeño",
|
|
larger: "{percent}% más grande",
|
|
submit: "Procesar y descargar",
|
|
submitBatch: "Procesar y descargar ({count} archivos)",
|
|
progressLabel: "Optimizando",
|
|
},
|
|
"strip-metadata": {
|
|
currentMetadata: "Metadatos actuales",
|
|
readingMetadata: "Leyendo metadatos...",
|
|
noMetadataFound: "No se encontraron metadatos en esta imagen.",
|
|
removeAllMetadata: "Eliminar todos los metadatos",
|
|
selectSpecific: "O selecciona metadatos específicos:",
|
|
stripExif: "Eliminar EXIF (info de cámara, fecha, exposición)",
|
|
stripGps: "Eliminar GPS (datos de ubicación)",
|
|
stripIcc: "Eliminar ICC (perfil de color)",
|
|
stripXmp: "Eliminar XMP (metadatos extensibles)",
|
|
locationFound: "ubicación encontrada",
|
|
locationWarning:
|
|
"Esta imagen contiene tu ubicación precisa. Considera eliminar los datos GPS antes de compartirla.",
|
|
metadataSections: "{count} sección de metadatos encontrada",
|
|
metadataSectionsPlural: "{count} secciones de metadatos encontradas",
|
|
metadataRemoved: "Metadatos eliminados: {size} KB",
|
|
submit: "Eliminar metadatos",
|
|
progressLabel: "Eliminando metadatos",
|
|
},
|
|
"edit-metadata": {
|
|
readingMetadata: "Leyendo metadatos...",
|
|
couldNotReadMetadata: "No se pudieron leer los metadatos - los campos comenzarán vacíos.",
|
|
basicInfo: "Información básica",
|
|
description: "Descripción",
|
|
artist: "Artista",
|
|
copyright: "Copyright",
|
|
software: "Software",
|
|
iptc: "IPTC",
|
|
title: "Título",
|
|
headline: "Titular",
|
|
city: "Ciudad",
|
|
stateProvince: "Estado/Provincia",
|
|
country: "País",
|
|
dateAndTime: "Fecha y hora",
|
|
editDates: "Editar fechas",
|
|
shiftAllDates: "Ajustar todas las fechas",
|
|
dateModified: "Fecha de modificación",
|
|
dateTaken: "Fecha de captura",
|
|
shiftHint:
|
|
"Ajusta todos los campos de fecha con un desfase (útil para correcciones de zona horaria)",
|
|
direction: "Dirección",
|
|
forward: "+ Adelante",
|
|
backward: "- Atrás",
|
|
hoursMinutes: "Horas:Minutos",
|
|
locationGps: "Ubicación (GPS)",
|
|
locationDataFound: "Datos de ubicación encontrados",
|
|
noGpsData: "Sin datos GPS. Agrega coordenadas abajo.",
|
|
latitude: "Latitud",
|
|
longitude: "Longitud",
|
|
altitudeMeters: "Altitud (metros)",
|
|
removeAllGpsData: "Eliminar todos los datos GPS",
|
|
keywords: "Palabras clave",
|
|
addKeywordPlaceholder: "Agregar palabra clave y presionar Enter",
|
|
addToExisting: "Agregar a las existentes",
|
|
replaceAll: "Reemplazar todas",
|
|
allMetadata: "Todos los metadatos",
|
|
templates: "Plantillas",
|
|
templateNamePlaceholder: "Nombre de la plantilla",
|
|
uploadPrompt: "Sube una imagen para editar sus metadatos.",
|
|
changes: "{count} cambios:",
|
|
modified: "{count} modificados",
|
|
removed: "{count} eliminados",
|
|
gpsCleared: "GPS eliminado",
|
|
gpsAdded: "GPS agregado",
|
|
datesShifted: "fechas ajustadas",
|
|
submit: "Aplicar metadatos",
|
|
progressLabel: "Escribiendo metadatos",
|
|
},
|
|
"bulk-rename": {
|
|
pattern: "Patrón",
|
|
patternHint: "Variables: {{index}}, {{padded}}, {{original}}",
|
|
startIndex: "Índice inicial",
|
|
preview: "Vista previa",
|
|
andMore: "... y {count} más",
|
|
renaming: "Renombrando...",
|
|
submit: "Renombrar {count} archivos",
|
|
zipDownloaded: "ZIP descargado correctamente",
|
|
},
|
|
"image-to-pdf": {
|
|
imageCount: "{count} imagen se convertirá a {mode}",
|
|
imageCountPlural: "{count} imágenes se convertirán a {mode}",
|
|
singlePdfMode: "un solo PDF, una imagen por página",
|
|
separatePdfMode: "PDFs separados, uno por imagen",
|
|
combineAllImages: "Combinar todas las imágenes en un PDF",
|
|
pageSize: "Tamaño de página",
|
|
orientation: "Orientación",
|
|
portrait: "Vertical",
|
|
landscape: "Horizontal",
|
|
margin: "Margen",
|
|
targetSizeLabel: "Tamaño de archivo objetivo (opcional)",
|
|
targetSizePlaceholder: "ej. 2",
|
|
targetSizeHint: "Dejar vacío para calidad máxima",
|
|
targetSizeMet: "Objetivo alcanzado",
|
|
targetSizeNotMet: "No se pudo alcanzar el objetivo. Archivo comprimido a calidad mínima.",
|
|
targetSizeTooSmall: "El objetivo debe ser al menos 50KB",
|
|
jpegQualityLabel: "Calidad JPEG utilizada",
|
|
noImage: "Sin imagen",
|
|
submitCollate: "Crear PDF ({count} páginas)",
|
|
submitSeparate: "Crear {count} PDFs",
|
|
downloadPdf: "Descargar PDF",
|
|
downloadZip: "Descargar ZIP",
|
|
progressLabel: "Creando PDF",
|
|
uploadingImages: "Subiendo imágenes...",
|
|
processingPages: "Procesando {count} páginas...",
|
|
},
|
|
"pdf-to-image": {
|
|
dropPdf: "Arrastra un PDF aquí o haz clic para seleccionar",
|
|
readingPdf: "Leyendo PDF...",
|
|
pageCount: "{count} página",
|
|
pageCountPlural: "{count} páginas",
|
|
outputFormat: "Formato de salida",
|
|
quality: "Calidad",
|
|
resolutionDpi: "Resolución (DPI)",
|
|
dpiScreen: "Pantalla",
|
|
dpiStandard: "Estándar",
|
|
dpiPrint: "Impresión",
|
|
dpiHighQuality: "Alta calidad",
|
|
colorMode: "Modo de color",
|
|
colorModeColor: "Color",
|
|
colorModeGrayscale: "Escala de grises",
|
|
colorModeBw: "B&N",
|
|
pages: "Páginas",
|
|
allPages: "Todas las páginas",
|
|
pagesHint: "ej. 1-3, 5, 8-10 (el documento tiene {count} páginas)",
|
|
converting: "Convirtiendo...",
|
|
submit: "Convertir {count} página",
|
|
submitPlural: "Convertir {count} páginas",
|
|
downloadAllZip: "Descargar todo (ZIP)",
|
|
},
|
|
favicon: {
|
|
uploadHint:
|
|
"Sube imágenes cuadradas (se recomienda 512x512 o mayor) para generar todos los tamaños de favicon e iconos de app.",
|
|
multipleHint: "Cada una de las {count} imágenes obtiene su propia carpeta en el ZIP.",
|
|
generatedSizes: "Tamaños generados (por imagen)",
|
|
plusManifest: "+ manifest.json + fragmento HTML",
|
|
submit: "Generar Favicons ({count} imagen)",
|
|
submitPlural: "Generar Favicons ({count} imágenes)",
|
|
downloadZip: "Descargar ZIP de Favicons",
|
|
progressLabel: "Generando Favicons",
|
|
},
|
|
"adjust-colors": {
|
|
light: "Luz",
|
|
brightness: "Brillo",
|
|
contrast: "Contraste",
|
|
exposure: "Exposición",
|
|
color: "Color",
|
|
saturation: "Saturación",
|
|
temperature: "Temperatura",
|
|
temperatureHint: "frío / cálido",
|
|
tint: "Tono",
|
|
tintHint: "verde / magenta",
|
|
hue: "Matiz",
|
|
detail: "Detalle",
|
|
sharpness: "Nitidez",
|
|
effects: "Efectos",
|
|
none: "ninguno",
|
|
grayscale: "escala de grises",
|
|
sepia: "sepia",
|
|
invert: "invertir",
|
|
colorChannels: "Canales de color",
|
|
channelModified: "modificado",
|
|
red: "Rojo",
|
|
green: "Verde",
|
|
blue: "Azul",
|
|
resetAll: "Restablecer todo",
|
|
submit: "Aplicar",
|
|
submitBatch: "Aplicar ({count} archivos)",
|
|
progressLabel: "Ajustando colores",
|
|
},
|
|
sharpening: {
|
|
method: "Método",
|
|
adaptive: "Adaptativo",
|
|
unsharpMask: "Máscara de desenfoque",
|
|
highPass: "Paso alto",
|
|
presets: "Predefinidos",
|
|
textureAmount: "Cantidad de textura",
|
|
amount: "Cantidad",
|
|
strength: "Intensidad",
|
|
noiseReduction: "Reducción de ruido",
|
|
off: "desactivado",
|
|
lightDenoise: "ligero",
|
|
mediumDenoise: "medio",
|
|
strongDenoise: "fuerte",
|
|
advancedControls: "Controles avanzados",
|
|
radius: "Radio",
|
|
flatProtection: "Protección de áreas planas",
|
|
detailThreshold: "Umbral de detalle",
|
|
haloLimitLight: "Límite de halo (claro)",
|
|
haloLimitDark: "Límite de halo (oscuro)",
|
|
threshold: "Umbral",
|
|
kernelSize: "Tamaño del kernel",
|
|
submit: "Enfocar",
|
|
submitBatch: "Enfocar ({count} archivos)",
|
|
progressLabel: "Enfocando",
|
|
},
|
|
"replace-color": {
|
|
sourceColor: "Color de origen (a reemplazar)",
|
|
targetColor: "Color de destino (reemplazo)",
|
|
makeTransparent: "Hacer transparente en su lugar",
|
|
tolerance: "Tolerancia",
|
|
exactMatch: "Coincidencia exacta",
|
|
wideRange: "Rango amplio",
|
|
submit: "Reemplazar color",
|
|
submitBatch: "Reemplazar color ({count} archivos)",
|
|
progressLabel: "Reemplazando color",
|
|
},
|
|
"color-blindness": {
|
|
simulationType: "Tipo de simulación",
|
|
redGreen: "Rojo-Verde",
|
|
blueYellow: "Azul-Amarillo",
|
|
monochromatic: "Monocromático",
|
|
submit: "Simular",
|
|
submitBatch: "Simular ({count} archivos)",
|
|
progressLabel: "Simulando daltonismo",
|
|
},
|
|
"remove-background": {
|
|
subject: "Sujeto",
|
|
people: "Personas",
|
|
products: "Productos",
|
|
general: "General",
|
|
passportIdPhoto: "Foto de pasaporte / identificación",
|
|
quality: "Calidad",
|
|
fast: "Rápido",
|
|
hd: "HD",
|
|
max: "Máx",
|
|
ultra: "Ultra",
|
|
background: "Fondo",
|
|
transparent: "Transparente",
|
|
bgColor: "Color",
|
|
gradient: "Degradado",
|
|
image: "Imagen",
|
|
gradientDirection: "Dirección",
|
|
chooseBackgroundImage: "Elegir imagen de fondo",
|
|
effectsSection: "Efectos",
|
|
effectsActive: "activos",
|
|
blurBackground: "Desenfocar fondo",
|
|
intensity: "Intensidad",
|
|
addShadow: "Agregar sombra",
|
|
opacity: "Opacidad",
|
|
outputFormat: "Formato de salida",
|
|
edgeSmoothing: "Suavizado de bordes",
|
|
edgeSmoothingOff: "Desactivado",
|
|
edgeSmoothingLight: "Ligero",
|
|
edgeSmoothingMedium: "Medio",
|
|
edgeSmoothingStrong: "Fuerte",
|
|
colorDecontamination: "Descontaminación de color",
|
|
rendering: "Renderizando...",
|
|
submit: "Eliminar fondo",
|
|
submitBatch: "Eliminar fondo ({count} archivos)",
|
|
progressLabel: "Eliminando fondo",
|
|
},
|
|
upscale: {
|
|
scaleFactor: "Factor de escala",
|
|
quality: "Calidad",
|
|
enhanceFaces: "Mejorar rostros",
|
|
noiseReduction: "Reducción de ruido",
|
|
noiseReductionHint:
|
|
"Suaviza el grano y el ruido. Valores más altos eliminan más ruido pero pueden suavizar los detalles.",
|
|
outputFormat: "Formato de salida",
|
|
submit: "Escalar {scale}x",
|
|
submitBatch: "Escalar {scale}x ({count} archivos)",
|
|
progressLabel: "Escalando imagen",
|
|
progressLabelBatch: "Escalando {count} imágenes",
|
|
},
|
|
"erase-object": {
|
|
brushSize: "Tamaño del pincel",
|
|
fine: "Fino",
|
|
wide: "Ancho",
|
|
undo: "Deshacer",
|
|
clear: "Limpiar",
|
|
outputFormat: "Formato de salida",
|
|
quality: "Calidad",
|
|
paintHint: "Pinta sobre los objetos que quieras eliminar. Usa Ctrl+Z para deshacer.",
|
|
submit: "Borrar objeto",
|
|
submitBatch: "Borrar todos ({count})",
|
|
progressLabel: "Borrando objeto",
|
|
},
|
|
ocr: {
|
|
quality: "Calidad",
|
|
enhanceBeforeScanning: "Mejorar antes de escanear",
|
|
enhanceHint:
|
|
"Endereza, mejora el contraste, elimina el ruido y escala la imagen automáticamente antes del escaneo para mayor precisión.",
|
|
language: "Idioma",
|
|
autoDetect: "Detección automática",
|
|
extractedText: "Texto extraído",
|
|
noTextDetected: "No se detectó texto en esta imagen",
|
|
characters: "{count} caracteres",
|
|
submit: "Extraer texto",
|
|
submitBatch: "Extraer texto ({count} archivos)",
|
|
progressLabel: "Extrayendo texto",
|
|
},
|
|
"ocr-pdf": {
|
|
quality: "Calidad",
|
|
language: "Idioma",
|
|
autoDetect: "Detectar automáticamente",
|
|
pages: "Páginas",
|
|
pagesPlaceholder: "todo, 1-3, 5",
|
|
pagesHint: "Ingrese números de página o rangos (ej. 1-3, 5, 8-10). Máximo 50 páginas.",
|
|
submit: "Extraer texto",
|
|
submitBatch: "Extraer texto ({count} archivos)",
|
|
progressLabel: "Extrayendo texto del PDF",
|
|
},
|
|
"blur-faces": {
|
|
blurRadius: "Radio de desenfoque",
|
|
blurLight: "Ligero",
|
|
blurHeavy: "Fuerte",
|
|
detectionSensitivity: "Sensibilidad de detección",
|
|
moreFaces: "Más rostros",
|
|
fewerFaces: "Menos rostros",
|
|
submit: "Desenfocar rostros",
|
|
progressLabel: "Desenfocando rostros",
|
|
},
|
|
"enhance-faces": {
|
|
quality: "Calidad",
|
|
enhancementStrength: "Intensidad de mejora",
|
|
onlyCenterFace: "Solo el rostro central",
|
|
detectionSensitivity: "Sensibilidad de detección",
|
|
submit: "Mejorar rostros",
|
|
submitBatch: "Mejorar rostros ({count} archivos)",
|
|
progressLabel: "Mejorando rostros",
|
|
},
|
|
"smart-crop": {
|
|
subjectFocus: "Enfoque en sujeto",
|
|
faceFocus: "Enfoque en rostro",
|
|
autoTrim: "Recorte automático",
|
|
customSize: "Tamaño personalizado",
|
|
socialPresets: "Presets de redes sociales",
|
|
detectionStrategy: "Estrategia de detección",
|
|
detectionStrategyHint:
|
|
"Atención encuentra la región visualmente más relevante. Entropía encuentra el área con más detalle e información.",
|
|
attention: "Atención",
|
|
entropy: "Entropía",
|
|
padding: "Relleno",
|
|
paddingHint: "Espacio extra alrededor del área de enfoque",
|
|
outputQuality: "Calidad de salida",
|
|
outputQualityHint: "Para salidas JPEG y WebP. PNG siempre es sin pérdida.",
|
|
subjectDescription:
|
|
"Detecta la región más interesante usando análisis de relevancia y recorta al tamaño deseado.",
|
|
framing: "Encuadre",
|
|
facePadding: "Espacio alrededor del rostro",
|
|
facePaddingHint: "Espacio extra alrededor de los rostros detectados",
|
|
fewerFalsePositives: "Menos falsos positivos",
|
|
faceDescription:
|
|
"Usa detección facial con AI para mantener los rostros bien encuadrados. Si no se detectan rostros, usa el enfoque en sujeto.",
|
|
trimTolerance: "Tolerancia",
|
|
trimDescription:
|
|
"Qué tan diferente puede ser un píxel del borde respecto al color del borde y aún así ser recortado. Mayor = más agresivo.",
|
|
padToSquare: "Rellenar a cuadrado",
|
|
targetSizePx: "Tamaño objetivo (px)",
|
|
padColor: "Color de relleno",
|
|
trimHint:
|
|
'Elimina bordes de color uniforme alrededor del sujeto. Activa "Rellenar a cuadrado" para imágenes listas para e-commerce.',
|
|
submitSubject: "Recorte inteligente",
|
|
submitFace: "Recorte facial",
|
|
submitTrim: "Recortar bordes",
|
|
},
|
|
imageEnhancement: {
|
|
enhancementMode: "Modo de mejora",
|
|
auto: "Automático",
|
|
portrait: "Retrato",
|
|
landscape: "Paisaje",
|
|
lowLight: "Poca luz",
|
|
food: "Comida",
|
|
document: "Documento",
|
|
intensity: "Intensidad",
|
|
deepEnhance: "Mejora profunda (AI)",
|
|
deepEnhanceDescription: "Elimina ruido y artefactos usando AI",
|
|
deepEnhanceRequires: "Requiere el paquete de Escalado y mejora",
|
|
analyzingImage: "Analizando imagen...",
|
|
detectedIssues: "Problemas detectados",
|
|
imageLooksGood: "La imagen se ve bien. Ajusta con el control de intensidad.",
|
|
issueUnderexposed: "Baja exposición",
|
|
issueOverexposed: "Sobreexpuesta",
|
|
issueLowContrast: "Contraste plano",
|
|
issueColorCast: "Dominante de color",
|
|
issueDesaturated: "Desaturada",
|
|
issueSoftFocus: "Enfoque suave",
|
|
issueNoisy: "Ruidosa",
|
|
submit: "Mejorar",
|
|
submitDeep: "Mejora profunda",
|
|
submitBatch: "Mejorar ({count} archivos)",
|
|
submitDeepBatch: "Mejora profunda ({count} archivos)",
|
|
progressLabel: "Mejorando imagen",
|
|
progressLabelBatch: "Mejorando {count} imágenes",
|
|
},
|
|
"noise-removal": {
|
|
denoisingTier: "Nivel de eliminación de ruido",
|
|
quick: "Rápido",
|
|
balanced: "Equilibrado",
|
|
quality: "Calidad",
|
|
maximum: "Máximo",
|
|
quickDesc: "Rápido y ligero",
|
|
balancedDesc: "Buena calidad, velocidad moderada",
|
|
qualityDesc: "Con AI, lento",
|
|
maximumDesc: "Mejor modelo AI, más lento",
|
|
strength: "Intensidad",
|
|
subtle: "Sutil",
|
|
aggressive: "Agresivo",
|
|
detailPreservation: "Preservación de detalles",
|
|
smooth: "Suave",
|
|
sharp: "Nítido",
|
|
colorNoise: "Ruido de color",
|
|
heavy: "Intenso",
|
|
outputFormat: "Formato de salida",
|
|
gifAiWarning:
|
|
"La eliminación de ruido con AI en archivos GIF procesa solo el primer fotograma. Para GIFs animados, usa el nivel Rápido o Equilibrado.",
|
|
submit: "Eliminar ruido",
|
|
submitBatch: "Eliminar ruido ({count} archivos)",
|
|
progressLabel: "Eliminando ruido",
|
|
progressLabelBatch: "Eliminando ruido de {count} imágenes",
|
|
},
|
|
"red-eye-removal": {
|
|
sensitivity: "Sensibilidad",
|
|
strict: "Estricta",
|
|
aggressive: "Agresiva",
|
|
correctionStrength: "Intensidad de corrección",
|
|
subtle: "Sutil",
|
|
dark: "Oscuro",
|
|
outputFormat: "Formato de salida",
|
|
quality: "Calidad",
|
|
submit: "Corregir ojos rojos",
|
|
submitBatch: "Corregir ojos rojos ({count} archivos)",
|
|
progressLabel: "Corrigiendo ojos rojos",
|
|
progressLabelBatch: "Corrigiendo ojos rojos en {count} imágenes",
|
|
},
|
|
"restore-photo": {
|
|
scratchRemoval: "Eliminación de rasguños",
|
|
scratchRemovalDesc: "Detecta y repara rasguños, roturas y manchas",
|
|
faceEnhancement: "Mejora de rostros",
|
|
faceEnhancementDesc: "Restaura rostros degradados con CodeFormer AI",
|
|
faceFidelity: "Fidelidad del rostro",
|
|
enhanced: "Mejorado",
|
|
faithful: "Fiel",
|
|
noiseReduction: "Reducción de ruido",
|
|
noiseReductionDesc: "Elimina grano y ruido de fotos antiguas",
|
|
denoiseStrength: "Intensidad del eliminador de ruido",
|
|
autoColorize: "Colorizar automáticamente",
|
|
autoColorizeDesc: "Agrega color a fotos en B&N usando DDColor AI",
|
|
colorizeStrength: "Intensidad de colorización",
|
|
vivid: "Vívido",
|
|
submit: "Restaurar foto",
|
|
submitBatch: "Restaurar fotos ({count})",
|
|
progressLabel: "Restaurando foto",
|
|
progressLabelBatch: "Restaurando {count} fotos",
|
|
},
|
|
"content-aware-resize": {
|
|
widthPx: "Ancho (px)",
|
|
heightPx: "Alto (px)",
|
|
resizeToSquare: "Redimensionar a cuadrado",
|
|
protectFaces: "Proteger rostros",
|
|
protectFacesHint:
|
|
"Detecta y protege las áreas de rostros de la eliminación de costuras usando detección facial",
|
|
smoothing: "Suavizado",
|
|
edgeSensitivity: "Sensibilidad de bordes",
|
|
submit: "Redimensionar",
|
|
submitBatch: "Redimensionar ({count} archivos)",
|
|
progressLabel: "Redimensionando con reconocimiento de contenido",
|
|
},
|
|
"ai-canvas-expand": {
|
|
quality: "Calidad",
|
|
fast: "Rápido",
|
|
balanced: "Equilibrado",
|
|
highQuality: "Alta calidad",
|
|
fastDesc: "Vista previa rápida, menos pasadas de AI",
|
|
balancedDesc: "Buena calidad, velocidad moderada",
|
|
highQualityDesc: "Mejores resultados, más lento",
|
|
extendToAspectRatio: "Extender a relación de aspecto",
|
|
extendByPixels: "Extender por (píxeles)",
|
|
top: "Arriba",
|
|
right: "Derecha",
|
|
bottom: "Abajo",
|
|
left: "Izquierda",
|
|
newSize: "Nuevo tamaño: {width} x {height}",
|
|
submit: "Extender lienzo",
|
|
submitBatch: "Extender ({count} archivos)",
|
|
progressLabel: "Extendiendo lienzo",
|
|
},
|
|
colorize: {
|
|
aiModel: "Modelo AI",
|
|
fast: "Rápido",
|
|
fastDesc: "Resultados rápidos",
|
|
balanced: "Equilibrado",
|
|
balancedDesc: "El mejor disponible",
|
|
best: "Mejor",
|
|
bestDesc: "La más alta calidad",
|
|
colorIntensity: "Intensidad de color",
|
|
grayscaleLabel: "Escala de grises",
|
|
subtleLabel: "Sutil",
|
|
naturalLabel: "Natural",
|
|
vividLabel: "Vívido",
|
|
intensityHint: "Valores más bajos producen colores más apagados, estilo vintage.",
|
|
strength: "Intensidad de colorización",
|
|
submit: "Colorizar",
|
|
submitBatch: "Colorizar ({count} archivos)",
|
|
progressLabel: "Colorizando",
|
|
progressLabelBatch: "Colorizando {count} imágenes",
|
|
},
|
|
"passport-photo": {
|
|
country: "País",
|
|
searchCountries: "Buscar países...",
|
|
noCountriesFound: "No se encontraron países",
|
|
customDimensions: "Dimensiones personalizadas",
|
|
documentType: "Tipo de documento",
|
|
dimensionsMm: "Dimensiones (mm)",
|
|
dpi: "DPI",
|
|
pixelsPerInch: "píxeles por pulgada",
|
|
backgroundColor: "Color de fondo",
|
|
maxFileSize: "Tamaño máximo de archivo",
|
|
noLimit: "Sin límite",
|
|
customKb: "Personalizado KB...",
|
|
uploadPortrait: "Sube una foto tipo retrato",
|
|
uploadHint:
|
|
"Arrastra o sube una imagen en el panel izquierdo para previsualizar tu foto de pasaporte",
|
|
analyzingPhoto: "Analizando foto",
|
|
detectingLandmarks: "Detectando puntos faciales y eliminando fondo...",
|
|
generatePassportPhoto: "Generar foto de pasaporte",
|
|
generating: "Generando...",
|
|
downloadPhoto: "Descargar foto",
|
|
faceCentered: "Rostro centrado",
|
|
headLevel: "Cabeza nivelada",
|
|
lookingStraight: "Mirando al frente",
|
|
faceSize: "Tamaño del rostro",
|
|
whatYouSee: "Lo que ves es lo que descargas",
|
|
dragToAdjust: "Arrastra para ajustar",
|
|
scrollToZoom: "Desplaza para hacer zoom",
|
|
photoGenerated: "Foto generada. Descárgala desde el panel izquierdo.",
|
|
},
|
|
"transcribe-audio": {
|
|
language: "Idioma",
|
|
autoDetect: "Detección automática",
|
|
outputFormat: "Formato de salida",
|
|
plainText: "Texto plano",
|
|
submit: "Transcribir",
|
|
submitBatch: "Transcribir ({count} archivos)",
|
|
progressLabel: "Transcribiendo audio",
|
|
},
|
|
"auto-subtitles": {
|
|
language: "Idioma",
|
|
autoDetect: "Detección automática",
|
|
format: "Formato de subtítulos",
|
|
submit: "Generar subtítulos",
|
|
submitBatch: "Generar subtítulos ({count} archivos)",
|
|
progressLabel: "Generando subtítulos",
|
|
},
|
|
"transparency-fixer": {
|
|
description: "Sube un PNG con fondo transparente falso y lo corregimos en un clic.",
|
|
removeWatermark: "Eliminar marca de agua",
|
|
removeWatermarkHelp: "Detecta y elimina marcas de agua semitransparentes",
|
|
requiresEraser: "Requiere el paquete de Borrador de objetos",
|
|
advanced: "Avanzado",
|
|
defringe: "Eliminar bordes",
|
|
outputFormat: "Formato de salida",
|
|
submit: "Corregir transparencia",
|
|
submitBatch: "Corregir transparencia ({count} archivos)",
|
|
progressLabel: "Corrigiendo transparencia",
|
|
},
|
|
"background-replace": {
|
|
color: "Color de fondo",
|
|
submit: "Reemplazar fondo",
|
|
submitBatch: "Reemplazar fondo ({count} archivos)",
|
|
progressLabel: "Reemplazando fondo",
|
|
},
|
|
"blur-background": {
|
|
intensity: "Intensidad de desenfoque",
|
|
submit: "Desenfocar fondo",
|
|
submitBatch: "Desenfocar fondo ({count} archivos)",
|
|
progressLabel: "Desenfocando fondo",
|
|
},
|
|
"watermark-text": {
|
|
watermarkText: "Texto de marca de agua",
|
|
fontSize: "Tamaño de fuente",
|
|
color: "Color",
|
|
opacity: "Opacidad",
|
|
position: "Posición",
|
|
rotation: "Rotación",
|
|
center: "Centro",
|
|
topLeft: "Arriba izquierda",
|
|
topRight: "Arriba derecha",
|
|
bottomLeft: "Abajo izquierda",
|
|
bottomRight: "Abajo derecha",
|
|
tiled: "Mosaico",
|
|
submit: "Agregar marca de agua",
|
|
submitBatch: "Agregar marca de agua ({count} archivos)",
|
|
progressLabel: "Agregando marca de agua",
|
|
},
|
|
"watermark-image": {
|
|
uploadWatermark: "Subir imagen de marca de agua",
|
|
position: "Posición",
|
|
opacity: "Opacidad",
|
|
scale: "Escala",
|
|
submit: "Aplicar marca de agua",
|
|
submitBatch: "Aplicar marca de agua ({count} archivos)",
|
|
},
|
|
"text-overlay": {
|
|
text: "Texto",
|
|
fontSize: "Tamaño de fuente",
|
|
color: "Color",
|
|
position: "Posición",
|
|
top: "Arriba",
|
|
center: "Centro",
|
|
bottom: "Abajo",
|
|
backgroundBox: "Caja de fondo",
|
|
backgroundColor: "Color de fondo",
|
|
shadow: "Sombra",
|
|
submit: "Agregar texto",
|
|
submitBatch: "Agregar texto ({count} archivos)",
|
|
progressLabel: "Agregando texto superpuesto",
|
|
download: "Descargar",
|
|
defaultText: "Tu texto aquí",
|
|
},
|
|
compose: {
|
|
uploadOverlay: "Subir imagen de superposición",
|
|
xPosition: "Posición X",
|
|
yPosition: "Posición Y",
|
|
opacity: "Opacidad",
|
|
blendMode: "Modo de mezcla",
|
|
submit: "Componer",
|
|
},
|
|
"meme-generator": {
|
|
selectTemplate:
|
|
"Selecciona una plantilla de la galería o sube tu propia imagen para comenzar.",
|
|
chooseLayout: "Elige un diseño de texto para tu imagen personalizada.",
|
|
textContent: "Contenido del texto",
|
|
textStyle: "Estilo del texto",
|
|
font: "Fuente",
|
|
fontSize: "Tamaño de fuente",
|
|
textColor: "Color del texto",
|
|
strokeColor: "Color del borde",
|
|
allCaps: "MAYÚSCULAS",
|
|
generate: "Generar Meme",
|
|
generating: "Generando...",
|
|
downloadMeme: "Descargar Meme",
|
|
backToGallery: "Volver a la galería",
|
|
},
|
|
info: {
|
|
loadingInfo: "Cargando información...",
|
|
filename: "Nombre de archivo",
|
|
fileSize: "Tamaño de archivo",
|
|
dimensions: "Dimensiones",
|
|
format: "Formato",
|
|
channels: "Canales",
|
|
colorSpace: "Espacio de color",
|
|
density: "Densidad",
|
|
bitDepth: "Profundidad de bits",
|
|
progressive: "Progresivo",
|
|
pages: "Páginas",
|
|
hasAlpha: "Tiene alfa",
|
|
hasProfile: "Tiene perfil",
|
|
hasExif: "Tiene EXIF",
|
|
hasIcc: "Tiene ICC",
|
|
hasXmp: "Tiene XMP",
|
|
readInfo: "Leer información",
|
|
reading: "Leyendo...",
|
|
channelStats: "Estadísticas de canal",
|
|
yes: "Sí",
|
|
no: "No",
|
|
na: "N/D",
|
|
failedToRead: "Error al leer la información",
|
|
},
|
|
compare: {
|
|
uploadSecondImage: "Subir segunda imagen",
|
|
similarity: "Similitud: {percent}%",
|
|
submit: "Comparar",
|
|
downloadDiff: "Descargar diferencia",
|
|
},
|
|
"find-duplicates": {
|
|
preset: "Preajuste",
|
|
exact: "Exacto",
|
|
similar: "Similares",
|
|
loose: "Amplio",
|
|
exactDesc: "Copias idénticas pixel por pixel, misma imagen en diferentes formatos.",
|
|
similarDesc: "Copias redimensionadas, recomprimidas o con ediciones leves.",
|
|
looseDesc: "Imágenes visualmente relacionadas, recortes leves, diferentes exposiciones.",
|
|
threshold: "Umbral",
|
|
submit: "Buscar duplicados",
|
|
scanning: "Escaneando...",
|
|
},
|
|
"color-palette": {
|
|
submit: "Extraer paleta",
|
|
extracting: "Extrayendo...",
|
|
dominantColors: "Colores dominantes",
|
|
clickToCopy: "Clic para copiar",
|
|
},
|
|
"qr-generate": {
|
|
contentType: "Tipo de contenido",
|
|
url: "URL",
|
|
text: "Texto",
|
|
wifi: "WiFi",
|
|
vcard: "vCard",
|
|
email: "Correo electrónico",
|
|
phone: "Teléfono",
|
|
sms: "SMS",
|
|
styling: "Estilo",
|
|
dotStyle: "Estilo de puntos",
|
|
cornerSquareStyle: "Estilo de esquina cuadrada",
|
|
cornerDotStyle: "Estilo de punto de esquina",
|
|
foregroundColor: "Color de primer plano",
|
|
bgColor: "Color de fondo",
|
|
logo: "Logo",
|
|
downloadFormat: "Formato de descarga",
|
|
submit: "Generar código QR",
|
|
download: "Descargar código QR",
|
|
},
|
|
"html-to-image": {
|
|
modeUrl: "URL",
|
|
modeHtml: "Archivo HTML",
|
|
htmlFile: "Archivo HTML",
|
|
url: "URL",
|
|
urlPlaceholder: "https://snapotter.com",
|
|
format: "Formato de salida",
|
|
quality: "Calidad",
|
|
devicePreset: "Dispositivo",
|
|
viewportWidth: "Ancho",
|
|
viewportHeight: "Alto",
|
|
fullPage: "Página completa",
|
|
submit: "Capturar",
|
|
download: "Descargar captura",
|
|
capturing: "Capturando página web...",
|
|
errorTimeout: "La página tardó demasiado en cargar",
|
|
errorBlocked: "No se puede capturar esta URL",
|
|
errorUnavailable: "El servicio de capturas no está disponible",
|
|
errorFailed: "Error al capturar la página",
|
|
placeholder: "Ingresa una URL y haz clic en Capturar",
|
|
presets: {
|
|
desktop: "Escritorio",
|
|
tablet: "Tableta",
|
|
mobile: "Móvil",
|
|
custom: "Personalizado",
|
|
},
|
|
},
|
|
"barcode-read": {
|
|
submit: "Escanear códigos de barras",
|
|
submitBatch: "Escanear ({count} archivos)",
|
|
scanning: "Escaneando...",
|
|
noBarcodesFound: "No se encontraron códigos de barras",
|
|
barcodesFound: "{count} código de barras encontrado",
|
|
barcodesFoundPlural: "{count} códigos de barras encontrados",
|
|
},
|
|
collage: {
|
|
template: "Plantilla",
|
|
aspectRatio: "Relación de aspecto",
|
|
gap: "Espacio",
|
|
cornerRadius: "Radio de esquina",
|
|
backgroundColor: "Color de fondo",
|
|
outputFormat: "Formato de salida",
|
|
quality: "Calidad",
|
|
submit: "Crear collage",
|
|
downloadCollage: "Descargar collage",
|
|
},
|
|
stitch: {
|
|
direction: "Dirección",
|
|
horizontal: "Horizontal",
|
|
vertical: "Vertical",
|
|
grid: "Cuadrícula",
|
|
gridColumns: "Columnas de cuadrícula",
|
|
resizeMode: "Modo de redimensión",
|
|
fit: "Ajustar",
|
|
original: "Original",
|
|
stretchMode: "Estirar",
|
|
cropMode: "Recortar",
|
|
alignment: "Alineación",
|
|
start: "Inicio",
|
|
center: "Centro",
|
|
end: "Fin",
|
|
gap: "Espacio",
|
|
border: "Borde",
|
|
cornerRadius: "Radio de esquina",
|
|
backgroundColor: "Color de fondo",
|
|
outputFormat: "Formato de salida",
|
|
quality: "Calidad",
|
|
submit: "Unir imágenes",
|
|
},
|
|
split: {
|
|
modeGrid: "Cuadrícula",
|
|
modeTileSize: "Tamaño de mosaico",
|
|
presets: "Preajustes",
|
|
columns: "Columnas",
|
|
rows: "Filas",
|
|
tileWidth: "Ancho del mosaico",
|
|
tileHeight: "Alto del mosaico",
|
|
outputFormat: "Formato de salida",
|
|
quality: "Calidad",
|
|
submit: "Dividir imagen",
|
|
downloadAll: "Descargar todo (ZIP)",
|
|
},
|
|
border: {
|
|
presets: "Preajustes",
|
|
borderWidth: "Ancho del borde",
|
|
borderColor: "Color del borde",
|
|
padding: "Relleno",
|
|
paddingColor: "Color del relleno",
|
|
cornerRadius: "Radio de esquina",
|
|
shadow: "Sombra",
|
|
shadowBlur: "Desenfoque de sombra",
|
|
shadowOffsetX: "Desplazamiento X de sombra",
|
|
shadowOffsetY: "Desplazamiento Y de sombra",
|
|
shadowColor: "Color de sombra",
|
|
shadowOpacity: "Opacidad de sombra",
|
|
submit: "Agregar borde",
|
|
submitBatch: "Agregar borde ({count} archivos)",
|
|
progressLabel: "Agregando borde",
|
|
},
|
|
beautify: {
|
|
preset: "Preajuste",
|
|
backgroundType: "Tipo de fondo",
|
|
solidColor: "Color sólido",
|
|
linearGradient: "Degradado lineal",
|
|
radialGradient: "Degradado radial",
|
|
customImage: "Imagen personalizada",
|
|
gradientAngle: "Ángulo del degradado",
|
|
padding: "Relleno",
|
|
borderRadius: "Radio de borde",
|
|
shadowPreset: "Preset de sombra",
|
|
deviceFrame: "Marco de dispositivo",
|
|
submit: "Embellecer",
|
|
submitBatch: "Embellecer ({count} archivos)",
|
|
progressLabel: "Embelleciendo captura de pantalla",
|
|
},
|
|
"circle-crop": {
|
|
submit: "Recorte circular",
|
|
submitBatch: "Recorte circular ({count} archivos)",
|
|
progressLabel: "Recortando en círculo",
|
|
},
|
|
duotone: {
|
|
shadow: "Color de sombra",
|
|
highlight: "Color de resalte",
|
|
submit: "Aplicar duotono",
|
|
submitBatch: "Aplicar duotono ({count} archivos)",
|
|
progressLabel: "Aplicando duotono",
|
|
},
|
|
"image-pad": {
|
|
target: "Proporción objetivo",
|
|
color: "Color de fondo",
|
|
submit: "Rellenar imagen",
|
|
submitBatch: "Rellenar imagen ({count} archivos)",
|
|
progressLabel: "Rellenando imagen",
|
|
},
|
|
pixelate: {
|
|
blockSize: "Tamaño de bloque",
|
|
submit: "Pixelar",
|
|
submitBatch: "Pixelar ({count} archivos)",
|
|
progressLabel: "Pixelando",
|
|
},
|
|
vignette: {
|
|
strength: "Intensidad",
|
|
color: "Color de viñeta",
|
|
submit: "Aplicar viñeta",
|
|
submitBatch: "Aplicar viñeta ({count} archivos)",
|
|
progressLabel: "Aplicando viñeta",
|
|
},
|
|
"gif-webp": {
|
|
submit: "Convertir",
|
|
submitBatch: "Convertir ({count} archivos)",
|
|
progressLabel: "Convirtiendo animación",
|
|
},
|
|
histogram: {
|
|
submit: "Generar histograma",
|
|
submitBatch: "Generar histograma ({count} archivos)",
|
|
progressLabel: "Generando histograma",
|
|
},
|
|
"lqip-placeholder": {
|
|
width: "Ancho",
|
|
blur: "Desenfoque",
|
|
submit: "Generar marcador",
|
|
submitBatch: "Generar marcador ({count} archivos)",
|
|
progressLabel: "Generando marcador",
|
|
},
|
|
"sprite-sheet": {
|
|
columns: "Columnas",
|
|
padding: "Espaciado",
|
|
background: "Color de fondo",
|
|
submit: "Crear hoja de sprites",
|
|
submitBatch: "Crear hoja de sprites",
|
|
progressLabel: "Creando hoja de sprites",
|
|
},
|
|
"svg-to-raster": {
|
|
outputFormat: "Formato de salida",
|
|
sizing: "Dimensionado",
|
|
scaleMode: "Escala",
|
|
customMode: "Personalizado",
|
|
scalePresets: "Presets de escala",
|
|
dpiPresets: "Presets de DPI",
|
|
customWidth: "Ancho (px)",
|
|
customHeight: "Alto (px)",
|
|
background: "Fondo",
|
|
bgTransparent: "Transparente",
|
|
bgColor: "Color",
|
|
quality: "Calidad",
|
|
submit: "Convertir SVG",
|
|
submitBatch: "Convertir ({count} archivos)",
|
|
progressLabel: "Convirtiendo SVG",
|
|
},
|
|
vectorize: {
|
|
preset: "Preajuste",
|
|
logo: "Logo",
|
|
illustration: "Ilustración",
|
|
photo: "Foto",
|
|
sketch: "Boceto",
|
|
customPreset: "Personalizado",
|
|
colorMode: "Modo de color",
|
|
bw: "B&N",
|
|
colorModeColor: "Color",
|
|
threshold: "Umbral",
|
|
colorPrecision: "Precisión de color",
|
|
layerDifference: "Diferencia de capas",
|
|
filterSpeckle: "Filtrar manchas",
|
|
pathMode: "Modo de trazo",
|
|
cornerThreshold: "Umbral de esquina",
|
|
invertColors: "Invertir colores",
|
|
submit: "Vectorizar",
|
|
submitBatch: "Vectorizar ({count} archivos)",
|
|
progressLabel: "Vectorizando",
|
|
},
|
|
"gif-tools": {
|
|
mode: "Modo",
|
|
resize: "Redimensionar",
|
|
optimize: "Optimizar",
|
|
speed: "Velocidad",
|
|
reverse: "Invertir",
|
|
extract: "Extraer",
|
|
rotateMode: "Rotar",
|
|
pixel: "Píxel",
|
|
percentage: "Porcentaje",
|
|
colors: "Colores",
|
|
dither: "Difuminado",
|
|
effort: "Esfuerzo",
|
|
speedFactor: "Factor de velocidad",
|
|
loopControl: "Control de bucle",
|
|
infinite: "Infinito",
|
|
once: "Una vez",
|
|
customLoop: "Personalizado",
|
|
loopCount: "Cantidad de bucles",
|
|
extractSingle: "Individual",
|
|
extractRange: "Rango",
|
|
extractAll: "Todos",
|
|
frameNumber: "Número de fotograma",
|
|
frameStart: "Fotograma inicial",
|
|
frameEnd: "Fotograma final",
|
|
extractFormat: "Formato",
|
|
submit: "Procesar GIF",
|
|
submitBatch: "Procesar ({count} archivos)",
|
|
progressLabel: "Procesando GIF",
|
|
},
|
|
"image-to-base64": {
|
|
outputFormat: "Formato de salida",
|
|
keepOriginal: "Mantener original",
|
|
quality: "Calidad",
|
|
maxWidth: "Ancho máximo",
|
|
maxHeight: "Alto máximo",
|
|
submit: "Convertir a Base64",
|
|
submitBatch: "Convertir ({count} archivos)",
|
|
copyBase64: "Copiar Base64",
|
|
copyDataUri: "Copiar Data URI",
|
|
copyImgTag: "Copiar etiqueta <img>",
|
|
copyCssUrl: "Copiar CSS url()",
|
|
},
|
|
"barcode-generate": {
|
|
text: "Texto",
|
|
type: "Tipo de código de barras",
|
|
scale: "Escala",
|
|
includeText: "Incluir texto",
|
|
submit: "Generar código de barras",
|
|
download: "Descargar código de barras",
|
|
},
|
|
"chart-maker": {
|
|
kind: "Tipo de gráfico",
|
|
title: "Título",
|
|
width: "Ancho",
|
|
height: "Alto",
|
|
submit: "Crear gráfico",
|
|
submitBatch: "Crear gráfico ({count} archivos)",
|
|
progressLabel: "Creando gráfico",
|
|
},
|
|
"enhance-faces-standalone": {
|
|
model: "Modelo",
|
|
fast: "Rápido",
|
|
balanced: "Equilibrado",
|
|
best: "Mejor",
|
|
},
|
|
"convert-video": {
|
|
format: "Formato de salida",
|
|
quality: "Calidad",
|
|
high: "Alta",
|
|
balanced: "Equilibrada",
|
|
small: "Mínimo",
|
|
submit: "Convertir",
|
|
submitBatch: "Convertir ({count} archivos)",
|
|
progressLabel: "Convirtiendo",
|
|
},
|
|
"compress-video": {
|
|
quality: "Compresión",
|
|
light: "Ligera",
|
|
balanced: "Equilibrada",
|
|
strong: "Fuerte",
|
|
resolution: "Resolución",
|
|
original: "Original",
|
|
submit: "Comprimir",
|
|
submitBatch: "Comprimir ({count} archivos)",
|
|
progressLabel: "Comprimiendo",
|
|
},
|
|
"trim-video": {
|
|
start: "Inicio (segundos)",
|
|
end: "Fin (segundos)",
|
|
precise: "Preciso por fotograma (recodifica)",
|
|
submit: "Recortar",
|
|
submitBatch: "Recortar ({count} archivos)",
|
|
progressLabel: "Recortando",
|
|
},
|
|
"mute-video": {
|
|
submit: "Eliminar audio",
|
|
submitBatch: "Eliminar audio ({count} archivos)",
|
|
progressLabel: "Silenciando",
|
|
},
|
|
"video-to-gif": {
|
|
fps: "Fotogramas por segundo",
|
|
width: "Ancho (px)",
|
|
start: "Inicio (segundos)",
|
|
duration: "Duración (segundos)",
|
|
submit: "Crear GIF",
|
|
submitBatch: "Crear GIFs ({count} archivos)",
|
|
progressLabel: "Creando GIF",
|
|
},
|
|
"resize-video": {
|
|
preset: "Preajuste",
|
|
width: "Ancho (px)",
|
|
height: "Alto (px)",
|
|
hint: "Deja una dimensión vacía para mantener la proporción",
|
|
submit: "Redimensionar",
|
|
submitBatch: "Redimensionar ({count} archivos)",
|
|
progressLabel: "Redimensionando",
|
|
},
|
|
"crop-video": {
|
|
width: "Ancho (px)",
|
|
height: "Alto (px)",
|
|
x: "Desplazamiento X",
|
|
y: "Desplazamiento Y",
|
|
submit: "Recortar",
|
|
submitBatch: "Recortar ({count} archivos)",
|
|
progressLabel: "Recortando",
|
|
},
|
|
"rotate-video": {
|
|
transform: "Transformación",
|
|
cw90: "Rotar 90° en sentido horario",
|
|
ccw90: "Rotar 90° en sentido antihorario",
|
|
rotate180: "Rotar 180°",
|
|
hflip: "Voltear horizontalmente",
|
|
vflip: "Voltear verticalmente",
|
|
submit: "Rotar",
|
|
submitBatch: "Rotar ({count} archivos)",
|
|
progressLabel: "Rotando",
|
|
},
|
|
"change-fps": {
|
|
fps: "Fotogramas por segundo",
|
|
submit: "Cambiar FPS",
|
|
submitBatch: "Cambiar FPS ({count} archivos)",
|
|
progressLabel: "Cambiando FPS",
|
|
},
|
|
"video-color": {
|
|
brightness: "Brillo",
|
|
contrast: "Contraste",
|
|
saturation: "Saturación",
|
|
gamma: "Gamma",
|
|
submit: "Aplicar",
|
|
submitBatch: "Aplicar ({count} archivos)",
|
|
progressLabel: "Ajustando color",
|
|
},
|
|
"video-speed": {
|
|
factor: "Factor de velocidad",
|
|
keepPitch: "Mantener tono original",
|
|
submit: "Cambiar velocidad",
|
|
submitBatch: "Cambiar velocidad ({count} archivos)",
|
|
progressLabel: "Cambiando velocidad",
|
|
},
|
|
"reverse-video": {
|
|
hint: "Limitado a clips de hasta 5 minutos",
|
|
submit: "Invertir",
|
|
submitBatch: "Invertir ({count} archivos)",
|
|
progressLabel: "Invirtiendo",
|
|
},
|
|
"video-loudnorm": {
|
|
hint: "Normaliza el audio al estándar de transmisión EBU R128",
|
|
submit: "Normalizar",
|
|
submitBatch: "Normalizar ({count} archivos)",
|
|
progressLabel: "Normalizando",
|
|
},
|
|
"aspect-pad": {
|
|
target: "Proporción objetivo",
|
|
color: "Color de fondo",
|
|
colorHint: "Color hexadecimal, ej. #000000",
|
|
submit: "Rellenar",
|
|
submitBatch: "Rellenar ({count} archivos)",
|
|
progressLabel: "Rellenando",
|
|
},
|
|
"blur-pad": {
|
|
target: "Proporción objetivo",
|
|
blur: "Intensidad de desenfoque",
|
|
submit: "Rellenar",
|
|
submitBatch: "Rellenar ({count} archivos)",
|
|
progressLabel: "Rellenando",
|
|
},
|
|
"watermark-video": {
|
|
text: "Texto de marca de agua",
|
|
position: "Posición",
|
|
fontSize: "Tamaño de fuente",
|
|
opacity: "Opacidad",
|
|
color: "Color",
|
|
colorHint: "Color hexadecimal, ej. #ffffff",
|
|
submit: "Marca de agua",
|
|
submitBatch: "Marca de agua ({count} archivos)",
|
|
progressLabel: "Aplicando marca de agua",
|
|
},
|
|
"stabilize-video": {
|
|
smoothing: "Suavizado",
|
|
hint: "Ejecuta dos pasadas y tarda más que la mayoría de herramientas",
|
|
submit: "Estabilizar",
|
|
submitBatch: "Estabilizar ({count} archivos)",
|
|
progressLabel: "Estabilizando",
|
|
},
|
|
"gif-to-video": {
|
|
format: "Formato de salida",
|
|
submit: "Convertir",
|
|
submitBatch: "Convertir ({count} archivos)",
|
|
progressLabel: "Convirtiendo",
|
|
},
|
|
"video-to-webp": {
|
|
fps: "Fotogramas por segundo",
|
|
width: "Ancho (px)",
|
|
quality: "Calidad",
|
|
loop: "Repetir animación",
|
|
submit: "Convertir",
|
|
submitBatch: "Convertir ({count} archivos)",
|
|
progressLabel: "Convirtiendo",
|
|
},
|
|
"video-to-frames": {
|
|
mode: "Modo de extracción",
|
|
modeAll: "Todos los fotogramas",
|
|
modeNth: "Cada N fotogramas",
|
|
modeTimestamps: "Marcas de tiempo específicas",
|
|
n: "Tomar cada N fotogramas",
|
|
timestamps: "Marcas de tiempo (segundos)",
|
|
timestampsHint: "Separados por comas, ej. 0.5, 2, 4.5",
|
|
format: "Formato de imagen",
|
|
submit: "Extraer fotogramas",
|
|
submitBatch: "Extraer fotogramas ({count} archivos)",
|
|
progressLabel: "Extrayendo fotogramas",
|
|
},
|
|
"merge-videos": {
|
|
hint: "Los archivos se unen en el orden de subida",
|
|
submit: "Fusionar",
|
|
submitBatch: "Fusionar ({count} archivos)",
|
|
progressLabel: "Fusionando",
|
|
},
|
|
"replace-audio": {
|
|
hint: "Sube primero el video y luego el audio",
|
|
submit: "Reemplazar audio",
|
|
submitBatch: "Reemplazar audio ({count} archivos)",
|
|
progressLabel: "Reemplazando audio",
|
|
},
|
|
"burn-subtitles": {
|
|
fontSize: "Tamaño de fuente",
|
|
hint: "Sube un video y un archivo de subtítulos (.srt o .vtt)",
|
|
submit: "Incrustar subtítulos",
|
|
submitBatch: "Incrustar subtítulos ({count} archivos)",
|
|
progressLabel: "Incrustando subtítulos",
|
|
},
|
|
"embed-subtitles": {
|
|
language: "Código de idioma",
|
|
languageHint: "Código ISO 639-2 de tres letras, ej. eng, spa, fra",
|
|
submit: "Insertar subtítulos",
|
|
submitBatch: "Insertar subtítulos ({count} archivos)",
|
|
progressLabel: "Insertando subtítulos",
|
|
},
|
|
"extract-subtitles": {
|
|
submit: "Extraer subtítulos",
|
|
submitBatch: "Extraer subtítulos ({count} archivos)",
|
|
progressLabel: "Extrayendo subtítulos",
|
|
},
|
|
"images-to-video": {
|
|
secondsPerImage: "Segundos por imagen",
|
|
resolution: "Resolución",
|
|
fps: "Fotogramas por segundo",
|
|
submit: "Crear video",
|
|
submitBatch: "Crear video ({count} archivos)",
|
|
progressLabel: "Creando presentación",
|
|
},
|
|
"video-metadata": {
|
|
hint: "El informe de metadatos aparece en el resultado",
|
|
submit: "Eliminar metadatos",
|
|
submitBatch: "Eliminar metadatos ({count} archivos)",
|
|
progressLabel: "Eliminando metadatos",
|
|
},
|
|
"convert-audio": {
|
|
format: "Formato de salida",
|
|
bitrate: "Tasa de bits (kbps)",
|
|
submit: "Convertir",
|
|
submitBatch: "Convertir ({count} archivos)",
|
|
progressLabel: "Convirtiendo",
|
|
},
|
|
"trim-audio": {
|
|
start: "Inicio (segundos)",
|
|
end: "Fin (segundos)",
|
|
submit: "Recortar",
|
|
submitBatch: "Recortar ({count} archivos)",
|
|
progressLabel: "Recortando",
|
|
},
|
|
"extract-audio": {
|
|
format: "Formato de salida",
|
|
submit: "Extraer",
|
|
submitBatch: "Extraer ({count} archivos)",
|
|
progressLabel: "Extrayendo",
|
|
},
|
|
"volume-adjust": {
|
|
"gain-db": "Ganancia (dB)",
|
|
submit: "Ajustar volumen",
|
|
submitBatch: "Ajustar volumen ({count} archivos)",
|
|
progressLabel: "Ajustando volumen",
|
|
},
|
|
"normalize-audio": {
|
|
hint: "Normalización de sonoridad EBU R128",
|
|
submit: "Normalizar",
|
|
submitBatch: "Normalizar ({count} archivos)",
|
|
progressLabel: "Normalizando",
|
|
},
|
|
"fade-audio": {
|
|
"fade-in-s": "Fundido de entrada (segundos)",
|
|
"fade-out-s": "Fundido de salida (segundos)",
|
|
submit: "Aplicar fundido",
|
|
submitBatch: "Aplicar fundido ({count} archivos)",
|
|
progressLabel: "Aplicando fundido",
|
|
},
|
|
"reverse-audio": {
|
|
submit: "Invertir",
|
|
submitBatch: "Invertir ({count} archivos)",
|
|
progressLabel: "Invirtiendo",
|
|
},
|
|
"audio-speed": {
|
|
factor: "Factor de velocidad",
|
|
submit: "Cambiar velocidad",
|
|
submitBatch: "Cambiar velocidad ({count} archivos)",
|
|
progressLabel: "Cambiando velocidad",
|
|
},
|
|
"pitch-shift": {
|
|
semitones: "Semitonos",
|
|
hint: "No se permite 0 semitonos",
|
|
submit: "Cambiar tono",
|
|
submitBatch: "Cambiar tono ({count} archivos)",
|
|
progressLabel: "Cambiando tono",
|
|
},
|
|
"audio-channels": {
|
|
mode: "Modo de canal",
|
|
"stereo-to-mono": "Estéreo a mono",
|
|
"mono-to-stereo": "Mono a estéreo",
|
|
swap: "Intercambiar izquierda/derecha",
|
|
submit: "Convertir canales",
|
|
submitBatch: "Convertir canales ({count} archivos)",
|
|
progressLabel: "Convirtiendo canales",
|
|
},
|
|
"silence-removal": {
|
|
"threshold-db": "Umbral de silencio (dB)",
|
|
"min-silence-s": "Duración mínima de silencio (segundos)",
|
|
submit: "Eliminar silencio",
|
|
submitBatch: "Eliminar silencio ({count} archivos)",
|
|
progressLabel: "Eliminando silencio",
|
|
},
|
|
"noise-reduction": {
|
|
strength: "Intensidad",
|
|
light: "Ligera",
|
|
medium: "Media",
|
|
strong: "Fuerte",
|
|
submit: "Reducir ruido",
|
|
submitBatch: "Reducir ruido ({count} archivos)",
|
|
progressLabel: "Reduciendo ruido",
|
|
},
|
|
"merge-audio": {
|
|
format: "Formato de salida",
|
|
mp3: "MP3",
|
|
wav: "WAV",
|
|
flac: "FLAC",
|
|
m4a: "M4A",
|
|
"order-hint": "Los archivos se unirán en el orden de carga",
|
|
submit: "Combinar audio",
|
|
submitBatch: "Combinar audio ({count} archivos)",
|
|
progressLabel: "Combinando audio",
|
|
},
|
|
"split-audio": {
|
|
mode: "Modo de división",
|
|
time: "Por tiempo",
|
|
parts: "Partes iguales",
|
|
silence: "Por silencio",
|
|
"segment-s": "Duración del segmento (segundos)",
|
|
"num-parts": "Número de partes",
|
|
"threshold-db": "Umbral de silencio (dB)",
|
|
"min-silence-s": "Duración mínima de silencio (segundos)",
|
|
submit: "Dividir audio",
|
|
submitBatch: "Dividir audio ({count} archivos)",
|
|
progressLabel: "Dividiendo audio",
|
|
},
|
|
"ringtone-maker": {
|
|
"start-s": "Tiempo de inicio (segundos)",
|
|
"duration-s": "Duración (segundos)",
|
|
"max-hint": "Máximo 30 segundos",
|
|
submit: "Crear tono de llamada",
|
|
submitBatch: "Crear tono de llamada ({count} archivos)",
|
|
progressLabel: "Creando tono de llamada",
|
|
},
|
|
"waveform-image": {
|
|
width: "Ancho (px)",
|
|
height: "Alto (px)",
|
|
color: "Color de la onda",
|
|
submit: "Generar forma de onda",
|
|
submitBatch: "Generar forma de onda ({count} archivos)",
|
|
progressLabel: "Generando forma de onda",
|
|
},
|
|
"audio-metadata": {
|
|
strip: "Eliminar todos los metadatos",
|
|
title: "Título",
|
|
artist: "Artista",
|
|
album: "Álbum",
|
|
submit: "Aplicar metadatos",
|
|
submitBatch: "Aplicar metadatos ({count} archivos)",
|
|
progressLabel: "Aplicando metadatos",
|
|
},
|
|
"merge-pdf": {
|
|
addFiles: "Agregar PDF para combinar",
|
|
needTwo: "Se requieren al menos dos PDF",
|
|
orderHint: "{count} PDF se combinarán en este orden",
|
|
submit: "Combinar",
|
|
submitBatch: "Combinar ({count} archivos)",
|
|
progressLabel: "Combinando",
|
|
},
|
|
"split-pdf": {
|
|
mode: "Modo de división",
|
|
range: "Rango de páginas",
|
|
rangeHint: "ej. 1-3, 5, 7-z",
|
|
everyN: "Páginas por parte",
|
|
submit: "Dividir",
|
|
submitBatch: "Dividir ({count} archivos)",
|
|
progressLabel: "Dividiendo",
|
|
},
|
|
"compress-pdf": {
|
|
preset: "Preajuste de calidad",
|
|
screen: "Pantalla (más pequeño)",
|
|
ebook: "Ebook (equilibrado)",
|
|
printer: "Impresora (mejor calidad)",
|
|
submit: "Comprimir",
|
|
submitBatch: "Comprimir ({count} archivos)",
|
|
progressLabel: "Comprimiendo",
|
|
},
|
|
"rotate-pdf": {
|
|
angle: "Ángulo de rotación",
|
|
range: "Rango de páginas",
|
|
rangeHint: "ej. 1-3, 5, 1-z (todas las páginas)",
|
|
submit: "Rotar",
|
|
submitBatch: "Rotar ({count} archivos)",
|
|
progressLabel: "Rotando",
|
|
},
|
|
"convert-document": {
|
|
format: "Formato de salida",
|
|
submit: "Convertir",
|
|
submitBatch: "Convertir ({count} archivos)",
|
|
progressLabel: "Convirtiendo",
|
|
},
|
|
"convert-presentation": {
|
|
format: "Formato de salida",
|
|
submit: "Convertir",
|
|
submitBatch: "Convertir ({count} archivos)",
|
|
progressLabel: "Convirtiendo",
|
|
},
|
|
"convert-spreadsheet": {
|
|
format: "Formato de salida",
|
|
hint: "Los libros con varias hojas exportan solo la primera hoja a CSV.",
|
|
submit: "Convertir",
|
|
submitBatch: "Convertir ({count} archivos)",
|
|
progressLabel: "Convirtiendo",
|
|
},
|
|
"excel-to-pdf": {
|
|
submit: "Convertir a PDF",
|
|
submitBatch: "Convertir ({count} archivos)",
|
|
progressLabel: "Convirtiendo",
|
|
},
|
|
"powerpoint-to-pdf": {
|
|
submit: "Convertir a PDF",
|
|
submitBatch: "Convertir ({count} archivos)",
|
|
progressLabel: "Convirtiendo",
|
|
},
|
|
"word-to-pdf": {
|
|
submit: "Convertir a PDF",
|
|
submitBatch: "Convertir ({count} archivos)",
|
|
progressLabel: "Convirtiendo",
|
|
},
|
|
"extract-pages": {
|
|
range: "Rango de páginas",
|
|
rangeHint: "ej. 1-3, 5, 7-z",
|
|
submit: "Extraer",
|
|
submitBatch: "Extraer ({count} archivos)",
|
|
progressLabel: "Extrayendo",
|
|
},
|
|
"remove-pages": {
|
|
pages: "Páginas a eliminar",
|
|
pagesHint: "ej. 2, 4-6, z (última página)",
|
|
submit: "Eliminar",
|
|
submitBatch: "Eliminar ({count} archivos)",
|
|
progressLabel: "Eliminando",
|
|
},
|
|
"organize-pdf": {
|
|
order: "Orden de páginas",
|
|
orderHint: "ej. 3,1,2 o 1-z (sin cambios)",
|
|
submit: "Reordenar",
|
|
submitBatch: "Reordenar ({count} archivos)",
|
|
progressLabel: "Reordenando",
|
|
},
|
|
"protect-pdf": {
|
|
userPassword: "Contraseña de usuario",
|
|
ownerPassword: "Contraseña del propietario (opcional)",
|
|
ownerPasswordHint: "Se usa la contraseña de usuario si se deja vacío",
|
|
submit: "Proteger",
|
|
submitBatch: "Proteger ({count} archivos)",
|
|
progressLabel: "Cifrando",
|
|
},
|
|
"unlock-pdf": {
|
|
password: "Contraseña",
|
|
submit: "Desbloquear",
|
|
submitBatch: "Desbloquear ({count} archivos)",
|
|
progressLabel: "Descifrando",
|
|
},
|
|
"repair-pdf": {
|
|
submit: "Reparar",
|
|
submitBatch: "Reparar ({count} archivos)",
|
|
progressLabel: "Reparando",
|
|
},
|
|
"linearize-pdf": {
|
|
submit: "Optimizar",
|
|
submitBatch: "Optimizar ({count} archivos)",
|
|
progressLabel: "Linealizando",
|
|
},
|
|
"grayscale-pdf": {
|
|
submit: "Convertir",
|
|
submitBatch: "Convertir ({count} archivos)",
|
|
progressLabel: "Convirtiendo",
|
|
},
|
|
"pdfa-convert": {
|
|
submit: "Convertir",
|
|
submitBatch: "Convertir ({count} archivos)",
|
|
progressLabel: "Convirtiendo",
|
|
},
|
|
"crop-pdf": {
|
|
margin: "Margen (puntos)",
|
|
submit: "Recortar",
|
|
submitBatch: "Recortar ({count} archivos)",
|
|
progressLabel: "Recortando",
|
|
},
|
|
"nup-pdf": {
|
|
perSheet: "Páginas por hoja",
|
|
submit: "Organizar",
|
|
submitBatch: "Organizar ({count} archivos)",
|
|
progressLabel: "Organizando",
|
|
},
|
|
"booklet-pdf": {
|
|
perSheet: "Páginas por hoja",
|
|
submit: "Crear cuadernillo",
|
|
submitBatch: "Crear cuadernillo ({count} archivos)",
|
|
progressLabel: "Creando cuadernillo",
|
|
},
|
|
"watermark-pdf": {
|
|
text: "Texto de marca de agua",
|
|
position: "Posición",
|
|
fontSize: "Tamaño de fuente",
|
|
opacity: "Opacidad",
|
|
rotation: "Rotación",
|
|
submit: "Marca de agua",
|
|
submitBatch: "Marca de agua ({count} archivos)",
|
|
progressLabel: "Aplicando marca de agua",
|
|
},
|
|
"pdf-page-numbers": {
|
|
position: "Posición",
|
|
fontSize: "Tamaño de fuente",
|
|
submit: "Agregar números",
|
|
submitBatch: "Agregar números ({count} archivos)",
|
|
progressLabel: "Numerando",
|
|
},
|
|
"flatten-pdf": {
|
|
submit: "Aplanar",
|
|
submitBatch: "Aplanar ({count} archivos)",
|
|
progressLabel: "Aplanando",
|
|
},
|
|
"redact-pdf": {
|
|
terms: "Términos a censurar",
|
|
termsHint: "Un término por línea (máx. 50)",
|
|
caseSensitive: "Distinguir mayúsculas",
|
|
submit: "Censurar",
|
|
submitBatch: "Censurar ({count} archivos)",
|
|
progressLabel: "Censurando",
|
|
},
|
|
"pdf-to-text": {
|
|
submit: "Extraer texto",
|
|
submitBatch: "Extraer texto ({count} archivos)",
|
|
progressLabel: "Extrayendo",
|
|
},
|
|
"pdf-to-word": {
|
|
hint: "Ideal para PDF con texto; las páginas escaneadas requieren OCR",
|
|
submit: "Convertir a Word",
|
|
submitBatch: "Convertir a Word ({count} archivos)",
|
|
progressLabel: "Convirtiendo",
|
|
},
|
|
"pdf-metadata": {
|
|
title: "Título",
|
|
author: "Autor",
|
|
subject: "Asunto",
|
|
keywords: "Palabras clave",
|
|
submit: "Definir metadatos",
|
|
submitBatch: "Definir metadatos ({count} archivos)",
|
|
progressLabel: "Configurando metadatos",
|
|
},
|
|
"html-to-pdf": {
|
|
hint: "Los recursos remotos están deshabilitados por privacidad.",
|
|
submit: "Convertir a PDF",
|
|
submitBatch: "Convertir a PDF ({count} archivos)",
|
|
progressLabel: "Convirtiendo",
|
|
},
|
|
"markdown-to-docx": {
|
|
submit: "Convertir a DOCX",
|
|
submitBatch: "Convertir ({count} archivos)",
|
|
progressLabel: "Convirtiendo",
|
|
},
|
|
"markdown-to-html": {
|
|
hint: "Las imágenes remotas del origen se mantienen tal cual en la salida.",
|
|
submit: "Convertir a HTML",
|
|
submitBatch: "Convertir ({count} archivos)",
|
|
progressLabel: "Convirtiendo",
|
|
},
|
|
"markdown-to-pdf": {
|
|
hint: "Los recursos remotos están deshabilitados por privacidad.",
|
|
submit: "Convertir a PDF",
|
|
submitBatch: "Convertir a PDF ({count} archivos)",
|
|
progressLabel: "Convirtiendo",
|
|
},
|
|
"epub-convert": {
|
|
format: "Formato de salida",
|
|
hint: "No se descargan los recursos remotos del libro.",
|
|
submit: "Convertir",
|
|
submitBatch: "Convertir ({count} archivos)",
|
|
progressLabel: "Convirtiendo",
|
|
},
|
|
"to-epub": {
|
|
submit: "Convertir a EPUB",
|
|
submitBatch: "Convertir ({count} archivos)",
|
|
progressLabel: "Convirtiendo",
|
|
},
|
|
"csv-excel": {
|
|
sheet: "Número de hoja",
|
|
submit: "Convertir",
|
|
submitBatch: "Convertir ({count} archivos)",
|
|
progressLabel: "Convirtiendo",
|
|
},
|
|
"csv-json": {
|
|
pretty: "Formato legible",
|
|
submit: "Convertir",
|
|
submitBatch: "Convertir ({count} archivos)",
|
|
progressLabel: "Convirtiendo",
|
|
},
|
|
"json-xml": {
|
|
pretty: "Formato legible",
|
|
submit: "Convertir",
|
|
submitBatch: "Convertir ({count} archivos)",
|
|
progressLabel: "Convirtiendo",
|
|
},
|
|
"split-csv": {
|
|
rowsPerFile: "Filas por archivo",
|
|
keepHeader: "Mantener encabezado en cada archivo",
|
|
submit: "Dividir",
|
|
submitBatch: "Dividir ({count} archivos)",
|
|
progressLabel: "Dividiendo",
|
|
},
|
|
"merge-csvs": {
|
|
submit: "Combinar",
|
|
submitBatch: "Combinar ({count} archivos)",
|
|
progressLabel: "Combinando",
|
|
},
|
|
"yaml-json": {
|
|
submit: "Convertir",
|
|
submitBatch: "Convertir ({count} archivos)",
|
|
progressLabel: "Convirtiendo",
|
|
},
|
|
"xml-to-csv": {
|
|
submit: "Convertir",
|
|
submitBatch: "Convertir ({count} archivos)",
|
|
progressLabel: "Convirtiendo",
|
|
},
|
|
"create-zip": {
|
|
submit: "Crear ZIP",
|
|
submitBatch: "Crear ZIP ({count} archivos)",
|
|
progressLabel: "Comprimiendo",
|
|
},
|
|
"extract-zip": {
|
|
submit: "Extraer",
|
|
submitBatch: "Extraer ({count} archivos)",
|
|
progressLabel: "Extrayendo",
|
|
},
|
|
},
|
|
urlImport: {
|
|
title: "Importar desde URLs",
|
|
placeholder: "Pega URLs de imágenes, una por línea...",
|
|
importButton: "Importar URLs",
|
|
addButton: "Agregar {count} archivos",
|
|
adding: "Agregando...",
|
|
retryButton: "Reintentar",
|
|
cancelButton: "Cancelar",
|
|
readyCount: "{count} listos",
|
|
failedStatus: "Error",
|
|
},
|
|
comparison: {
|
|
original: "Original",
|
|
processed: "Procesado",
|
|
before: "Antes",
|
|
after: "Después",
|
|
savings: "Ahorro",
|
|
},
|
|
toolPage: {
|
|
emptyPrompt: "Arrastra o sube una imagen para comenzar",
|
|
filesCount: "Archivos ({count})",
|
|
addMore: "+ Agregar más",
|
|
clearAll: "Limpiar todo",
|
|
acceptDescription: "Solo archivos {exts}",
|
|
notFound: "Herramienta no encontrada",
|
|
configureAndGenerate: "Configura los ajustes y genera.",
|
|
processingFailed: "Error al procesar este archivo",
|
|
conversionComplete: "Conversión completada",
|
|
cannotPreviewDownload:
|
|
"Los archivos {type} no se pueden previsualizar en el navegador. Usa el botón de descarga para guardar tu archivo.",
|
|
generatingPreview: "Generando vista previa...",
|
|
cannotPreviewWillProcess:
|
|
"Los archivos {ext} no se pueden previsualizar en el navegador. La herramienta procesará este archivo normalmente.",
|
|
previousImage: "Archivo anterior",
|
|
nextImage: "Siguiente archivo",
|
|
imageCounter: "{current} / {total}",
|
|
settingsLabel: "Configuración",
|
|
downloadAllZip: "Descargar todo (ZIP)",
|
|
hideSettings: "Ocultar configuración",
|
|
imageArea: "Área de vista previa",
|
|
disabledByAdmin: "Esta herramienta ha sido desactivada por el administrador",
|
|
browseOtherTools: "Explorar otras herramientas",
|
|
privacyNote: "Los archivos se procesan en tu servidor y nunca salen de tu red",
|
|
applyAndDownload: "Aplicar y descargar",
|
|
andMore: "y {count} más",
|
|
importFromFiles: "Importar desde Archivos",
|
|
saveToFiles: "Guardar en Archivos",
|
|
savedToFiles: "Guardado en Archivos",
|
|
adjustSettings: "Ajustar configuración",
|
|
startOver: "Empezar de nuevo con un archivo nuevo",
|
|
newFile: "Nuevo archivo",
|
|
previewUnavailable: "La vista previa estará disponible después del procesamiento",
|
|
generatePreview: "Generar vista previa",
|
|
previewFailed: "Error al generar la vista previa",
|
|
backToTools: "Volver a herramientas",
|
|
original: "Original",
|
|
processed: "Procesado",
|
|
saved: "Guardado",
|
|
noChange: "sin cambios",
|
|
download: "Descargar",
|
|
settingsSaved: "Tu configuración se ha guardado.",
|
|
tryAgain: "Reintentar",
|
|
tryDifferentFile: "Probar con otro archivo",
|
|
batchPartialSuccess: "{success} de {total} procesados. {failed} fallaron.",
|
|
dataResultsHint:
|
|
"Resultados mostrados arriba. Usa el botón de copiar en el panel de resultados.",
|
|
downloadAsFile: "Descargar como archivo",
|
|
downloadAll: "Descargar todo",
|
|
downloadFiles: "Descargar {count} archivos",
|
|
audioDecodeUnsupported: "Este formato de audio no se puede previsualizar en el navegador",
|
|
},
|
|
homePage: {
|
|
generatingPreview: "Generando vista previa...",
|
|
loadingPreview: "Cargando vista previa...",
|
|
changeFile: "Cambiar archivo",
|
|
quickActions: "Acciones rápidas",
|
|
allTools: "Todas las herramientas",
|
|
searchPlaceholder: "Buscar en {count} herramientas...",
|
|
recent: "Recientes",
|
|
popular: "Popular",
|
|
browseByCategory: "Explorar por categoría",
|
|
gettingStarted: "Primeros pasos",
|
|
noToolsMatch: "Ninguna herramienta coincide con '{query}'",
|
|
clearSearch: "Borrar búsqueda",
|
|
all: "Todas",
|
|
documents: "PDF",
|
|
data: "Archivos",
|
|
pdf: "PDF",
|
|
files: "Archivos",
|
|
toolCount: "{count} herramientas",
|
|
heading: "Herramientas de SnapOtter",
|
|
},
|
|
fullscreenGrid: {
|
|
searchPlaceholder: "Buscar herramientas...",
|
|
hideDetails: "Ocultar detalles",
|
|
showDetails: "Mostrar detalles",
|
|
switchToSidebar: "Cambiar a vista de barra lateral",
|
|
sidebarButton: "Barra lateral",
|
|
noToolsFound: "No se encontraron herramientas",
|
|
tryDifferent: "Intenta con un término de búsqueda diferente",
|
|
},
|
|
editor: {
|
|
menu: {
|
|
file: {
|
|
label: "Archivo",
|
|
new: "Nuevo",
|
|
open: "Abrir",
|
|
save: "Guardar",
|
|
exportAs: "Exportar como...",
|
|
quickExportPng: "Exportación rápida como PNG",
|
|
close: "Cerrar",
|
|
},
|
|
edit: {
|
|
label: "Editar",
|
|
undo: "Deshacer",
|
|
redo: "Rehacer",
|
|
cut: "Cortar",
|
|
copy: "Copiar",
|
|
copyMerged: "Copiar combinado",
|
|
paste: "Pegar",
|
|
pasteInPlace: "Pegar en su lugar",
|
|
delete: "Eliminar",
|
|
freeTransform: "Transformar libremente",
|
|
transform: {
|
|
label: "Transformar",
|
|
scale: "Escalar",
|
|
rotate: "Rotar",
|
|
skew: "Sesgar",
|
|
flipHorizontal: "Voltear horizontal",
|
|
flipVertical: "Voltear vertical",
|
|
},
|
|
},
|
|
image: {
|
|
label: "Imagen",
|
|
imageSize: "Tamaño de imagen...",
|
|
canvasSize: "Tamaño de lienzo...",
|
|
rotation: {
|
|
label: "Rotación de imagen",
|
|
cw90: "90 en sentido horario",
|
|
ccw90: "90 en sentido antihorario",
|
|
r180: "180",
|
|
flipHorizontal: "Voltear horizontal",
|
|
flipVertical: "Voltear vertical",
|
|
},
|
|
trim: "Recortar",
|
|
adjustments: {
|
|
label: "Ajustes",
|
|
brightnessContrast: "Brillo/Contraste",
|
|
hueSaturation: "Matiz/Saturación",
|
|
colorBalance: "Balance de color",
|
|
levels: "Niveles",
|
|
curves: "Curvas",
|
|
},
|
|
},
|
|
layer: {
|
|
label: "Capa",
|
|
newLayer: "Nueva capa",
|
|
duplicateLayer: "Duplicar capa",
|
|
deleteLayer: "Eliminar capa",
|
|
arrange: {
|
|
label: "Ordenar",
|
|
bringToFront: "Traer al frente",
|
|
bringForward: "Traer adelante",
|
|
sendBackward: "Enviar atrás",
|
|
sendToBack: "Enviar al fondo",
|
|
},
|
|
mergeDown: "Combinar hacia abajo",
|
|
flattenImage: "Aplanar imagen",
|
|
},
|
|
select: {
|
|
label: "Seleccionar",
|
|
all: "Todo",
|
|
deselect: "Deseleccionar",
|
|
inverse: "Invertir",
|
|
colorRange: "Rango de color...",
|
|
},
|
|
filter: {
|
|
label: "Filtro",
|
|
blur: {
|
|
label: "Desenfoque",
|
|
gaussian: "Desenfoque gaussiano",
|
|
motion: "Desenfoque de movimiento",
|
|
radial: "Desenfoque radial",
|
|
surface: "Desenfoque de superficie",
|
|
},
|
|
sharpen: {
|
|
label: "Enfocar",
|
|
sharpen: "Enfocar",
|
|
unsharpMask: "Máscara de desenfoque",
|
|
},
|
|
noise: {
|
|
label: "Ruido",
|
|
addNoise: "Agregar ruido",
|
|
reduceNoise: "Reducir ruido",
|
|
},
|
|
pixelate: {
|
|
label: "Pixelar",
|
|
pixelate: "Pixelar",
|
|
mosaic: "Mosaico",
|
|
},
|
|
stylize: {
|
|
label: "Estilizar",
|
|
emboss: "Relieve",
|
|
solarize: "Solarizar",
|
|
posterize: "Posterizar",
|
|
},
|
|
grayscale: "Escala de grises",
|
|
sepia: "Sepia",
|
|
invert: "Invertir",
|
|
},
|
|
view: {
|
|
label: "Ver",
|
|
zoomIn: "Acercar",
|
|
zoomOut: "Alejar",
|
|
fitOnScreen: "Ajustar a pantalla",
|
|
actualPixels: "Píxeles reales",
|
|
rulers: "Reglas",
|
|
grid: "Cuadrícula",
|
|
guides: "Guías",
|
|
snap: "Ajustar",
|
|
panels: "Paneles",
|
|
},
|
|
},
|
|
menuBar: {
|
|
backTitle: "Volver a SnapOtter",
|
|
},
|
|
welcome: {
|
|
ariaLabel: "Zona de carga de imágenes",
|
|
heading: "Editor de imágenes",
|
|
dropDescription: "Arrastra una imagen aquí para comenzar",
|
|
openImageButton: "Abrir imagen",
|
|
newDocumentButton: "Nuevo documento",
|
|
pasteHint: "O pega desde el portapapeles (Ctrl+V)",
|
|
},
|
|
mobile: {
|
|
heading: "Se recomienda escritorio",
|
|
description:
|
|
"El editor de imágenes funciona mejor en pantallas de escritorio. Cambia a un dispositivo con una pantalla más grande para la experiencia de edición completa.",
|
|
},
|
|
errors: {
|
|
serverDecodeFailed: "Error de decodificación del servidor",
|
|
},
|
|
shapes: {
|
|
shape: "Forma",
|
|
fill: "Relleno",
|
|
stroke: "Trazo",
|
|
strokeWidth: "Grosor",
|
|
cornerRadius: "Radio",
|
|
sides: "Lados",
|
|
points: "Puntas",
|
|
dashStyle: "Guion",
|
|
solid: "Sólido",
|
|
dashed: "Discontinuo",
|
|
dotted: "Punteado",
|
|
none: "Ninguno",
|
|
opacity: "Opacidad",
|
|
rectangle: "Rectángulo",
|
|
ellipse: "Elipse",
|
|
line: "Línea",
|
|
arrow: "Flecha",
|
|
polygon: "Polígono",
|
|
star: "Estrella",
|
|
},
|
|
},
|
|
settings: {
|
|
heading: "Configuración",
|
|
nav: {
|
|
general: "General",
|
|
systemSettings: "Configuración del sistema",
|
|
security: "Seguridad",
|
|
people: "Personas",
|
|
teams: "Equipos",
|
|
roles: "Roles",
|
|
auditLog: "Registro de auditoría",
|
|
usage: "Uso",
|
|
apiKeys: "Claves API",
|
|
aiFeatures: "Funciones de AI",
|
|
tools: "Herramientas",
|
|
productAnalytics: "Analítica del producto",
|
|
about: "Acerca de",
|
|
},
|
|
general: {
|
|
heading: "General",
|
|
description: "Preferencias del usuario y configuración de pantalla.",
|
|
loading: "Cargando...",
|
|
logOut: "Cerrar sesión",
|
|
defaultToolViewLabel: "Vista predeterminada de herramientas",
|
|
defaultToolViewDescription: "Cómo se muestran las herramientas en la página de inicio",
|
|
sidebarOption: "Barra lateral",
|
|
fullscreenGridOption: "Cuadrícula de pantalla completa",
|
|
appVersionLabel: "Versión de la app",
|
|
appVersionDescription: "Versión actual de SnapOtter",
|
|
saveButton: "Guardar configuración",
|
|
saveSuccess: "Configuración guardada.",
|
|
saveFailed: "Error al guardar la configuración.",
|
|
},
|
|
system: {
|
|
heading: "Configuración del sistema",
|
|
description: "Configuración del servidor y límites.",
|
|
fileUploadLimitLabel: "Límite de carga de archivos (MB)",
|
|
fileUploadLimitDescription: "Tamaño máximo de archivo por carga",
|
|
defaultThemeLabel: "Tema predeterminado",
|
|
defaultThemeDescription: "Tema aplicado para nuevas sesiones",
|
|
lightOption: "Claro",
|
|
darkOption: "Oscuro",
|
|
systemOption: "Sistema",
|
|
languageLabel: "Idioma",
|
|
languageDescription: "Idioma de la interfaz",
|
|
loginAttemptLimitLabel: "Límite de intentos de inicio de sesión",
|
|
loginAttemptLimitDescription:
|
|
"Intentos fallidos máximos de inicio de sesión por minuto antes del bloqueo",
|
|
fileManagementHeading: "Gestión de archivos",
|
|
maxFileAgeLabel: "Edad máxima de archivos (horas)",
|
|
maxFileAgeDescription:
|
|
"Cuánto tiempo se conservan los archivos procesados antes de la limpieza automática",
|
|
startupCleanupLabel: "Limpieza al inicio",
|
|
startupCleanupDescription: "Limpia archivos temporales antiguos cuando el servidor arranca",
|
|
saveButton: "Guardar configuración",
|
|
saveSuccess: "Configuración guardada.",
|
|
saveFailed: "Error al guardar la configuración.",
|
|
limitsAndResources: "Límites y recursos",
|
|
maxFileSize: "Tamaño máximo de archivo",
|
|
maxBatchSize: "Tamaño máximo de lote",
|
|
concurrentJobs: "Trabajos simultáneos",
|
|
workerThreads: "Hilos de trabajo",
|
|
maxPipelineSteps: "Pasos máximos de Pipeline",
|
|
processingTimeout: "Tiempo de espera de procesamiento",
|
|
rateLimitPerMin: "Límite de solicitudes (req/min)",
|
|
unlimited: "Ilimitado",
|
|
auto: "Automático",
|
|
envOverride: "Establecido por variable de entorno",
|
|
maxCanvasPixels: "Píxeles máximos de lienzo",
|
|
maxSvgSize: "Tamaño máximo de SVG",
|
|
maxSplitGrid: "Cuadrícula máxima de división",
|
|
maxPdfPages: "Páginas máximas de PDF",
|
|
sessionDuration: "Duración de la sesión",
|
|
supportBundleButton: "Descargar paquete de soporte",
|
|
supportBundleDescription:
|
|
"Descarga un ZIP de diagnóstico con configuración anonimizada, registros y datos de trabajos para solución de problemas.",
|
|
supportBundleFailed: "Error al descargar el paquete de soporte.",
|
|
},
|
|
security: {
|
|
heading: "Seguridad",
|
|
description: "Configuración de contraseña y autenticación.",
|
|
changePasswordHeading: "Cambiar contraseña",
|
|
currentPasswordPlaceholder: "Contraseña actual",
|
|
newPasswordPlaceholder: "Nueva contraseña",
|
|
confirmPasswordPlaceholder: "Confirmar nueva contraseña",
|
|
passwordsMismatch: "Las contraseñas no coinciden",
|
|
passwordTooShort: "La contraseña debe tener al menos 4 caracteres",
|
|
changeSuccess: "Contraseña cambiada correctamente",
|
|
changeFailed: "Error al cambiar la contraseña",
|
|
currentPasswordIncorrect: "La contraseña actual es incorrecta",
|
|
changePasswordButton: "Cambiar contraseña",
|
|
loginAttemptLimitNote:
|
|
"Los límites de intentos de inicio de sesión se pueden configurar en Configuración del sistema.",
|
|
adminHeading: "Configuración de seguridad del administrador",
|
|
adminDescription:
|
|
"Configuración de políticas de seguridad empresarial. Se aplica a todos los usuarios.",
|
|
sessionIdleTimeout: "Tiempo de inactividad de sesión (minutos)",
|
|
sessionIdleTimeoutDesc: "Cerrar automáticamente las sesiones inactivas. 0 = desactivado.",
|
|
maxSessionsPerUser: "Máximo de sesiones por usuario",
|
|
maxSessionsPerUserDesc: "Limitar sesiones simultáneas por usuario. 0 = ilimitado.",
|
|
mfaPolicy: "Política de MFA",
|
|
mfaPolicyDesc: "Requerir autenticación multifactor para los usuarios.",
|
|
mfaPolicyOptional: "Opcional",
|
|
mfaPolicyAdminsOnly: "Obligatorio para administradores",
|
|
mfaPolicyRequired: "Obligatorio para todos los usuarios",
|
|
ssoEnforcement: "Aplicación de SSO",
|
|
ssoEnforcementDesc:
|
|
"Requerir inicio de sesión SSO para todos los usuarios excepto acceso de emergencia.",
|
|
ssoBreakGlassUsername: "Usuario administrador de emergencia",
|
|
ssoBreakGlassUsernameDesc:
|
|
"Este administrador puede iniciar sesión con credenciales locales cuando SSO está activado.",
|
|
passwordMinLength: "Longitud mínima de contraseña",
|
|
passwordMinLengthDesc: "Número mínimo de caracteres requeridos para las contraseñas.",
|
|
passwordRequireUppercase: "Requerir mayúscula",
|
|
passwordRequireUppercaseDesc: "Requerir al menos una letra mayúscula.",
|
|
passwordRequireNumber: "Requerir número",
|
|
passwordRequireNumberDesc: "Requerir al menos un número.",
|
|
passwordRequireSpecial: "Requerir carácter especial",
|
|
passwordRequireSpecialDesc: "Requerir al menos un carácter especial.",
|
|
passwordPolicyHeading: "Política de contraseñas",
|
|
securitySettingsSaved: "Configuración de seguridad guardada",
|
|
securitySettingsFailed: "Error al guardar la configuración de seguridad",
|
|
},
|
|
people: {
|
|
heading: "Personas",
|
|
description: "Administra los miembros del espacio de trabajo y sus permisos",
|
|
userCount: "{count} usuario",
|
|
userCountPlural: "{count} usuarios",
|
|
searchPlaceholder: "Buscar miembros...",
|
|
addMembersButton: "Agregar miembros",
|
|
newMemberHeading: "Nuevo miembro",
|
|
usernamePlaceholder: "Nombre de usuario",
|
|
passwordPlaceholder: "Contraseña",
|
|
roleUserOption: "Usuario",
|
|
roleEditorOption: "Editor",
|
|
roleAdminOption: "Administrador",
|
|
roleUserDescription: "Acceso básico a herramientas",
|
|
roleEditorDescription: "Todos los archivos y pipelines",
|
|
roleAdminDescription: "Acceso completo",
|
|
noDescription: "Sin descripción",
|
|
defaultTeamOption: "Predeterminado",
|
|
createButton: "Crear",
|
|
cancelButton: "Cancelar",
|
|
createSuccess: "Usuario creado correctamente",
|
|
createFailed: "Error al crear el usuario",
|
|
userLimitReached: "Límite de usuarios alcanzado ({max} máximo)",
|
|
deleteConfirm: '¿Eliminar usuario "{username}"? Esta acción no se puede deshacer.',
|
|
deleteSuccess: 'Usuario "{username}" eliminado',
|
|
deleteFailed: "Error al eliminar el usuario",
|
|
editHeading: "Editar {username}",
|
|
updateSuccess: "Usuario actualizado",
|
|
updateFailed: "Error al actualizar el usuario",
|
|
cannotRemoveOwnAdmin: "No puedes eliminar tu propio rol de administrador",
|
|
resetPasswordHeading: "Restablecer contraseña para {username}",
|
|
newPasswordLabel: "Nueva contraseña (mínimo 8 caracteres)",
|
|
resetPasswordButton: "Restablecer contraseña",
|
|
resetPasswordWarning: "Esto invalidará todas las sesiones y claves API de este usuario.",
|
|
resetSuccess: "Contraseña restablecida correctamente",
|
|
resetFailed: "Error al restablecer la contraseña",
|
|
tableHeaderUser: "Usuario",
|
|
tableHeaderRole: "Rol",
|
|
tableHeaderTeam: "Equipo",
|
|
noSearchResults: "Ningún miembro coincide con tu búsqueda.",
|
|
noUsersFound: "No se encontraron usuarios.",
|
|
authBadgeLocalOidc: "Local + OIDC",
|
|
authBadgeOidc: "OIDC",
|
|
editRoleTeamAction: "Editar rol / equipo",
|
|
resetPasswordAction: "Restablecer contraseña",
|
|
deleteUserAction: "Eliminar usuario",
|
|
saveButton: "Guardar",
|
|
copyPasswordButton: "Copiar contraseña",
|
|
passwordCopied: "¡Copiado!",
|
|
copyPasswordWarning:
|
|
"Copia esta contraseña ahora. No podrás verla después de crear el usuario.",
|
|
},
|
|
teams: {
|
|
heading: "Equipos",
|
|
description: "Organiza a los miembros en equipos para una mejor gestión.",
|
|
createButton: "Crear nuevo equipo",
|
|
newTeamHeading: "Nuevo equipo",
|
|
teamNamePlaceholder: "Nombre del equipo",
|
|
createSubmitButton: "Crear",
|
|
cancelButton: "Cancelar",
|
|
createSuccess: "Equipo creado correctamente",
|
|
createFailed: "Error al crear el equipo",
|
|
duplicateTeamError: "Ya existe un equipo con ese nombre",
|
|
renameSuccess: "Equipo renombrado",
|
|
renameFailed: "Error al renombrar el equipo",
|
|
deleteConfirm: '¿Eliminar equipo "{name}"? Los miembros serán desasignados.',
|
|
deleteSuccess: 'Equipo "{name}" eliminado',
|
|
deleteFailed: "Error al eliminar el equipo",
|
|
cannotDeleteDefault: "No se puede eliminar el equipo predeterminado o un equipo con miembros",
|
|
tableHeaderTeamName: "Nombre del equipo",
|
|
tableHeaderMembers: "Miembros",
|
|
emptyState: "No se encontraron equipos.",
|
|
renameSaveButton: "Guardar",
|
|
renameCancelButton: "Cancelar",
|
|
renameAction: "Renombrar",
|
|
deleteAction: "Eliminar",
|
|
totalMembers: "Total de miembros",
|
|
nameRequired: "El nombre del equipo es obligatorio",
|
|
nameTooLong: "El nombre del equipo debe tener 50 caracteres o menos",
|
|
duplicateName: "Ya existe un equipo con este nombre",
|
|
teamStorageQuota: "Cuota de almacenamiento (MB)",
|
|
teamStorageQuotaDesc:
|
|
"Almacenamiento máximo para este equipo en MB. Dejar vacío para sin límite.",
|
|
teamRetentionHours: "Retención (horas)",
|
|
teamRetentionHoursDesc:
|
|
"Retención de archivos procesados para este equipo. Dejar vacío para usar el valor predeterminado global.",
|
|
quotaSaved: "Configuración de equipo guardada",
|
|
},
|
|
roles: {
|
|
heading: "Roles",
|
|
description:
|
|
"Administra roles y sus permisos. Los roles predeterminados no se pueden modificar.",
|
|
createButton: "Crear rol personalizado",
|
|
newRoleHeading: "Nuevo rol",
|
|
roleNamePlaceholder: "Nombre del rol",
|
|
descriptionPlaceholder: "Descripción (opcional)",
|
|
permissionsLabel: "Permisos",
|
|
createSubmitButton: "Crear",
|
|
cancelButton: "Cancelar",
|
|
createSuccess: "Rol creado correctamente",
|
|
createFailed: "Error al crear el rol",
|
|
duplicateRoleError: "Ya existe un rol con ese nombre",
|
|
editHeading: "Editar rol: {name}",
|
|
editSaveButton: "Guardar",
|
|
editCancelButton: "Cancelar",
|
|
updateSuccess: "Rol actualizado",
|
|
updateFailed: "Error al actualizar el rol",
|
|
deleteConfirm: '¿Eliminar rol "{name}"? {count} usuario(s) deberán ser reasignados.',
|
|
deleteConfirmSimple: '¿Eliminar rol "{name}"?',
|
|
deleteSuccess: 'Rol "{name}" eliminado',
|
|
deleteFailed: "Error al eliminar el rol",
|
|
emptyState: "No se encontraron roles.",
|
|
builtInBadge: "Predeterminado",
|
|
userCountBadge: "{count} usuario(s)",
|
|
editRoleTitle: "Editar rol",
|
|
deleteRoleTitle: "Eliminar rol",
|
|
permGroup: {
|
|
tools: "Herramientas",
|
|
files: "Archivos",
|
|
apiKeys: "Claves API",
|
|
pipelines: "Pipelines",
|
|
settings: "Configuración",
|
|
users: "Usuarios",
|
|
teams: "Equipos",
|
|
system: "Sistema",
|
|
},
|
|
},
|
|
auditLog: {
|
|
heading: "Registro de auditoría",
|
|
allActionsFilter: "Todas las acciones",
|
|
emptyState: "No hay entradas en el registro de auditoría.",
|
|
tableHeaderTime: "Hora",
|
|
tableHeaderUser: "Usuario",
|
|
tableHeaderAction: "Acción",
|
|
tableHeaderTarget: "Objetivo",
|
|
paginationInfo: "Página {page} de {totalPages} ({total} entradas)",
|
|
previousButton: "Anterior",
|
|
nextButton: "Siguiente",
|
|
justNow: "ahora mismo",
|
|
minutesAgo: "hace {mins}m",
|
|
hoursAgo: "hace {hrs}h",
|
|
daysAgo: "hace {days}d",
|
|
},
|
|
usage: {
|
|
heading: "Uso",
|
|
description: "Estadísticas de uso local de trabajos y almacenamiento de archivos.",
|
|
periodLabel: "Período",
|
|
days7: "7 días",
|
|
days30: "30 días",
|
|
days90: "90 días",
|
|
jobsPerDayHeading: "Trabajos por día",
|
|
topToolsHeading: "Herramientas más usadas",
|
|
perUserHeading: "Volumen por usuario",
|
|
durationsHeading: "Percentiles de duración",
|
|
noData: "Sin datos para este período.",
|
|
dayColumn: "Día",
|
|
totalColumn: "Total",
|
|
completedColumn: "Completados",
|
|
failedColumn: "Fallidos",
|
|
toolColumn: "Herramienta",
|
|
runsColumn: "Ejecuciones",
|
|
userColumn: "Usuario",
|
|
bytesInColumn: "Bytes entrada",
|
|
poolColumn: "Pool",
|
|
p50Column: "p50",
|
|
p95Column: "p95",
|
|
storageHeading: "Almacenamiento de biblioteca",
|
|
storageFiles: "{count} archivos",
|
|
unknownUser: "(desconocido)",
|
|
storageByTeam: "Almacenamiento por equipo",
|
|
teamColumn: "Equipo",
|
|
storageColumn: "Almacenamiento",
|
|
usersColumn: "Usuarios",
|
|
},
|
|
apiKeys: {
|
|
heading: "Claves API",
|
|
description: "Administra las claves API para acceso programático a SnapOtter.",
|
|
keyNamePlaceholder: "Nombre de la clave (opcional)",
|
|
generateButton: "Generar clave API",
|
|
removeScopingLabel: "Eliminar restricción de permisos",
|
|
restrictPermissionsLabel: "Restringir permisos (opcional)",
|
|
expiresLabel: "Expira:",
|
|
clearButton: "Limpiar",
|
|
copyTitle: "Copiar",
|
|
keyWarning: "Guarda esta clave de forma segura. No se mostrará de nuevo.",
|
|
existingKeysHeading: "Claves existentes",
|
|
createdPrefix: "Creada {date}",
|
|
scopedPrefix: "Alcance:",
|
|
expiresPrefix: "Expira {date}",
|
|
deleteKeyTitle: "Eliminar clave",
|
|
deleteConfirm:
|
|
"¿Eliminar esta clave API? Las integraciones que la usen dejarán de funcionar.",
|
|
emptyState: "Aún no hay claves API. Genera una para comenzar.",
|
|
},
|
|
tools: {
|
|
heading: "Herramientas",
|
|
description:
|
|
"Activa o desactiva herramientas individuales. Las herramientas desactivadas se ocultan para todos los usuarios.",
|
|
restartBanner: "Se requiere reinicio para que los cambios surtan efecto.",
|
|
searchPlaceholder: "Buscar herramientas...",
|
|
noSearchResults: "Ninguna herramienta coincide con tu búsqueda.",
|
|
loadFailedError:
|
|
"Error al cargar la configuración de herramientas. El guardado está desactivado para prevenir pérdida de datos.",
|
|
saveButton: "Guardar configuración de herramientas",
|
|
disabledCount: "{count} herramienta(s) desactivada(s)",
|
|
},
|
|
experimental: {
|
|
label: "Activar herramientas experimentales",
|
|
description: "Muestra herramientas que aún están en desarrollo. Pueden ser inestables.",
|
|
},
|
|
fileManagement: {
|
|
title: "Gestión de archivos",
|
|
maxAge: "Edad máxima de archivos (horas)",
|
|
maxAgeDescription:
|
|
"Cuánto tiempo se conservan los archivos procesados antes de la limpieza automática",
|
|
startupCleanup: "Limpieza al inicio",
|
|
startupCleanupDescription: "Limpia archivos temporales antiguos cuando el servidor arranca",
|
|
},
|
|
dataRetention: {
|
|
title: "Retención de datos",
|
|
fileMaxAgeHours: "Retención de archivos procesados (horas)",
|
|
fileMaxAgeHoursDesc:
|
|
"Tiempo de conservación de archivos subidos y procesados. Predeterminado: 72 horas.",
|
|
jobsRetentionDays: "Retención de registros de trabajos (días)",
|
|
jobsRetentionDaysDesc:
|
|
"Tiempo de conservación de metadatos de trabajos. 0 = conservar siempre. Predeterminado: 30 días.",
|
|
auditRetentionDays: "Retención del registro de auditoría (días)",
|
|
auditRetentionDaysDesc:
|
|
"Tiempo de conservación de entradas del registro de auditoría. 0 = conservar siempre. Predeterminado: siempre.",
|
|
},
|
|
analytics: {
|
|
heading: "Analítica del producto",
|
|
description: "Comparte datos de uso anónimos para ayudar a mejorar SnapOtter.",
|
|
privacyNote: "Tus archivos nunca salen de tu red.",
|
|
disabledByAdmin:
|
|
"La analítica del producto ha sido desactivada por el administrador del servidor.",
|
|
enabledLabel: "Analítica activada",
|
|
disabledLabel: "Analítica desactivada",
|
|
learnMore: "Más información",
|
|
},
|
|
aiFeatures: {
|
|
title: "Funciones de AI",
|
|
description: "Gestiona paquetes de modelos AI para procesamiento avanzado de archivos.",
|
|
installAll: "Instalar todo",
|
|
diskUsage: "Uso del disco: {size}",
|
|
installed: "Instalado",
|
|
notInstalled: "No instalado",
|
|
queued: "En cola",
|
|
install: "Instalar",
|
|
repair: "Reparar",
|
|
uninstall: "Desinstalar",
|
|
installing: "Instalando...",
|
|
importBundle: "Importar paquete",
|
|
importDescription: "Sube un archivo .tar.gz exportado desde otra instalación.",
|
|
importButton: "Importar desde archivo",
|
|
importing: "Importando...",
|
|
importSuccess: "Paquete importado correctamente.",
|
|
importError: "Error al importar el paquete: {error}",
|
|
},
|
|
about: {
|
|
heading: "Acerca de",
|
|
appName: "SnapOtter",
|
|
appDescription:
|
|
"Una suite de procesamiento de archivos autoalojada y con privacidad como prioridad, con 157 herramientas. Convierte, comprime, edita, transcribe, OCR y automatiza flujos de trabajo de imágenes, video, audio, documentos y datos sin enviar datos a la nube.",
|
|
versionLabel: "Versión:",
|
|
linksHeading: "Enlaces",
|
|
githubLink: "Repositorio en GitHub",
|
|
docsLink: "Documentación",
|
|
apiRefLink: "Referencia API (Swagger)",
|
|
licenseLabel: "Licencia:",
|
|
licenseDescription:
|
|
"SnapOtter es software de código abierto bajo la licencia GNU Affero General Public License v3 (AGPLv3).",
|
|
},
|
|
},
|
|
auth: {
|
|
login: "Iniciar sesión",
|
|
logout: "Cerrar sesión",
|
|
username: "Nombre de usuario",
|
|
password: "Contraseña",
|
|
loginButton: "Iniciar sesión",
|
|
loggingIn: "Iniciando sesión...",
|
|
invalidCredentials: "Nombre de usuario o contraseña inválidos",
|
|
connectionError: "Error de conexión",
|
|
signInWith: "Iniciar sesión con {provider}",
|
|
signInWithSso: "Iniciar sesión con SSO",
|
|
or: "o",
|
|
methodLocal: "Local",
|
|
methodOidc: "OIDC",
|
|
methodBoth: "Local + OIDC",
|
|
oidcAuthFailed: "La autenticación falló. Intenta de nuevo.",
|
|
oidcProviderUnreachable: "No se pudo contactar al proveedor de identidad. Intenta más tarde.",
|
|
oidcSessionExpired: "La sesión de inicio de sesión expiró. Intenta de nuevo.",
|
|
oidcUserNotAuthorized:
|
|
"Tu cuenta no está autorizada para acceder a esta aplicación. Contacta a tu administrador.",
|
|
oidcUserLimitReached: "Límite de usuarios alcanzado. Contacta a tu administrador.",
|
|
oidcGenericError: "Error de autenticación. Intenta de nuevo.",
|
|
samlAuthFailed: "La autenticación SAML falló. Inténtalo de nuevo.",
|
|
samlUserNotAuthorized:
|
|
"Tu cuenta no tiene autorización para acceder a esta aplicación. Contacta al administrador.",
|
|
samlUserLimitReached: "Límite de usuarios alcanzado. Contacta al administrador.",
|
|
ssoEnforcedLocalRestricted:
|
|
"El inicio de sesión local está restringido a administradores autorizados.",
|
|
mfaRequired: "Introduce tu código de autenticación",
|
|
mfaRecoveryHint: "También puedes usar un código de recuperación",
|
|
verify: "Verificar",
|
|
verifying: "Verificando...",
|
|
mfaInvalidCode: "Código no válido. Inténtalo de nuevo.",
|
|
mfaEnrollmentRequired:
|
|
"Tu organización requiere autenticación multifactor. Configura MFA en los ajustes de tu cuenta.",
|
|
methodSaml: "SAML",
|
|
passwordManagedByProvider:
|
|
"Los cambios de contraseña son administrados por tu proveedor de identidad.",
|
|
enterUsername: "Ingresa tu nombre de usuario",
|
|
enterPassword: "Ingresa tu contraseña",
|
|
heroTitle: "Tus archivos. Se quedan contigo.",
|
|
heroSubtitle: "Todas las herramientas que necesitas.",
|
|
rotatingPhrases: [
|
|
"Sin registros. Sin cuentas.",
|
|
"Sin subidas a la nube. Nunca.",
|
|
"100% procesamiento local.",
|
|
"Gratis. Para siempre.",
|
|
"Sin límites. Sin topes ocultos.",
|
|
"Funciona totalmente sin conexión.",
|
|
"Procesamiento por lotes ilimitado.",
|
|
"157 herramientas.",
|
|
"15 modelos AI. Tu hardware.",
|
|
"Ultra rápido. Construido sobre Sharp.",
|
|
"Listo para redes aisladas.",
|
|
"Un solo contenedor Docker.",
|
|
"Código abierto. Siempre.",
|
|
"Cada píxel se queda en tu hardware.",
|
|
"Tu servidor. Tus reglas.",
|
|
"Se instala con un solo docker pull.",
|
|
"La alternativa autoalojada.",
|
|
"Redimensiona, comprime, convierte. Localmente.",
|
|
"Editor de imágenes gratuito. Sin marcas de agua.",
|
|
"Procesamiento masivo de archivos. Ilimitado.",
|
|
"Elimina fondos sin conexión.",
|
|
"Alternativa autoalojada a Canva.",
|
|
"Sin claves API necesarias.",
|
|
"Cumplimiento GDPR por diseño.",
|
|
"Funciona sin internet.",
|
|
],
|
|
},
|
|
changePassword: {
|
|
title: "Cambia tu contraseña",
|
|
description:
|
|
"Necesitas establecer una nueva contraseña antes de continuar. Tu contraseña debe tener al menos 8 caracteres con mayúsculas, minúsculas y un número.",
|
|
usernameLabel: "Nombre de usuario",
|
|
currentPasswordLabel: "Contraseña actual",
|
|
currentPasswordPlaceholder: "Ingresa la contraseña actual",
|
|
newPasswordLabel: "Nueva contraseña",
|
|
generateButton: "Generar contraseña segura",
|
|
newPasswordPlaceholder: "Al menos 8 caracteres",
|
|
confirmPasswordLabel: "Confirmar nueva contraseña",
|
|
confirmPasswordPlaceholder: "Repite la nueva contraseña",
|
|
passwordsMismatch: "Las contraseñas no coinciden",
|
|
failedError: "Error al cambiar la contraseña",
|
|
connectionError: "Error de conexión",
|
|
changingButton: "Cambiando...",
|
|
changeButton: "Cambiar contraseña",
|
|
sidebarTitle: "Ya casi",
|
|
sidebarDescription: "Establece una contraseña segura para proteger tu cuenta y estarás listo.",
|
|
},
|
|
automate: {
|
|
title: "Automatizar",
|
|
invalidPipelineFile: "No es un archivo de Pipeline de SnapOtter válido",
|
|
newerVersion: "Este Pipeline fue creado con una versión más reciente de SnapOtter",
|
|
missingName: "Al archivo de Pipeline le falta un nombre",
|
|
noSteps: "El archivo de Pipeline no tiene pasos",
|
|
importFailed: "Error en la importación",
|
|
couldNotRead: "No se pudo leer el archivo de Pipeline",
|
|
fileCount: "{count} archivo",
|
|
fileCountPlural: "{count} archivos",
|
|
importFromLibrary: "Importar desde la biblioteca",
|
|
addButton: "+ Agregar",
|
|
libraryButton: "Biblioteca",
|
|
clearButton: "Limpiar",
|
|
processingFailed: "Error al procesar este archivo",
|
|
processingMultiple: "Procesando {count} archivos...",
|
|
processingPipeline: "Procesando Pipeline...",
|
|
processButton: "Procesar",
|
|
processButtonMultiple: "Procesar ({count})",
|
|
processAllButton: "Procesar todo ({count})",
|
|
addTool: "Agregar herramienta",
|
|
toolPalette: "Paleta de herramientas",
|
|
clickToAdd: "Clic para agregar al Pipeline",
|
|
savedLabel: "Guardado",
|
|
importButton: "Importar",
|
|
noSavedPipelines: "No hay Pipelines guardados",
|
|
stepCount: "({count} paso)",
|
|
stepCountPlural: "({count} pasos)",
|
|
exportPipeline: "Exportar Pipeline",
|
|
deletePipeline: "Eliminar Pipeline",
|
|
moreCount: "+{count} más",
|
|
pipelineBuilder: "Constructor de Pipeline",
|
|
addToolsPrompt: "Agrega herramientas desde la paleta para comenzar",
|
|
stepsConfigured: "{count} paso configurado",
|
|
stepsConfiguredPlural: "{count} pasos configurados",
|
|
noFilesLoaded: "No hay archivos cargados",
|
|
downloadZip: "Descargar ZIP",
|
|
saveButton: "Guardar",
|
|
pipelineNamePlaceholder: "Nombre del Pipeline",
|
|
descriptionPlaceholder: "Descripción",
|
|
savingIndicator: "...",
|
|
cancelButton: "Cancelar",
|
|
preview: "Vista previa",
|
|
previousImage: "Archivo anterior",
|
|
nextImage: "Siguiente archivo",
|
|
imageCounter: "{current} / {total}",
|
|
imageArea: "Área de vista previa",
|
|
templateSocialMedia: "Listo para redes sociales",
|
|
templatePrivacyClean: "Limpieza de privacidad",
|
|
templateWebOptimization: "Optimización web",
|
|
templateProfilePicture: "Foto de perfil",
|
|
templateWatermarkBatch: "Lote de marcas de agua",
|
|
createNew: "Crear nueva automatización",
|
|
savedAutomations: "Automatizaciones guardadas",
|
|
templates: "Plantillas",
|
|
addStep: "Agregar paso",
|
|
removeStep: "Eliminar",
|
|
moveUp: "Subir",
|
|
moveDown: "Bajar",
|
|
savePipeline: "Guardar Pipeline",
|
|
runPipeline: "Procesar",
|
|
pipelineName: "Nombre del Pipeline",
|
|
pipelineDescription: "Descripción (opcional)",
|
|
noStepsPrompt: "Agrega pasos para construir tu automatización",
|
|
noStepsHeading: "Aún no hay pasos",
|
|
searchToolsPlaceholder: "Buscar herramientas...",
|
|
step: "Paso",
|
|
},
|
|
nav: {
|
|
tools: "Herramientas",
|
|
reader: "Lector",
|
|
automate: "Automatizar",
|
|
editor: "Editor",
|
|
files: "Archivos",
|
|
help: "Ayuda",
|
|
settings: "Configuración",
|
|
grid: "Cuadrícula",
|
|
},
|
|
files: {
|
|
myFiles: "Mis archivos",
|
|
recentTab: "Recientes",
|
|
uploadTab: "Subir archivos",
|
|
fileDetailsAriaLabel: "Detalles del archivo",
|
|
fileDetailsHeading: "Detalles del archivo",
|
|
searchPlaceholder: "Buscar archivos...",
|
|
selectedCount: "{count} seleccionados",
|
|
fileCount: "{count} archivos",
|
|
fileCountSingular: "{count} archivo",
|
|
noFilesFound: "No se encontraron archivos",
|
|
selectFilePrompt: "Selecciona un archivo para ver detalles",
|
|
openFile: "Abrir archivo",
|
|
selectFile: "Seleccionar archivo",
|
|
openInPipeline: "Abrir en Pipeline",
|
|
dropFilesHere: "Suelta los archivos aquí",
|
|
orClickToSelect: "o haz clic para seleccionar archivos",
|
|
name: "Nombre",
|
|
format: "Formato",
|
|
size: "Tamaño",
|
|
dimensions: "Dimensiones",
|
|
version: "Versión",
|
|
toolsUsed: "Herramientas usadas",
|
|
none: "Ninguno",
|
|
delete: "Eliminar",
|
|
pipeline: "Pipeline",
|
|
download: "Descargar",
|
|
},
|
|
dropzone: {
|
|
unsupportedFileType: "Este tipo de archivo no es compatible con esta herramienta",
|
|
urlFetchFailed: "No se pudo obtener la imagen desde la URL",
|
|
ariaLabel: "Zona de carga de archivos",
|
|
dropPrompt: "Arrastra tus imágenes aquí",
|
|
browseOrPaste: "haz clic en cualquier lugar para explorar, o pega desde el portapapeles",
|
|
uploadButton: "Subir",
|
|
defaultFormats: "PNG, JPG, WebP, HEIC, RAW, PSD y más de 65 formatos",
|
|
orSeparator: "o",
|
|
urlPlaceholder: "Pega la URL de la imagen...",
|
|
urlLoadingIndicator: "...",
|
|
addUrlButton: "Agregar",
|
|
importMultipleUrls: "Importar múltiples URLs...",
|
|
filesSelected: "{count} archivos seleccionados",
|
|
dropToAdd: "Suelta para agregar archivos",
|
|
dropToReplace: "Suelta para reemplazar archivo",
|
|
},
|
|
reviewPanel: {
|
|
processedResultAlt: "Resultado procesado",
|
|
sizeLabel: "Tamaño: {size}",
|
|
typeLabel: "Tipo: {type}",
|
|
processedLabel: "Procesado: {time}",
|
|
undoButton: "Deshacer",
|
|
downloadButton: "Descargar",
|
|
openInEditor: "Abrir en el editor",
|
|
reviewHeading: "Revisar",
|
|
continueEditing: "Continuar editando",
|
|
},
|
|
features: {
|
|
notEnabledTitle: "Función no activada",
|
|
notEnabledDescription:
|
|
"Esta función no está activada. Pide a tu administrador que la active en Configuración.",
|
|
requiresDownload: "Esta función requiere una descarga adicional (~{size})",
|
|
retryButton: "Reintentar",
|
|
queued: "En cola para instalación...",
|
|
enableButton: "Activar {name}",
|
|
repairRequired: "Reparación necesaria",
|
|
repairDescription:
|
|
"Algunos archivos de modelo faltan o están dañados. La reparación los descargará de nuevo.",
|
|
repairButton: "Reparar {name}",
|
|
lessThanMinute: "Menos de un minuto restante",
|
|
oneMinuteLeft: "~1 minuto restante",
|
|
minutesLeft: "~{mins} minutos restantes",
|
|
progressMessages: [
|
|
"Ya casi... probablemente...",
|
|
"Las cosas buenas toman tiempo...",
|
|
"Más rápido que ver secar la pintura...",
|
|
"Tu paciencia es verdaderamente inspiradora...",
|
|
"Trabajando más duro de lo que parece...",
|
|
"Esta es la parte emocionante, en serio...",
|
|
"Haciendo cosas importantes tras bambalinas...",
|
|
"Si lees esto, está funcionando...",
|
|
"Preparando algo increíble...",
|
|
"Vale cada segundo, lo prometo...",
|
|
"El suspenso es parte de la experiencia...",
|
|
"Enseñándole trucos nuevos a tu computadora...",
|
|
"Configurando tus superpoderes...",
|
|
"Tus archivos te lo agradecerán después...",
|
|
"Cargando... pero con estilo...",
|
|
"Buen momento para un café...",
|
|
"Roma tampoco se construyó en un día...",
|
|
"Shhh... genio trabajando...",
|
|
"Haciendo que tus proyectos se pongan celosos...",
|
|
"Armando el equipo de ensueño...",
|
|
"Desempacando cosas geniales...",
|
|
"Ya casi termino de pensar en empezar... es broma...",
|
|
"Giro de trama: esto de verdad está haciendo algo...",
|
|
"Calentando los motores creativos...",
|
|
"Cargando imaginación...",
|
|
"No es un protector de pantalla, lo prometemos...",
|
|
"El gran arte necesita tiempo para instalarse...",
|
|
"Tu yo del futuro te lo agradecerá...",
|
|
"Buscando archivos muy inteligentes...",
|
|
"Aguanta, lo mejor está por venir...",
|
|
],
|
|
},
|
|
help: {
|
|
heading: "Ayuda",
|
|
gettingStarted: {
|
|
heading: "Primeros pasos",
|
|
description:
|
|
"Selecciona una herramienta desde la barra lateral o busca una. Sube un archivo arrastándolo a la página o haciendo clic en el área de carga. Ajusta la configuración y descarga tu resultado.",
|
|
},
|
|
keyboardShortcuts: {
|
|
heading: "Atajos de teclado",
|
|
focusSearchBar: "Enfocar barra de búsqueda",
|
|
goToTools: "Ir a herramientas",
|
|
toggleTheme: "Cambiar tema",
|
|
goToResize: "Ir a Redimensionar",
|
|
goToCrop: "Ir a Recortar",
|
|
goToCompress: "Ir a Comprimir",
|
|
goToConvert: "Ir a Convertir",
|
|
goToRemoveBackground: "Ir a Eliminar fondo",
|
|
goToWatermarkText: "Ir a Marca de agua de texto",
|
|
goToStripMetadata: "Ir a Eliminar metadatos",
|
|
goToImageInfo: "Ir a Info de imagen",
|
|
processFile: "Procesar archivo",
|
|
downloadResult: "Descargar resultado",
|
|
},
|
|
resources: {
|
|
heading: "Recursos",
|
|
githubLink: "Repositorio en GitHub",
|
|
reportIssueLink: "Reportar un problema",
|
|
docsLink: "Documentación",
|
|
apiRefLink: "Referencia API (Swagger)",
|
|
},
|
|
versionLabel: "SnapOtter v{version}",
|
|
},
|
|
errors: {
|
|
generic: "Ocurrió un error",
|
|
offline: "Estás sin conexión",
|
|
reconnecting: "Reconectando al servidor...",
|
|
connected: "Conectado",
|
|
processingFailed: "Error al procesar este archivo",
|
|
timeout:
|
|
"La solicitud agotó el tiempo de espera. El servidor puede estar sobrecargado. Intenta de nuevo.",
|
|
networkError: "Error de red. Verifica tu conexión.",
|
|
invalidCredentials: "Nombre de usuario o contraseña inválidos",
|
|
connectionError: "Error de conexión",
|
|
},
|
|
analytics: {
|
|
consentTitle: "Ayuda a mejorar SnapOtter",
|
|
consentDescription:
|
|
"Las estadísticas de uso anónimas nos ayudan a corregir errores y crear las herramientas que realmente necesitas. Tus archivos se quedan en tu red.",
|
|
consentChangeable: "Puedes desactivar esto en cualquier momento en Configuración.",
|
|
acceptButton: "Claro, me parece bien",
|
|
declineButton: "Ahora no",
|
|
settingsTitle: "Analítica del producto",
|
|
settingsDescription: "Comparte datos de uso anónimos para ayudar a mejorar SnapOtter.",
|
|
settingsPrivacy: "Tus archivos nunca salen de tu red.",
|
|
settingsDisabledByAdmin:
|
|
"La analítica del producto ha sido desactivada por el administrador del servidor.",
|
|
learnMore: "Más información",
|
|
},
|
|
sidebar: {
|
|
tools: "Herramientas",
|
|
grid: "Cuadrícula",
|
|
automate: "Automatizar",
|
|
editor: "Editor",
|
|
files: "Archivos",
|
|
help: "Ayuda",
|
|
settings: "Configuración",
|
|
},
|
|
toolCard: {
|
|
addToFavourites: "Agregar a favoritos",
|
|
},
|
|
appLayout: {
|
|
mobileNavTools: "Herramientas",
|
|
mobileNavAutomate: "Automatizar",
|
|
mobileNavEditor: "Editor",
|
|
mobileNavFiles: "Archivos",
|
|
mobileNavSettings: "Configuración",
|
|
},
|
|
a11y: {
|
|
skipToContent: "Ir al contenido principal",
|
|
openSidebar: "Abrir barra lateral",
|
|
closeSidebar: "Cerrar barra lateral",
|
|
closeSettings: "Cerrar configuración",
|
|
closeHelp: "Cerrar ayuda",
|
|
closeDialog: "Cerrar diálogo",
|
|
zoomIn: "Acercar",
|
|
zoomOut: "Alejar",
|
|
fitToView: "Ajustar a la vista",
|
|
actualSize: "Tamaño real",
|
|
pan: "Desplazar",
|
|
previousImage: "Archivo anterior",
|
|
nextImage: "Siguiente archivo",
|
|
imageArea: "Área de vista previa",
|
|
imageViewer: "Visor de archivos",
|
|
fileDropZone: "Zona para soltar archivos",
|
|
imageDropZone: "Zona para soltar archivos",
|
|
beforeAfterSlider: "Control deslizante de comparación antes/después",
|
|
imageControls: "Controles de vista previa",
|
|
zoomControls: "Controles de zoom",
|
|
dragToReorder: "Arrastrar para reordenar",
|
|
whiteBackground: "Fondo blanco",
|
|
blackBackground: "Fondo negro",
|
|
expandPanel: "Expandir panel",
|
|
collapsePanel: "Contraer panel",
|
|
swapDimensions: "Intercambiar dimensiones",
|
|
applyCrop: "Aplicar recorte",
|
|
cancelCrop: "Cancelar recorte",
|
|
fontFamily: "Familia tipográfica",
|
|
textColor: "Color de texto",
|
|
flipHorizontal: "Voltear horizontalmente",
|
|
flipVertical: "Voltear verticalmente",
|
|
hexColorValue: "Valor de color HEX",
|
|
backgroundColor: "Color de fondo",
|
|
foregroundColor: "Color de primer plano",
|
|
swapColors: "Intercambiar colores de primer plano y fondo",
|
|
resetColors: "Restablecer a blanco y negro predeterminado",
|
|
foregroundHex: "Valor HEX del color de primer plano",
|
|
undo: "Deshacer",
|
|
redo: "Rehacer",
|
|
layers: "Capas",
|
|
addLayer: "Añadir capa",
|
|
deleteLayer: "Eliminar capa",
|
|
cancelOperation: "Cancelar operación",
|
|
fill: "Relleno",
|
|
fileDetails: "Detalles del archivo",
|
|
language: "Idioma",
|
|
selected: "Seleccionado",
|
|
deleteKey: "Eliminar clave",
|
|
editRole: "Editar rol",
|
|
deleteRole: "Eliminar rol",
|
|
notInstalled: "No instalado",
|
|
queued: "En cola para instalar",
|
|
installing: "Instalando",
|
|
imageNOfTotal: "Imagen {n} de {total}",
|
|
processingComplete: "Imagen procesada correctamente",
|
|
processingFailed: "Error en el procesamiento",
|
|
settingsDialog: "Configuración",
|
|
helpDialog: "Ayuda",
|
|
navigationMenu: "Navegación",
|
|
homeLink: "Inicio de SnapOtter",
|
|
},
|
|
} as const;
|