mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
3459 lines
120 KiB
TypeScript
3459 lines
120 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: "Configuracion",
|
|
search: "Buscar herramientas...",
|
|
dropFiles: "Arrastra archivos aqui o haz clic en el boton de carga",
|
|
loading: "Cargando...",
|
|
saving: "Saving...",
|
|
error: "Ocurrio un error",
|
|
confirm: "Confirmar",
|
|
close: "Cerrar",
|
|
back: "Atras",
|
|
next: "Siguiente",
|
|
clear: "Limpiar",
|
|
copy: "Copiar",
|
|
copied: "Copiado!",
|
|
noResults: "No se encontraron resultados",
|
|
showLess: "Mostrar menos",
|
|
showMore: "Mostrar {count} mas",
|
|
experimental: "Experimental",
|
|
enabled: "Activado",
|
|
disabled: "Desactivado",
|
|
rename: "Renombrar",
|
|
edit: "Editar",
|
|
actions: "Acciones",
|
|
create: "Crear",
|
|
or: "o",
|
|
goHome: "Ir al inicio",
|
|
somethingWentWrong: "Algo salio mal",
|
|
unexpectedError: "Ocurrio un error inesperado.",
|
|
retry: "Reintentar",
|
|
privacyPolicy: "Politica de privacidad",
|
|
pageNotFound: "Page not found",
|
|
pageNotFoundDescription: "The page you are looking for does not exist or has been moved.",
|
|
},
|
|
categories: {
|
|
essentials: "Esenciales",
|
|
adjustments: "Ajustes",
|
|
enhance: "Enhance & AI",
|
|
watermark: "Marca de agua y superposicion",
|
|
layout: "Diseno y composicion",
|
|
utilities: "Utilidades",
|
|
optimization: "Optimizacion",
|
|
format: "Formato y conversion",
|
|
"video-edit": "Video",
|
|
"video-convert": "Convert",
|
|
"video-effects": "Effects & Compose",
|
|
"video-subtitles": "Subtitles",
|
|
"video-metadata": "Metadata",
|
|
"audio-edit": "Edit",
|
|
"audio-convert": "Convert",
|
|
"audio-effects": "Effects & Compose",
|
|
"audio-metadata": "Metadata",
|
|
"pdf-organize": "Organize",
|
|
"pdf-edit": "Edit & Annotate",
|
|
"pdf-security": "Security",
|
|
"pdf-optimize": "Optimize",
|
|
"doc-convert": "Convert",
|
|
data: "Data Files",
|
|
archives: "Archives",
|
|
},
|
|
modalities: {
|
|
image: "Image",
|
|
video: "Video",
|
|
audio: "Audio",
|
|
documentsAndFiles: "Documents & Files",
|
|
},
|
|
tools: {
|
|
resize: {
|
|
name: "Redimensionar",
|
|
description: "Redimensiona por pixeles, 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 imagenes" },
|
|
convert: { name: "Convertir", description: "Convierte entre formatos de imagen" },
|
|
compress: {
|
|
name: "Comprimir",
|
|
description: "Reduce el tamano del archivo por calidad o tamano objetivo",
|
|
},
|
|
"optimize-for-web": {
|
|
name: "Optimizar para web",
|
|
description:
|
|
"Optimiza imagenes para web con conversion de formato, control de calidad y vista previa en vivo",
|
|
},
|
|
"strip-metadata": {
|
|
name: "Eliminar metadatos",
|
|
description: "Elimina EXIF, GPS e informacion de la camara",
|
|
},
|
|
"edit-metadata": {
|
|
name: "Editar metadatos",
|
|
description: "Edita EXIF, IPTC, XMP, GPS, palabras clave y fechas",
|
|
},
|
|
"bulk-rename": {
|
|
name: "Renombrado masivo",
|
|
description: "Renombra multiples archivos con patrones",
|
|
},
|
|
"image-to-pdf": {
|
|
name: "Imagen a PDF",
|
|
description: "Combina imagenes en un documento PDF",
|
|
},
|
|
"pdf-to-image": { name: "PDF a imagen", description: "Convierte paginas PDF a imagenes" },
|
|
favicon: {
|
|
name: "Generador de Favicon",
|
|
description: "Genera todos los tamanos de favicon e iconos de app",
|
|
},
|
|
"adjust-colors": {
|
|
name: "Ajustar colores",
|
|
description: "Brillo, contraste, exposicion, saturacion, temperatura, nitidez y efectos",
|
|
},
|
|
sharpening: {
|
|
name: "Enfoque",
|
|
description: "Enfoque adaptativo, mascara de desenfoque y paso alto con presets",
|
|
},
|
|
"replace-color": {
|
|
name: "Reemplazar e invertir color",
|
|
description: "Reemplaza colores especificos o invierte",
|
|
},
|
|
"color-blindness": {
|
|
name: "Simulacion de daltonismo",
|
|
description:
|
|
"Simula como se ven las imagenes con diferentes tipos de deficiencia de vision del color",
|
|
},
|
|
"remove-background": {
|
|
name: "Eliminar fondo",
|
|
description: "Eliminacion de fondo con AI",
|
|
},
|
|
upscale: { name: "Escalar imagen", description: "Mejora de super-resolucion con AI" },
|
|
"erase-object": {
|
|
name: "Borrador de objetos",
|
|
description: "Elimina objetos no deseados con AI",
|
|
},
|
|
ocr: {
|
|
name: "OCR / Extraccion de texto",
|
|
description: "Extrae texto de imagenes con precision 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 informacion sensible automaticamente",
|
|
},
|
|
"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 automatica con un clic: exposicion, contraste, color y nitidez inteligentes",
|
|
},
|
|
"noise-removal": {
|
|
name: "Eliminacion de ruido",
|
|
description: "Eliminacion de ruido y grano con AI",
|
|
},
|
|
"red-eye-removal": {
|
|
name: "Eliminacion de ojos rojos",
|
|
description: "Deteccion y correccion de ojos rojos con AI para fotos con flash",
|
|
},
|
|
"restore-photo": {
|
|
name: "Restauracion de fotos",
|
|
description: "Repara rasguños, roturas y daños en fotos antiguas con AI",
|
|
},
|
|
"content-aware-resize": {
|
|
name: "Redimension consciente del contenido",
|
|
description: "Redimensiona imagenes 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: "Colorizacion 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 identificacion que cumplen con los requisitos oficiales, con deteccion automatica de rostro",
|
|
},
|
|
"transcribe-audio": {
|
|
name: "Transcribir audio",
|
|
description: "Convierte voz a texto con transcripcion impulsada por IA",
|
|
},
|
|
"auto-subtitles": {
|
|
name: "Subtitulos automaticos",
|
|
description: "Genera archivos de subtitulos 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 solido",
|
|
},
|
|
"blur-background": {
|
|
name: "Desenfocar fondo",
|
|
description: "Desenfocar el fondo manteniendo el sujeto nitido",
|
|
},
|
|
"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 imagenes",
|
|
},
|
|
compose: {
|
|
name: "Composicion de imagen",
|
|
description: "Superpone imagenes con posicion y opacidad",
|
|
},
|
|
"meme-generator": {
|
|
name: "Generador de Meme",
|
|
description:
|
|
"Crea memes con plantillas populares o tus propias imagenes. Texto clasico estilo Impact con fuentes, colores y posicion personalizables.",
|
|
},
|
|
info: {
|
|
name: "Info de imagen",
|
|
description: "Ve todos los metadatos y propiedades de la imagen",
|
|
},
|
|
compare: { name: "Comparar imagenes", description: "Comparacion lado a lado de dos imagenes" },
|
|
"find-duplicates": {
|
|
name: "Buscar duplicados",
|
|
description: "Detecta imagenes duplicadas y casi duplicadas",
|
|
},
|
|
"color-palette": {
|
|
name: "Paleta de colores",
|
|
description: "Extrae los colores dominantes de una imagen",
|
|
},
|
|
"qr-generate": {
|
|
name: "Generador de codigos QR",
|
|
description: "Genera codigos QR con estilos, colores personalizados, patrones y logos",
|
|
},
|
|
"html-to-image": {
|
|
name: "HTML to Image",
|
|
description: "Capture webpages as high-quality images",
|
|
},
|
|
"barcode-read": {
|
|
name: "Lector de codigos de barras",
|
|
description: "Escanea imagenes en busca de codigos QR, codigos de barras y codigos 2D",
|
|
},
|
|
collage: {
|
|
name: "Collage / Cuadricula",
|
|
description: "Combina imagenes en hermosos collages con mas de 25 plantillas",
|
|
},
|
|
stitch: {
|
|
name: "Unir / Combinar",
|
|
description: "Une imagenes lado a lado, apiladas o en cuadricula",
|
|
},
|
|
split: {
|
|
name: "Dividir imagen",
|
|
description: "Divide imagenes en cuadricula o por tamano en pixeles 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 tamanos de redes sociales a capturas de pantalla",
|
|
},
|
|
"circle-crop": {
|
|
name: "Circle Crop",
|
|
description: "Crop image to a centered circle with transparent corners",
|
|
},
|
|
duotone: {
|
|
name: "Duotone",
|
|
description: "Apply a two-color duotone effect with custom shadow and highlight colors",
|
|
},
|
|
"image-pad": {
|
|
name: "Image Pad",
|
|
description: "Pad image to a target aspect ratio with a solid color background",
|
|
},
|
|
pixelate: {
|
|
name: "Pixelate",
|
|
description: "Apply a pixelation effect to the full image or a specific region",
|
|
},
|
|
vignette: {
|
|
name: "Vignette",
|
|
description: "Add a vignette effect with adjustable strength and color",
|
|
},
|
|
"gif-webp": {
|
|
name: "GIF/WebP Converter",
|
|
description: "Convert animated GIF to WebP and vice versa, preserving all frames",
|
|
},
|
|
histogram: {
|
|
name: "Histogram",
|
|
description: "Generate an RGB histogram chart from an image",
|
|
},
|
|
"lqip-placeholder": {
|
|
name: "LQIP Placeholder",
|
|
description: "Generate a tiny low-quality image placeholder with base64 data URI",
|
|
},
|
|
"sprite-sheet": {
|
|
name: "Sprite Sheet",
|
|
description: "Combine multiple images into a single sprite sheet grid",
|
|
},
|
|
"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 imagenes a graficos 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 imagenes a cadenas Base64 para incrustar en HTML, CSS y mas",
|
|
},
|
|
"barcode-generate": {
|
|
name: "Barcode Generator",
|
|
description: "Generate barcodes in Code 128, EAN-13, UPC-A, Code 39, ITF-14, and Data Matrix",
|
|
},
|
|
"chart-maker": {
|
|
name: "Chart Maker",
|
|
description: "Create bar, line, or pie charts from CSV or JSON data",
|
|
},
|
|
"convert-video": {
|
|
name: "Convert Video",
|
|
description: "Convert videos between MP4, MOV, and WebM",
|
|
},
|
|
"compress-video": {
|
|
name: "Compress Video",
|
|
description: "Shrink video file size with quality control",
|
|
},
|
|
"trim-video": {
|
|
name: "Trim Video",
|
|
description: "Cut a clip out of a video",
|
|
},
|
|
"mute-video": {
|
|
name: "Mute Video",
|
|
description: "Remove the audio track from a video",
|
|
},
|
|
"video-to-gif": {
|
|
name: "Video to GIF",
|
|
description: "Turn a video clip into an animated GIF",
|
|
},
|
|
"resize-video": {
|
|
name: "Resize Video",
|
|
description: "Scale a video to a new resolution or preset size",
|
|
},
|
|
"crop-video": {
|
|
name: "Crop Video",
|
|
description: "Crop a region out of a video",
|
|
},
|
|
"rotate-video": {
|
|
name: "Rotate Video",
|
|
description: "Rotate or flip a video",
|
|
},
|
|
"change-fps": {
|
|
name: "Change FPS",
|
|
description: "Change the frame rate of a video",
|
|
},
|
|
"video-color": {
|
|
name: "Video Color",
|
|
description: "Adjust brightness, contrast, saturation, and gamma",
|
|
},
|
|
"video-speed": {
|
|
name: "Video Speed",
|
|
description: "Speed up or slow down a video",
|
|
},
|
|
"reverse-video": {
|
|
name: "Reverse Video",
|
|
description: "Play a video clip backwards",
|
|
},
|
|
"video-loudnorm": {
|
|
name: "Normalize Audio",
|
|
description: "Normalize video audio volume to broadcast standard",
|
|
},
|
|
"aspect-pad": {
|
|
name: "Aspect Pad",
|
|
description: "Add solid-color bars to fit a target aspect ratio",
|
|
},
|
|
"blur-pad": {
|
|
name: "Blur Pad",
|
|
description: "Fill bars with a blurred copy of the video",
|
|
},
|
|
"watermark-video": {
|
|
name: "Watermark Video",
|
|
description: "Burn a text watermark onto video frames",
|
|
},
|
|
"stabilize-video": {
|
|
name: "Stabilize Video",
|
|
description: "Reduce camera shake with two-pass stabilization",
|
|
},
|
|
"gif-to-video": {
|
|
name: "GIF to Video",
|
|
description: "Convert an animated GIF into an MP4 or WebM video",
|
|
},
|
|
"video-to-webp": {
|
|
name: "Video to WebP",
|
|
description: "Convert a video clip into an animated WebP image",
|
|
},
|
|
"video-to-frames": {
|
|
name: "Video to Frames",
|
|
description: "Extract frames from a video as a ZIP of images",
|
|
},
|
|
"merge-videos": {
|
|
name: "Merge Videos",
|
|
description: "Join multiple video clips into one file",
|
|
},
|
|
"replace-audio": {
|
|
name: "Replace Audio",
|
|
description: "Swap the audio track of a video with another file",
|
|
},
|
|
"burn-subtitles": {
|
|
name: "Burn Subtitles",
|
|
description: "Permanently render subtitles onto video frames",
|
|
},
|
|
"embed-subtitles": {
|
|
name: "Embed Subtitles",
|
|
description: "Mux a subtitle track into the video container",
|
|
},
|
|
"extract-subtitles": {
|
|
name: "Extract Subtitles",
|
|
description: "Pull the subtitle track out of a video as an SRT file",
|
|
},
|
|
"images-to-video": {
|
|
name: "Images to Video",
|
|
description: "Turn a set of images into a slideshow video",
|
|
},
|
|
"video-metadata": {
|
|
name: "Clean Video Metadata",
|
|
description: "Strip metadata from a video and report what was found",
|
|
},
|
|
"convert-audio": {
|
|
name: "Convert Audio",
|
|
description: "Convert audio between MP3, WAV, OGG, and more",
|
|
},
|
|
"trim-audio": {
|
|
name: "Trim Audio",
|
|
description: "Cut a section out of an audio file",
|
|
},
|
|
"extract-audio": {
|
|
name: "Extract Audio",
|
|
description: "Pull the audio track out of a video",
|
|
},
|
|
"volume-adjust": {
|
|
name: "Volume Adjust",
|
|
description: "Increase or decrease audio volume by a fixed gain",
|
|
},
|
|
"normalize-audio": {
|
|
name: "Normalize Audio",
|
|
description: "Even out loudness to broadcast standard levels",
|
|
},
|
|
"fade-audio": {
|
|
name: "Fade Audio",
|
|
description: "Add fade-in and fade-out effects to audio",
|
|
},
|
|
"reverse-audio": {
|
|
name: "Reverse Audio",
|
|
description: "Play audio backwards",
|
|
},
|
|
"audio-speed": {
|
|
name: "Audio Speed",
|
|
description: "Speed up or slow down audio playback",
|
|
},
|
|
"pitch-shift": {
|
|
name: "Pitch Shift",
|
|
description: "Raise or lower pitch by semitones without changing speed",
|
|
},
|
|
"audio-channels": {
|
|
name: "Audio Channels",
|
|
description: "Convert between mono, stereo, or swap left and right channels",
|
|
},
|
|
"silence-removal": {
|
|
name: "Silence Removal",
|
|
description: "Strip silent sections from audio",
|
|
},
|
|
"noise-reduction": {
|
|
name: "Noise Reduction",
|
|
description: "Reduce background noise with FFT-based denoising",
|
|
},
|
|
"merge-audio": {
|
|
name: "Merge Audio",
|
|
description: "Combine multiple audio files into one",
|
|
},
|
|
"split-audio": {
|
|
name: "Split Audio",
|
|
description: "Split audio by time, equal parts, or silence detection",
|
|
},
|
|
"ringtone-maker": {
|
|
name: "Ringtone Maker",
|
|
description: "Create a ringtone clip from any audio file",
|
|
},
|
|
"waveform-image": {
|
|
name: "Waveform Image",
|
|
description: "Generate a waveform visualization as a PNG image",
|
|
},
|
|
"audio-metadata": {
|
|
name: "Audio Metadata",
|
|
description: "View, edit, or strip audio tags (ID3)",
|
|
},
|
|
"merge-pdf": {
|
|
name: "Merge PDFs",
|
|
description: "Combine multiple PDFs into one",
|
|
},
|
|
"split-pdf": {
|
|
name: "Split PDF",
|
|
description: "Extract pages or split into parts",
|
|
},
|
|
"compress-pdf": {
|
|
name: "Compress PDF",
|
|
description: "Shrink PDF file size",
|
|
},
|
|
"rotate-pdf": {
|
|
name: "Rotate PDF",
|
|
description: "Rotate pages in a PDF",
|
|
},
|
|
"convert-document": {
|
|
name: "Convert Document",
|
|
description: "Convert between Word, OpenDocument, RTF, and plain text formats",
|
|
},
|
|
"convert-presentation": {
|
|
name: "Convert Presentation",
|
|
description: "Convert between PowerPoint and OpenDocument presentation formats",
|
|
},
|
|
"convert-spreadsheet": {
|
|
name: "Convert Spreadsheet",
|
|
description:
|
|
"Convert between Excel, OpenDocument, and CSV formats. Multi-sheet workbooks export the first sheet to CSV.",
|
|
},
|
|
"excel-to-pdf": {
|
|
name: "Excel to PDF",
|
|
description: "Convert spreadsheets to PDF. Wide sheets may paginate across multiple pages.",
|
|
},
|
|
"word-to-pdf": {
|
|
name: "Word to PDF",
|
|
description: "Convert Word documents to PDF",
|
|
},
|
|
"extract-pages": {
|
|
name: "Extract Pages",
|
|
description: "Pull selected pages into a new PDF",
|
|
},
|
|
"remove-pages": {
|
|
name: "Remove Pages",
|
|
description: "Delete specific pages from a PDF",
|
|
},
|
|
"organize-pdf": {
|
|
name: "Organize PDF",
|
|
description: "Reorder pages with an explicit page order",
|
|
},
|
|
"protect-pdf": {
|
|
name: "Protect PDF",
|
|
description: "Add password protection (AES-256 encryption)",
|
|
},
|
|
"unlock-pdf": {
|
|
name: "Unlock PDF",
|
|
description: "Remove password protection from a PDF",
|
|
},
|
|
"repair-pdf": {
|
|
name: "Repair PDF",
|
|
description: "Attempt to repair a damaged or corrupted PDF",
|
|
},
|
|
"linearize-pdf": {
|
|
name: "Web-Optimize PDF",
|
|
description: "Linearize a PDF for fast web viewing",
|
|
},
|
|
"grayscale-pdf": {
|
|
name: "Grayscale PDF",
|
|
description: "Convert all colors to grayscale",
|
|
},
|
|
"pdfa-convert": {
|
|
name: "PDF/A Convert",
|
|
description: "Convert to archival PDF/A-2",
|
|
},
|
|
"crop-pdf": {
|
|
name: "Crop PDF",
|
|
description: "Crop all pages with a uniform margin",
|
|
},
|
|
"nup-pdf": {
|
|
name: "N-up PDF",
|
|
description: "Arrange multiple pages per sheet",
|
|
},
|
|
"booklet-pdf": {
|
|
name: "Booklet PDF",
|
|
description: "Arrange pages for folding into a booklet",
|
|
},
|
|
"watermark-pdf": {
|
|
name: "Watermark PDF",
|
|
description: "Add a text watermark to every page",
|
|
},
|
|
"pdf-page-numbers": {
|
|
name: "PDF Page Numbers",
|
|
description: "Add page numbers to every page",
|
|
},
|
|
"flatten-pdf": {
|
|
name: "Flatten PDF",
|
|
description: "Bake forms and annotations into page content",
|
|
},
|
|
"redact-pdf": {
|
|
name: "Redact PDF",
|
|
description: "Permanently remove text occurrences (verified true redaction)",
|
|
},
|
|
"pdf-to-text": {
|
|
name: "PDF to Text",
|
|
description: "Extract plain text from a PDF",
|
|
},
|
|
"pdf-to-word": {
|
|
name: "PDF to Word",
|
|
description: "Best for text-based PDFs; scanned pages need OCR",
|
|
},
|
|
"pdf-metadata": {
|
|
name: "PDF Metadata",
|
|
description: "Read and write PDF document metadata",
|
|
},
|
|
"powerpoint-to-pdf": {
|
|
name: "PowerPoint to PDF",
|
|
description: "Convert presentations to PDF",
|
|
},
|
|
"html-to-pdf": {
|
|
name: "HTML to PDF",
|
|
description: "Convert an HTML file to PDF. Remote resources are disabled for privacy.",
|
|
},
|
|
"markdown-to-docx": {
|
|
name: "Markdown to Word",
|
|
description: "Convert a Markdown file to a Word document (DOCX)",
|
|
},
|
|
"markdown-to-html": {
|
|
name: "Markdown to HTML",
|
|
description:
|
|
"Convert a Markdown file to a standalone HTML page. Remote images in the source are left as-is in the output.",
|
|
},
|
|
"markdown-to-pdf": {
|
|
name: "Markdown to PDF",
|
|
description:
|
|
"Convert a Markdown file to a styled PDF. Remote resources are disabled for privacy.",
|
|
},
|
|
"epub-convert": {
|
|
name: "Convert EPUB",
|
|
description:
|
|
"Convert an EPUB to PDF, DOCX, HTML, or Markdown. Remote resources inside the book are not fetched.",
|
|
},
|
|
"to-epub": {
|
|
name: "Convert to EPUB",
|
|
description: "Convert Word, Markdown, HTML, or plain text files to EPUB",
|
|
},
|
|
"csv-excel": {
|
|
name: "CSV to Excel",
|
|
description: "Convert between CSV and Excel (XLSX), both directions",
|
|
},
|
|
"csv-json": {
|
|
name: "CSV to JSON",
|
|
description: "Convert between CSV and JSON, both directions",
|
|
},
|
|
"json-xml": {
|
|
name: "JSON to XML",
|
|
description: "Convert between JSON and XML, both directions",
|
|
},
|
|
"split-csv": {
|
|
name: "Split CSV",
|
|
description: "Split a CSV into smaller files by row count",
|
|
},
|
|
"merge-csvs": {
|
|
name: "Merge CSVs",
|
|
description: "Combine multiple CSV or TSV files with matching columns into one",
|
|
},
|
|
"yaml-json": {
|
|
name: "YAML / JSON",
|
|
description: "Convert between YAML and JSON, both directions",
|
|
},
|
|
"xml-to-csv": {
|
|
name: "XML to CSV",
|
|
description: "Extract repeating elements from XML into a CSV table",
|
|
},
|
|
"create-zip": {
|
|
name: "Create ZIP",
|
|
description: "Bundle multiple files into a single ZIP archive",
|
|
},
|
|
"extract-zip": {
|
|
name: "Extract ZIP",
|
|
description:
|
|
"Safely extract files from a ZIP archive with bomb protection. Single-file archives return the file directly.",
|
|
},
|
|
pipeline: {
|
|
name: "Constructor de Pipeline",
|
|
description: "Encadena multiples herramientas en un flujo de trabajo",
|
|
},
|
|
processing: { canceled: "Processing canceled" },
|
|
mediaPlayer: {
|
|
unsupported: "Your browser does not support this media format.",
|
|
},
|
|
documentView: {
|
|
loadFailed: "Failed to load document.",
|
|
previousPage: "Previous page",
|
|
nextPage: "Next page",
|
|
},
|
|
},
|
|
toolSettings: {
|
|
compress: {
|
|
compressionMode: "Modo de compresion",
|
|
targetSize: "Tamano objetivo",
|
|
quality: "Calidad",
|
|
smallestFile: "Archivo mas pequeno",
|
|
bestQuality: "Mejor calidad",
|
|
submit: "Comprimir",
|
|
submitBatch: "Comprimir ({count} archivos)",
|
|
progressLabel: "Comprimiendo",
|
|
original: "Original: {size} KB",
|
|
processed: "Procesado: {size} KB",
|
|
saved: "Ahorro: {percent}%",
|
|
},
|
|
resize: {
|
|
customSize: "Tamano personalizado",
|
|
scale: "Escala",
|
|
presets: "Presets",
|
|
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 tamano original",
|
|
limitToOriginalSizeHint:
|
|
"Si tu imagen ya es mas pequena que el objetivo, se mantiene como esta 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: "Relacion de aspecto",
|
|
custom: "Personalizado",
|
|
positionAndSize: "Posicion y tamano",
|
|
ruleOfThirds: "Regla de tercios",
|
|
leftOffsetPx: "Desplazamiento izquierdo (px)",
|
|
topOffsetPx: "Desplazamiento superior (px)",
|
|
submit: "Recortar",
|
|
submitBatch: "Recortar ({count} archivos)",
|
|
progressLabel: "Recortando",
|
|
},
|
|
rotate: {
|
|
rotate: "Rotar",
|
|
angle: "Angulo",
|
|
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 mas pequeno",
|
|
bestQuality: "Mejor calidad",
|
|
maxDimensions: "Dimensiones maximas",
|
|
maxWidth: "Ancho maximo",
|
|
maxHeight: "Alto maximo",
|
|
stripMetadata: "Eliminar metadatos",
|
|
sizeComparison: "Comparacion de tamano",
|
|
optimized: "Optimizado:",
|
|
smaller: "{percent}% mas pequeno",
|
|
larger: "{percent}% mas 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 especificos:",
|
|
stripExif: "Eliminar EXIF (info de camara, fecha, exposicion)",
|
|
stripGps: "Eliminar GPS (datos de ubicacion)",
|
|
stripIcc: "Eliminar ICC (perfil de color)",
|
|
stripXmp: "Eliminar XMP (metadatos extensibles)",
|
|
locationFound: "ubicacion encontrada",
|
|
locationWarning:
|
|
"Esta imagen contiene tu ubicacion precisa. Considera eliminar los datos GPS antes de compartirla.",
|
|
metadataSections: "{count} seccion 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 comenzaran vacios.",
|
|
basicInfo: "Informacion basica",
|
|
description: "Descripcion",
|
|
artist: "Artista",
|
|
copyright: "Copyright",
|
|
software: "Software",
|
|
iptc: "IPTC",
|
|
title: "Titulo",
|
|
headline: "Titular",
|
|
city: "Ciudad",
|
|
stateProvince: "Estado/Provincia",
|
|
country: "Pais",
|
|
dateAndTime: "Fecha y hora",
|
|
editDates: "Editar fechas",
|
|
shiftAllDates: "Ajustar todas las fechas",
|
|
dateModified: "Fecha de modificacion",
|
|
dateTaken: "Fecha de captura",
|
|
shiftHint:
|
|
"Ajusta todos los campos de fecha con un desfase (util para correcciones de zona horaria)",
|
|
direction: "Direccion",
|
|
forward: "+ Adelante",
|
|
backward: "- Atras",
|
|
hoursMinutes: "Horas:Minutos",
|
|
locationGps: "Ubicacion (GPS)",
|
|
locationDataFound: "Datos de ubicacion 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: "Patron",
|
|
patternHint: "Variables: {{index}}, {{padded}}, {{original}}",
|
|
startIndex: "Indice inicial",
|
|
preview: "Vista previa",
|
|
andMore: "... y {count} mas",
|
|
renaming: "Renombrando...",
|
|
submit: "Renombrar {count} archivos",
|
|
zipDownloaded: "ZIP descargado correctamente",
|
|
},
|
|
"image-to-pdf": {
|
|
imageCount: "{count} imagen se convertira a {mode}",
|
|
imageCountPlural: "{count} imagenes se convertiran a {mode}",
|
|
singlePdfMode: "un solo PDF, una imagen por pagina",
|
|
separatePdfMode: "PDFs separados, uno por imagen",
|
|
combineAllImages: "Combinar todas las imagenes en un PDF",
|
|
pageSize: "Tamano de pagina",
|
|
orientation: "Orientacion",
|
|
portrait: "Vertical",
|
|
landscape: "Horizontal",
|
|
margin: "Margen",
|
|
targetSizeLabel: "Tamano de archivo objetivo (opcional)",
|
|
targetSizePlaceholder: "ej. 2",
|
|
targetSizeHint: "Dejar vacio para calidad maxima",
|
|
targetSizeMet: "Objetivo alcanzado",
|
|
targetSizeNotMet: "No se pudo alcanzar el objetivo. Archivo comprimido a calidad minima.",
|
|
targetSizeTooSmall: "El objetivo debe ser al menos 50KB",
|
|
jpegQualityLabel: "Calidad JPEG utilizada",
|
|
noImage: "Sin imagen",
|
|
submitCollate: "Crear PDF ({count} paginas)",
|
|
submitSeparate: "Crear {count} PDFs",
|
|
downloadPdf: "Descargar PDF",
|
|
downloadZip: "Descargar ZIP",
|
|
progressLabel: "Creando PDF",
|
|
uploadingImages: "Subiendo imagenes...",
|
|
processingPages: "Procesando {count} paginas...",
|
|
},
|
|
"pdf-to-image": {
|
|
dropPdf: "Arrastra un PDF aqui o haz clic para seleccionar",
|
|
readingPdf: "Leyendo PDF...",
|
|
pageCount: "{count} pagina",
|
|
pageCountPlural: "{count} paginas",
|
|
outputFormat: "Formato de salida",
|
|
quality: "Calidad",
|
|
resolutionDpi: "Resolucion (DPI)",
|
|
dpiScreen: "Pantalla",
|
|
dpiStandard: "Estandar",
|
|
dpiPrint: "Impresion",
|
|
dpiHighQuality: "Alta calidad",
|
|
colorMode: "Modo de color",
|
|
colorModeColor: "Color",
|
|
colorModeGrayscale: "Escala de grises",
|
|
colorModeBw: "B&N",
|
|
pages: "Paginas",
|
|
allPages: "Todas las paginas",
|
|
pagesHint: "ej. 1-3, 5, 8-10 (el documento tiene {count} paginas)",
|
|
converting: "Convirtiendo...",
|
|
submit: "Convertir {count} pagina",
|
|
submitPlural: "Convertir {count} paginas",
|
|
downloadAllZip: "Descargar todo (ZIP)",
|
|
},
|
|
favicon: {
|
|
uploadHint:
|
|
"Sube imagenes cuadradas (se recomienda 512x512 o mayor) para generar todos los tamanos de favicon e iconos de app.",
|
|
multipleHint: "Cada una de las {count} imagenes obtiene su propia carpeta en el ZIP.",
|
|
generatedSizes: "Tamanos generados (por imagen)",
|
|
plusManifest: "+ manifest.json + fragmento HTML",
|
|
submit: "Generar Favicons ({count} imagen)",
|
|
submitPlural: "Generar Favicons ({count} imagenes)",
|
|
downloadZip: "Descargar ZIP de Favicons",
|
|
progressLabel: "Generando Favicons",
|
|
},
|
|
"adjust-colors": {
|
|
light: "Luz",
|
|
brightness: "Brillo",
|
|
contrast: "Contraste",
|
|
exposure: "Exposicion",
|
|
color: "Color",
|
|
saturation: "Saturacion",
|
|
temperature: "Temperatura",
|
|
temperatureHint: "frio / calido",
|
|
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: "Metodo",
|
|
adaptive: "Adaptativo",
|
|
unsharpMask: "Mascara de desenfoque",
|
|
highPass: "Paso alto",
|
|
presets: "Presets",
|
|
textureAmount: "Cantidad de textura",
|
|
amount: "Cantidad",
|
|
strength: "Intensidad",
|
|
noiseReduction: "Reduccion de ruido",
|
|
off: "desactivado",
|
|
lightDenoise: "ligero",
|
|
mediumDenoise: "medio",
|
|
strongDenoise: "fuerte",
|
|
advancedControls: "Controles avanzados",
|
|
radius: "Radio",
|
|
flatProtection: "Proteccion de areas planas",
|
|
detailThreshold: "Umbral de detalle",
|
|
haloLimitLight: "Limite de halo (claro)",
|
|
haloLimitDark: "Limite de halo (oscuro)",
|
|
threshold: "Umbral",
|
|
kernelSize: "Tamano 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 simulacion",
|
|
redGreen: "Rojo-Verde",
|
|
blueYellow: "Azul-Amarillo",
|
|
monochromatic: "Monocromatico",
|
|
submit: "Simular",
|
|
submitBatch: "Simular ({count} archivos)",
|
|
progressLabel: "Simulando daltonismo",
|
|
},
|
|
"remove-background": {
|
|
subject: "Sujeto",
|
|
people: "Personas",
|
|
products: "Productos",
|
|
general: "General",
|
|
passportIdPhoto: "Foto de pasaporte / identificacion",
|
|
quality: "Calidad",
|
|
fast: "Rapido",
|
|
hd: "HD",
|
|
max: "Max",
|
|
ultra: "Ultra",
|
|
background: "Fondo",
|
|
transparent: "Transparente",
|
|
bgColor: "Color",
|
|
gradient: "Degradado",
|
|
image: "Imagen",
|
|
gradientDirection: "Direccion",
|
|
chooseBackgroundImage: "Elegir imagen de fondo",
|
|
effectsSection: "Efectos",
|
|
effectsActive: "activos",
|
|
blurBackground: "Desenfocar fondo",
|
|
intensity: "Intensidad",
|
|
addShadow: "Agregar sombra",
|
|
opacity: "Opacidad",
|
|
outputFormat: "Output Format",
|
|
edgeSmoothing: "Edge Smoothing",
|
|
edgeSmoothingOff: "Off",
|
|
edgeSmoothingLight: "Light",
|
|
edgeSmoothingMedium: "Medium",
|
|
edgeSmoothingStrong: "Strong",
|
|
colorDecontamination: "Color Decontamination",
|
|
rendering: "Renderizando...",
|
|
submit: "Eliminar fondo",
|
|
submitBatch: "Eliminar fondo ({count} archivos)",
|
|
progressLabel: "Eliminando fondo",
|
|
},
|
|
upscale: {
|
|
scaleFactor: "Factor de escala",
|
|
quality: "Calidad",
|
|
enhanceFaces: "Mejorar rostros",
|
|
noiseReduction: "Reduccion de ruido",
|
|
noiseReductionHint:
|
|
"Suaviza el grano y el ruido. Valores mas altos eliminan mas 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} imagenes",
|
|
},
|
|
"erase-object": {
|
|
brushSize: "Tamano 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 automaticamente antes del escaneo para mayor precision.",
|
|
language: "Idioma",
|
|
autoDetect: "Deteccion automatica",
|
|
extractedText: "Texto extraido",
|
|
noTextDetected: "No se detecto 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 automaticamente",
|
|
pages: "Paginas",
|
|
pagesPlaceholder: "all, 1-3, 5",
|
|
pagesHint: "Ingrese numeros de pagina o rangos (ej. 1-3, 5, 8-10). Maximo 50 paginas.",
|
|
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 deteccion",
|
|
moreFaces: "Mas 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 deteccion",
|
|
submit: "Mejorar rostros",
|
|
submitBatch: "Mejorar rostros ({count} archivos)",
|
|
progressLabel: "Mejorando rostros",
|
|
},
|
|
"smart-crop": {
|
|
subjectFocus: "Enfoque en sujeto",
|
|
faceFocus: "Enfoque en rostro",
|
|
autoTrim: "Recorte automatico",
|
|
customSize: "Tamano personalizado",
|
|
socialPresets: "Presets de redes sociales",
|
|
detectionStrategy: "Estrategia de deteccion",
|
|
detectionStrategyHint:
|
|
"Atencion encuentra la region visualmente mas relevante. Entropia encuentra el area con mas detalle e informacion.",
|
|
attention: "Atencion",
|
|
entropy: "Entropia",
|
|
padding: "Relleno",
|
|
paddingHint: "Espacio extra alrededor del area de enfoque",
|
|
outputQuality: "Calidad de salida",
|
|
outputQualityHint: "Para salidas JPEG y WebP. PNG siempre es sin perdida.",
|
|
subjectDescription:
|
|
"Detecta la region mas interesante usando analisis de relevancia y recorta al tamano deseado.",
|
|
framing: "Encuadre",
|
|
facePadding: "Espacio alrededor del rostro",
|
|
facePaddingHint: "Espacio extra alrededor de los rostros detectados",
|
|
fewerFalsePositives: "Menos falsos positivos",
|
|
faceDescription:
|
|
"Usa deteccion facial con AI para mantener los rostros bien encuadrados. Si no se detectan rostros, usa el enfoque en sujeto.",
|
|
trimTolerance: "Tolerancia",
|
|
trimDescription:
|
|
"Que tan diferente puede ser un pixel del borde respecto al color del borde y aun asi ser recortado. Mayor = mas agresivo.",
|
|
padToSquare: "Rellenar a cuadrado",
|
|
targetSizePx: "Tamano objetivo (px)",
|
|
padColor: "Color de relleno",
|
|
trimHint:
|
|
'Elimina bordes de color uniforme alrededor del sujeto. Activa "Rellenar a cuadrado" para imagenes listas para e-commerce.',
|
|
submitSubject: "Recorte inteligente",
|
|
submitFace: "Recorte facial",
|
|
submitTrim: "Recortar bordes",
|
|
},
|
|
imageEnhancement: {
|
|
enhancementMode: "Modo de mejora",
|
|
auto: "Automatico",
|
|
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 exposicion",
|
|
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} imagenes",
|
|
},
|
|
"noise-removal": {
|
|
denoisingTier: "Nivel de eliminacion de ruido",
|
|
quick: "Rapido",
|
|
balanced: "Equilibrado",
|
|
quality: "Calidad",
|
|
maximum: "Maximo",
|
|
quickDesc: "Rapido y ligero",
|
|
balancedDesc: "Buena calidad, velocidad moderada",
|
|
qualityDesc: "Con AI, lento",
|
|
maximumDesc: "Mejor modelo AI, mas lento",
|
|
strength: "Intensidad",
|
|
subtle: "Sutil",
|
|
aggressive: "Agresivo",
|
|
detailPreservation: "Preservacion de detalles",
|
|
smooth: "Suave",
|
|
sharp: "Nitido",
|
|
colorNoise: "Ruido de color",
|
|
heavy: "Intenso",
|
|
outputFormat: "Formato de salida",
|
|
gifAiWarning:
|
|
"La eliminacion de ruido con AI en archivos GIF procesa solo el primer fotograma. Para GIFs animados, usa el nivel Rapido o Equilibrado.",
|
|
submit: "Eliminar ruido",
|
|
submitBatch: "Eliminar ruido ({count} archivos)",
|
|
progressLabel: "Eliminando ruido",
|
|
progressLabelBatch: "Eliminando ruido de {count} imagenes",
|
|
},
|
|
"red-eye-removal": {
|
|
sensitivity: "Sensibilidad",
|
|
strict: "Estricta",
|
|
aggressive: "Agresiva",
|
|
correctionStrength: "Intensidad de correccion",
|
|
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} imagenes",
|
|
},
|
|
"restore-photo": {
|
|
scratchRemoval: "Eliminacion 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: "Reduccion de ruido",
|
|
noiseReductionDesc: "Elimina grano y ruido de fotos antiguas",
|
|
denoiseStrength: "Intensidad del eliminador de ruido",
|
|
autoColorize: "Colorizar automaticamente",
|
|
autoColorizeDesc: "Agrega color a fotos en B&N usando DDColor AI",
|
|
colorizeStrength: "Intensidad de colorizacion",
|
|
vivid: "Vivido",
|
|
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 areas de rostros de la eliminacion de costuras usando deteccion 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: "Rapido",
|
|
balanced: "Equilibrado",
|
|
highQuality: "Alta calidad",
|
|
fastDesc: "Vista previa rapida, menos pasadas de AI",
|
|
balancedDesc: "Buena calidad, velocidad moderada",
|
|
highQualityDesc: "Mejores resultados, mas lento",
|
|
extendToAspectRatio: "Extender a relacion de aspecto",
|
|
extendByPixels: "Extender por (pixeles)",
|
|
top: "Arriba",
|
|
right: "Derecha",
|
|
bottom: "Abajo",
|
|
left: "Izquierda",
|
|
newSize: "Nuevo tamano: {width} x {height}",
|
|
submit: "Extender lienzo",
|
|
submitBatch: "Extender ({count} archivos)",
|
|
progressLabel: "Extendiendo lienzo",
|
|
},
|
|
colorize: {
|
|
aiModel: "Modelo AI",
|
|
fast: "Rapido",
|
|
fastDesc: "Resultados rapidos",
|
|
balanced: "Equilibrado",
|
|
balancedDesc: "El mejor disponible",
|
|
best: "Mejor",
|
|
bestDesc: "La mas alta calidad",
|
|
colorIntensity: "Intensidad de color",
|
|
grayscaleLabel: "Escala de grises",
|
|
subtleLabel: "Sutil",
|
|
naturalLabel: "Natural",
|
|
vividLabel: "Vivido",
|
|
intensityHint: "Valores mas bajos producen colores mas apagados, estilo vintage.",
|
|
strength: "Intensidad de colorizacion",
|
|
submit: "Colorizar",
|
|
submitBatch: "Colorizar ({count} archivos)",
|
|
progressLabel: "Colorizando",
|
|
progressLabelBatch: "Colorizando {count} imagenes",
|
|
},
|
|
"passport-photo": {
|
|
country: "Pais",
|
|
searchCountries: "Buscar paises...",
|
|
noCountriesFound: "No se encontraron paises",
|
|
customDimensions: "Dimensiones personalizadas",
|
|
documentType: "Tipo de documento",
|
|
dimensionsMm: "Dimensiones (mm)",
|
|
dpi: "DPI",
|
|
pixelsPerInch: "pixeles por pulgada",
|
|
backgroundColor: "Color de fondo",
|
|
maxFileSize: "Tamano maximo de archivo",
|
|
noLimit: "Sin limite",
|
|
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: "Tamano del rostro",
|
|
whatYouSee: "Lo que ves es lo que descargas",
|
|
dragToAdjust: "Arrastra para ajustar",
|
|
scrollToZoom: "Desplaza para hacer zoom",
|
|
photoGenerated: "Foto generada. Descargala desde el panel izquierdo.",
|
|
},
|
|
"transcribe-audio": {
|
|
language: "Idioma",
|
|
autoDetect: "Deteccion automatica",
|
|
outputFormat: "Formato de salida",
|
|
plainText: "Texto plano",
|
|
submit: "Transcribir",
|
|
submitBatch: "Transcribir ({count} archivos)",
|
|
progressLabel: "Transcribiendo audio",
|
|
},
|
|
"auto-subtitles": {
|
|
language: "Idioma",
|
|
autoDetect: "Deteccion automatica",
|
|
format: "Formato de subtitulos",
|
|
submit: "Generar subtitulos",
|
|
submitBatch: "Generar subtitulos ({count} archivos)",
|
|
progressLabel: "Generando subtitulos",
|
|
},
|
|
"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: "Tamano de fuente",
|
|
color: "Color",
|
|
opacity: "Opacidad",
|
|
position: "Posicion",
|
|
rotation: "Rotacion",
|
|
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: "Posicion",
|
|
opacity: "Opacidad",
|
|
scale: "Escala",
|
|
submit: "Aplicar marca de agua",
|
|
submitBatch: "Aplicar marca de agua ({count} archivos)",
|
|
},
|
|
"text-overlay": {
|
|
text: "Texto",
|
|
fontSize: "Tamano de fuente",
|
|
color: "Color",
|
|
position: "Posicion",
|
|
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: "Download",
|
|
defaultText: "Your Text Here",
|
|
},
|
|
compose: {
|
|
uploadOverlay: "Subir imagen de superposicion",
|
|
xPosition: "Posicion X",
|
|
yPosition: "Posicion Y",
|
|
opacity: "Opacidad",
|
|
blendMode: "Modo de mezcla",
|
|
submit: "Componer",
|
|
},
|
|
"meme-generator": {
|
|
selectTemplate:
|
|
"Selecciona una plantilla de la galeria o sube tu propia imagen para comenzar.",
|
|
chooseLayout: "Elige un diseno de texto para tu imagen personalizada.",
|
|
textContent: "Contenido del texto",
|
|
textStyle: "Estilo del texto",
|
|
font: "Fuente",
|
|
fontSize: "Tamano de fuente",
|
|
textColor: "Color del texto",
|
|
strokeColor: "Color del borde",
|
|
allCaps: "MAYUSCULAS",
|
|
generate: "Generar Meme",
|
|
generating: "Generando...",
|
|
downloadMeme: "Descargar Meme",
|
|
backToGallery: "Volver a la galeria",
|
|
},
|
|
info: {
|
|
loadingInfo: "Cargando informacion...",
|
|
filename: "Nombre de archivo",
|
|
fileSize: "Tamano de archivo",
|
|
dimensions: "Dimensiones",
|
|
format: "Formato",
|
|
channels: "Canales",
|
|
colorSpace: "Espacio de color",
|
|
density: "Densidad",
|
|
bitDepth: "Profundidad de bits",
|
|
progressive: "Progresivo",
|
|
pages: "Paginas",
|
|
hasAlpha: "Tiene alfa",
|
|
hasProfile: "Tiene perfil",
|
|
hasExif: "Tiene EXIF",
|
|
hasIcc: "Tiene ICC",
|
|
hasXmp: "Tiene XMP",
|
|
readInfo: "Read Info",
|
|
reading: "Reading...",
|
|
channelStats: "Channel Stats",
|
|
yes: "Yes",
|
|
no: "No",
|
|
na: "N/A",
|
|
failedToRead: "Failed to read info",
|
|
},
|
|
compare: {
|
|
uploadSecondImage: "Subir segunda imagen",
|
|
similarity: "Similitud: {percent}%",
|
|
submit: "Comparar",
|
|
downloadDiff: "Descargar diferencia",
|
|
},
|
|
"find-duplicates": {
|
|
preset: "Preset",
|
|
exact: "Exacto",
|
|
similar: "Similar",
|
|
loose: "Amplio",
|
|
exactDesc: "Copias identicas pixel por pixel, misma imagen en diferentes formatos.",
|
|
similarDesc: "Copias redimensionadas, recomprimidas o con ediciones leves.",
|
|
looseDesc: "Imagenes 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: "Email",
|
|
phone: "Telefono",
|
|
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 codigo QR",
|
|
download: "Descargar codigo QR",
|
|
},
|
|
"html-to-image": {
|
|
modeUrl: "URL",
|
|
modeHtml: "HTML File",
|
|
htmlFile: "HTML File",
|
|
url: "URL",
|
|
urlPlaceholder: "https://snapotter.com",
|
|
format: "Output Format",
|
|
quality: "Quality",
|
|
devicePreset: "Device",
|
|
viewportWidth: "Width",
|
|
viewportHeight: "Height",
|
|
fullPage: "Full Page",
|
|
submit: "Capture",
|
|
download: "Download Screenshot",
|
|
capturing: "Capturing webpage...",
|
|
errorTimeout: "Page took too long to load",
|
|
errorBlocked: "This URL cannot be captured",
|
|
errorUnavailable: "Screenshot service is not available",
|
|
errorFailed: "Failed to capture the page",
|
|
placeholder: "Enter a URL and click Capture",
|
|
presets: {
|
|
desktop: "Desktop",
|
|
tablet: "Tablet",
|
|
mobile: "Mobile",
|
|
custom: "Custom",
|
|
},
|
|
},
|
|
"barcode-read": {
|
|
submit: "Escanear codigos de barras",
|
|
submitBatch: "Escanear ({count} archivos)",
|
|
scanning: "Escaneando...",
|
|
noBarcodesFound: "No se encontraron codigos de barras",
|
|
barcodesFound: "{count} codigo de barras encontrado",
|
|
barcodesFoundPlural: "{count} codigos de barras encontrados",
|
|
},
|
|
collage: {
|
|
template: "Plantilla",
|
|
aspectRatio: "Relacion 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: "Direccion",
|
|
horizontal: "Horizontal",
|
|
vertical: "Vertical",
|
|
grid: "Cuadricula",
|
|
gridColumns: "Columnas de cuadricula",
|
|
resizeMode: "Modo de redimension",
|
|
fit: "Ajustar",
|
|
original: "Original",
|
|
stretchMode: "Estirar",
|
|
cropMode: "Recortar",
|
|
alignment: "Alineacion",
|
|
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 imagenes",
|
|
},
|
|
split: {
|
|
modeGrid: "Cuadricula",
|
|
modeTileSize: "Tamano de mosaico",
|
|
presets: "Presets",
|
|
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: "Presets",
|
|
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: "Preset",
|
|
backgroundType: "Tipo de fondo",
|
|
solidColor: "Color solido",
|
|
linearGradient: "Degradado lineal",
|
|
radialGradient: "Degradado radial",
|
|
customImage: "Imagen personalizada",
|
|
gradientAngle: "Angulo 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: "Circle Crop",
|
|
submitBatch: "Circle Crop ({count} files)",
|
|
progressLabel: "Cropping to circle",
|
|
},
|
|
duotone: {
|
|
shadow: "Shadow Color",
|
|
highlight: "Highlight Color",
|
|
submit: "Apply Duotone",
|
|
submitBatch: "Apply Duotone ({count} files)",
|
|
progressLabel: "Applying duotone",
|
|
},
|
|
"image-pad": {
|
|
target: "Target Ratio",
|
|
color: "Background Color",
|
|
submit: "Pad Image",
|
|
submitBatch: "Pad Image ({count} files)",
|
|
progressLabel: "Padding image",
|
|
},
|
|
pixelate: {
|
|
blockSize: "Block Size",
|
|
submit: "Pixelate",
|
|
submitBatch: "Pixelate ({count} files)",
|
|
progressLabel: "Pixelating",
|
|
},
|
|
vignette: {
|
|
strength: "Strength",
|
|
color: "Vignette Color",
|
|
submit: "Apply Vignette",
|
|
submitBatch: "Apply Vignette ({count} files)",
|
|
progressLabel: "Applying vignette",
|
|
},
|
|
"gif-webp": {
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting animation",
|
|
},
|
|
histogram: {
|
|
submit: "Generate Histogram",
|
|
submitBatch: "Generate Histogram ({count} files)",
|
|
progressLabel: "Generating histogram",
|
|
},
|
|
"lqip-placeholder": {
|
|
width: "Width",
|
|
blur: "Blur",
|
|
submit: "Generate Placeholder",
|
|
submitBatch: "Generate Placeholder ({count} files)",
|
|
progressLabel: "Generating placeholder",
|
|
},
|
|
"sprite-sheet": {
|
|
columns: "Columns",
|
|
padding: "Padding",
|
|
background: "Background Color",
|
|
submit: "Create Sprite Sheet",
|
|
submitBatch: "Create Sprite Sheet",
|
|
progressLabel: "Creating sprite sheet",
|
|
},
|
|
"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: "Preset",
|
|
logo: "Logo",
|
|
illustration: "Ilustracion",
|
|
photo: "Foto",
|
|
sketch: "Boceto",
|
|
customPreset: "Personalizado",
|
|
colorMode: "Modo de color",
|
|
bw: "B&N",
|
|
colorModeColor: "Color",
|
|
threshold: "Umbral",
|
|
colorPrecision: "Precision 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: "Pixel",
|
|
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: "Numero 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 maximo",
|
|
maxHeight: "Alto maximo",
|
|
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: "Text",
|
|
type: "Barcode Type",
|
|
scale: "Scale",
|
|
includeText: "Include Text",
|
|
submit: "Generate Barcode",
|
|
download: "Download Barcode",
|
|
},
|
|
"chart-maker": {
|
|
kind: "Chart Type",
|
|
title: "Title",
|
|
width: "Width",
|
|
height: "Height",
|
|
submit: "Create Chart",
|
|
submitBatch: "Create Chart ({count} files)",
|
|
progressLabel: "Creating chart",
|
|
},
|
|
"enhance-faces-standalone": {
|
|
model: "Modelo",
|
|
fast: "Rapido",
|
|
balanced: "Equilibrado",
|
|
best: "Mejor",
|
|
},
|
|
"convert-video": {
|
|
format: "Output format",
|
|
quality: "Quality",
|
|
high: "High",
|
|
balanced: "Balanced",
|
|
small: "Smallest",
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"compress-video": {
|
|
quality: "Compression",
|
|
light: "Light",
|
|
balanced: "Balanced",
|
|
strong: "Strong",
|
|
resolution: "Resolution",
|
|
original: "Original",
|
|
submit: "Compress",
|
|
submitBatch: "Compress ({count} files)",
|
|
progressLabel: "Compressing",
|
|
},
|
|
"trim-video": {
|
|
start: "Start (seconds)",
|
|
end: "End (seconds)",
|
|
precise: "Frame-accurate (re-encodes)",
|
|
submit: "Trim",
|
|
submitBatch: "Trim ({count} files)",
|
|
progressLabel: "Trimming",
|
|
},
|
|
"mute-video": {
|
|
submit: "Remove audio",
|
|
submitBatch: "Remove audio ({count} files)",
|
|
progressLabel: "Muting",
|
|
},
|
|
"video-to-gif": {
|
|
fps: "Frames per second",
|
|
width: "Width (px)",
|
|
start: "Start (seconds)",
|
|
duration: "Duration (seconds)",
|
|
submit: "Create GIF",
|
|
submitBatch: "Create GIFs ({count} files)",
|
|
progressLabel: "Creating GIF",
|
|
},
|
|
"resize-video": {
|
|
preset: "Preset",
|
|
width: "Width (px)",
|
|
height: "Height (px)",
|
|
hint: "Leave one dimension empty to keep aspect ratio",
|
|
submit: "Resize",
|
|
submitBatch: "Resize ({count} files)",
|
|
progressLabel: "Resizing",
|
|
},
|
|
"crop-video": {
|
|
width: "Width (px)",
|
|
height: "Height (px)",
|
|
x: "X offset",
|
|
y: "Y offset",
|
|
submit: "Crop",
|
|
submitBatch: "Crop ({count} files)",
|
|
progressLabel: "Cropping",
|
|
},
|
|
"rotate-video": {
|
|
transform: "Transform",
|
|
cw90: "Rotate 90 clockwise",
|
|
ccw90: "Rotate 90 counter-clockwise",
|
|
rotate180: "Rotate 180",
|
|
hflip: "Flip horizontal",
|
|
vflip: "Flip vertical",
|
|
submit: "Rotate",
|
|
submitBatch: "Rotate ({count} files)",
|
|
progressLabel: "Rotating",
|
|
},
|
|
"change-fps": {
|
|
fps: "Frames per second",
|
|
submit: "Change FPS",
|
|
submitBatch: "Change FPS ({count} files)",
|
|
progressLabel: "Changing FPS",
|
|
},
|
|
"video-color": {
|
|
brightness: "Brightness",
|
|
contrast: "Contrast",
|
|
saturation: "Saturation",
|
|
gamma: "Gamma",
|
|
submit: "Apply",
|
|
submitBatch: "Apply ({count} files)",
|
|
progressLabel: "Adjusting color",
|
|
},
|
|
"video-speed": {
|
|
factor: "Speed factor",
|
|
keepPitch: "Keep original pitch",
|
|
submit: "Change speed",
|
|
submitBatch: "Change speed ({count} files)",
|
|
progressLabel: "Changing speed",
|
|
},
|
|
"reverse-video": {
|
|
hint: "Limited to clips up to 5 minutes",
|
|
submit: "Reverse",
|
|
submitBatch: "Reverse ({count} files)",
|
|
progressLabel: "Reversing",
|
|
},
|
|
"video-loudnorm": {
|
|
hint: "Normalizes audio to EBU R128 broadcast standard",
|
|
submit: "Normalize",
|
|
submitBatch: "Normalize ({count} files)",
|
|
progressLabel: "Normalizing",
|
|
},
|
|
"aspect-pad": {
|
|
target: "Target ratio",
|
|
color: "Background color",
|
|
colorHint: "Hex color, e.g. #000000",
|
|
submit: "Pad",
|
|
submitBatch: "Pad ({count} files)",
|
|
progressLabel: "Padding",
|
|
},
|
|
"blur-pad": {
|
|
target: "Target ratio",
|
|
blur: "Blur strength",
|
|
submit: "Pad",
|
|
submitBatch: "Pad ({count} files)",
|
|
progressLabel: "Padding",
|
|
},
|
|
"watermark-video": {
|
|
text: "Watermark text",
|
|
position: "Position",
|
|
fontSize: "Font size",
|
|
opacity: "Opacity",
|
|
color: "Color",
|
|
colorHint: "Hex color, e.g. #ffffff",
|
|
submit: "Watermark",
|
|
submitBatch: "Watermark ({count} files)",
|
|
progressLabel: "Watermarking",
|
|
},
|
|
"stabilize-video": {
|
|
smoothing: "Smoothing",
|
|
hint: "Runs two passes and takes longer than most tools",
|
|
submit: "Stabilize",
|
|
submitBatch: "Stabilize ({count} files)",
|
|
progressLabel: "Stabilizing",
|
|
},
|
|
"gif-to-video": {
|
|
format: "Output format",
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"video-to-webp": {
|
|
fps: "Frames per second",
|
|
width: "Width (px)",
|
|
quality: "Quality",
|
|
loop: "Loop animation",
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"video-to-frames": {
|
|
mode: "Extraction mode",
|
|
modeAll: "All frames",
|
|
modeNth: "Every Nth frame",
|
|
modeTimestamps: "Specific timestamps",
|
|
n: "Take every Nth frame",
|
|
timestamps: "Timestamps (seconds)",
|
|
timestampsHint: "Comma-separated, e.g. 0.5, 2, 4.5",
|
|
format: "Image format",
|
|
submit: "Extract Frames",
|
|
submitBatch: "Extract Frames ({count} files)",
|
|
progressLabel: "Extracting frames",
|
|
},
|
|
"merge-videos": {
|
|
hint: "Files are joined in upload order",
|
|
submit: "Merge",
|
|
submitBatch: "Merge ({count} files)",
|
|
progressLabel: "Merging",
|
|
},
|
|
"replace-audio": {
|
|
hint: "Upload the video first, then the audio",
|
|
submit: "Replace Audio",
|
|
submitBatch: "Replace Audio ({count} files)",
|
|
progressLabel: "Replacing audio",
|
|
},
|
|
"burn-subtitles": {
|
|
fontSize: "Font size",
|
|
hint: "Upload a video and a subtitle file (.srt or .vtt)",
|
|
submit: "Burn Subtitles",
|
|
submitBatch: "Burn Subtitles ({count} files)",
|
|
progressLabel: "Burning subtitles",
|
|
},
|
|
"embed-subtitles": {
|
|
language: "Language code",
|
|
languageHint: "Three-letter ISO 639-2 code, e.g. eng, spa, fra",
|
|
submit: "Embed Subtitles",
|
|
submitBatch: "Embed Subtitles ({count} files)",
|
|
progressLabel: "Embedding subtitles",
|
|
},
|
|
"extract-subtitles": {
|
|
submit: "Extract Subtitles",
|
|
submitBatch: "Extract Subtitles ({count} files)",
|
|
progressLabel: "Extracting subtitles",
|
|
},
|
|
"images-to-video": {
|
|
secondsPerImage: "Seconds per image",
|
|
resolution: "Resolution",
|
|
fps: "Frames per second",
|
|
submit: "Create Video",
|
|
submitBatch: "Create Video ({count} files)",
|
|
progressLabel: "Creating slideshow",
|
|
},
|
|
"video-metadata": {
|
|
hint: "Metadata report appears in the result",
|
|
submit: "Strip Metadata",
|
|
submitBatch: "Strip Metadata ({count} files)",
|
|
progressLabel: "Stripping metadata",
|
|
},
|
|
"convert-audio": {
|
|
format: "Output format",
|
|
bitrate: "Bitrate (kbps)",
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"trim-audio": {
|
|
start: "Start (seconds)",
|
|
end: "End (seconds)",
|
|
submit: "Trim",
|
|
submitBatch: "Trim ({count} files)",
|
|
progressLabel: "Trimming",
|
|
},
|
|
"extract-audio": {
|
|
format: "Output format",
|
|
submit: "Extract",
|
|
submitBatch: "Extract ({count} files)",
|
|
progressLabel: "Extracting",
|
|
},
|
|
"volume-adjust": {
|
|
"gain-db": "Gain (dB)",
|
|
submit: "Adjust Volume",
|
|
submitBatch: "Adjust Volume ({count} files)",
|
|
progressLabel: "Adjusting volume",
|
|
},
|
|
"normalize-audio": {
|
|
hint: "EBU R128 loudness normalization",
|
|
submit: "Normalize",
|
|
submitBatch: "Normalize ({count} files)",
|
|
progressLabel: "Normalizing",
|
|
},
|
|
"fade-audio": {
|
|
"fade-in-s": "Fade in (seconds)",
|
|
"fade-out-s": "Fade out (seconds)",
|
|
submit: "Apply Fade",
|
|
submitBatch: "Apply Fade ({count} files)",
|
|
progressLabel: "Applying fade",
|
|
},
|
|
"reverse-audio": {
|
|
submit: "Reverse",
|
|
submitBatch: "Reverse ({count} files)",
|
|
progressLabel: "Reversing",
|
|
},
|
|
"audio-speed": {
|
|
factor: "Speed factor",
|
|
submit: "Change Speed",
|
|
submitBatch: "Change Speed ({count} files)",
|
|
progressLabel: "Changing speed",
|
|
},
|
|
"pitch-shift": {
|
|
semitones: "Semitones",
|
|
hint: "0 semitones is not allowed",
|
|
submit: "Shift Pitch",
|
|
submitBatch: "Shift Pitch ({count} files)",
|
|
progressLabel: "Shifting pitch",
|
|
},
|
|
"audio-channels": {
|
|
mode: "Channel mode",
|
|
"stereo-to-mono": "Stereo to mono",
|
|
"mono-to-stereo": "Mono to stereo",
|
|
swap: "Swap left/right",
|
|
submit: "Convert Channels",
|
|
submitBatch: "Convert Channels ({count} files)",
|
|
progressLabel: "Converting channels",
|
|
},
|
|
"silence-removal": {
|
|
"threshold-db": "Silence threshold (dB)",
|
|
"min-silence-s": "Minimum silence duration (seconds)",
|
|
submit: "Remove Silence",
|
|
submitBatch: "Remove Silence ({count} files)",
|
|
progressLabel: "Removing silence",
|
|
},
|
|
"noise-reduction": {
|
|
strength: "Strength",
|
|
light: "Light",
|
|
medium: "Medium",
|
|
strong: "Strong",
|
|
submit: "Reduce Noise",
|
|
submitBatch: "Reduce Noise ({count} files)",
|
|
progressLabel: "Reducing noise",
|
|
},
|
|
"merge-audio": {
|
|
format: "Output format",
|
|
mp3: "MP3",
|
|
wav: "WAV",
|
|
flac: "FLAC",
|
|
m4a: "M4A",
|
|
"order-hint": "Files will be joined in upload order",
|
|
submit: "Merge Audio",
|
|
submitBatch: "Merge Audio ({count} files)",
|
|
progressLabel: "Merging audio",
|
|
},
|
|
"split-audio": {
|
|
mode: "Split mode",
|
|
time: "By time",
|
|
parts: "Equal parts",
|
|
silence: "By silence",
|
|
"segment-s": "Segment length (seconds)",
|
|
"num-parts": "Number of parts",
|
|
"threshold-db": "Silence threshold (dB)",
|
|
"min-silence-s": "Minimum silence duration (seconds)",
|
|
submit: "Split Audio",
|
|
submitBatch: "Split Audio ({count} files)",
|
|
progressLabel: "Splitting audio",
|
|
},
|
|
"ringtone-maker": {
|
|
"start-s": "Start time (seconds)",
|
|
"duration-s": "Duration (seconds)",
|
|
"max-hint": "Maximum 30 seconds",
|
|
submit: "Create Ringtone",
|
|
submitBatch: "Create Ringtone ({count} files)",
|
|
progressLabel: "Creating ringtone",
|
|
},
|
|
"waveform-image": {
|
|
width: "Width (px)",
|
|
height: "Height (px)",
|
|
color: "Waveform color",
|
|
submit: "Generate Waveform",
|
|
submitBatch: "Generate Waveform ({count} files)",
|
|
progressLabel: "Generating waveform",
|
|
},
|
|
"audio-metadata": {
|
|
strip: "Strip all metadata",
|
|
title: "Title",
|
|
artist: "Artist",
|
|
album: "Album",
|
|
submit: "Apply Metadata",
|
|
submitBatch: "Apply Metadata ({count} files)",
|
|
progressLabel: "Applying metadata",
|
|
},
|
|
"merge-pdf": {
|
|
addFiles: "Add PDFs to merge",
|
|
needTwo: "At least two PDFs are required",
|
|
orderHint: "{count} PDFs will merge in this order",
|
|
submit: "Merge",
|
|
submitBatch: "Merge ({count} files)",
|
|
progressLabel: "Merging",
|
|
},
|
|
"split-pdf": {
|
|
mode: "Split mode",
|
|
range: "Page range",
|
|
rangeHint: "e.g. 1-3, 5, 7-z",
|
|
everyN: "Pages per part",
|
|
submit: "Split",
|
|
submitBatch: "Split ({count} files)",
|
|
progressLabel: "Splitting",
|
|
},
|
|
"compress-pdf": {
|
|
preset: "Quality preset",
|
|
screen: "Screen (smallest)",
|
|
ebook: "Ebook (balanced)",
|
|
printer: "Printer (best quality)",
|
|
submit: "Compress",
|
|
submitBatch: "Compress ({count} files)",
|
|
progressLabel: "Compressing",
|
|
},
|
|
"rotate-pdf": {
|
|
angle: "Rotation angle",
|
|
range: "Page range",
|
|
rangeHint: "e.g. 1-3, 5, 1-z (all pages)",
|
|
submit: "Rotate",
|
|
submitBatch: "Rotate ({count} files)",
|
|
progressLabel: "Rotating",
|
|
},
|
|
"convert-document": {
|
|
format: "Output format",
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"convert-presentation": {
|
|
format: "Output format",
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"convert-spreadsheet": {
|
|
format: "Output format",
|
|
hint: "Multi-sheet workbooks export the first sheet to CSV.",
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"excel-to-pdf": {
|
|
submit: "Convert to PDF",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"powerpoint-to-pdf": {
|
|
submit: "Convert to PDF",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"word-to-pdf": {
|
|
submit: "Convert to PDF",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"extract-pages": {
|
|
range: "Page range",
|
|
rangeHint: "e.g. 1-3, 5, 7-z",
|
|
submit: "Extract",
|
|
submitBatch: "Extract ({count} files)",
|
|
progressLabel: "Extracting",
|
|
},
|
|
"remove-pages": {
|
|
pages: "Pages to remove",
|
|
pagesHint: "e.g. 2, 4-6, z (last page)",
|
|
submit: "Remove",
|
|
submitBatch: "Remove ({count} files)",
|
|
progressLabel: "Removing",
|
|
},
|
|
"organize-pdf": {
|
|
order: "Page order",
|
|
orderHint: "e.g. 3,1,2 or 1-z (identity)",
|
|
submit: "Reorder",
|
|
submitBatch: "Reorder ({count} files)",
|
|
progressLabel: "Reordering",
|
|
},
|
|
"protect-pdf": {
|
|
userPassword: "User password",
|
|
ownerPassword: "Owner password (optional)",
|
|
ownerPasswordHint: "Defaults to user password if empty",
|
|
submit: "Protect",
|
|
submitBatch: "Protect ({count} files)",
|
|
progressLabel: "Encrypting",
|
|
},
|
|
"unlock-pdf": {
|
|
password: "Password",
|
|
submit: "Unlock",
|
|
submitBatch: "Unlock ({count} files)",
|
|
progressLabel: "Decrypting",
|
|
},
|
|
"repair-pdf": {
|
|
submit: "Repair",
|
|
submitBatch: "Repair ({count} files)",
|
|
progressLabel: "Repairing",
|
|
},
|
|
"linearize-pdf": {
|
|
submit: "Optimize",
|
|
submitBatch: "Optimize ({count} files)",
|
|
progressLabel: "Linearizing",
|
|
},
|
|
"grayscale-pdf": {
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"pdfa-convert": {
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"crop-pdf": {
|
|
margin: "Margin (points)",
|
|
submit: "Crop",
|
|
submitBatch: "Crop ({count} files)",
|
|
progressLabel: "Cropping",
|
|
},
|
|
"nup-pdf": {
|
|
perSheet: "Pages per sheet",
|
|
submit: "Arrange",
|
|
submitBatch: "Arrange ({count} files)",
|
|
progressLabel: "Arranging",
|
|
},
|
|
"booklet-pdf": {
|
|
perSheet: "Pages per sheet",
|
|
submit: "Create Booklet",
|
|
submitBatch: "Create Booklet ({count} files)",
|
|
progressLabel: "Creating booklet",
|
|
},
|
|
"watermark-pdf": {
|
|
text: "Watermark text",
|
|
position: "Position",
|
|
fontSize: "Font size",
|
|
opacity: "Opacity",
|
|
rotation: "Rotation",
|
|
submit: "Watermark",
|
|
submitBatch: "Watermark ({count} files)",
|
|
progressLabel: "Watermarking",
|
|
},
|
|
"pdf-page-numbers": {
|
|
position: "Position",
|
|
fontSize: "Font size",
|
|
submit: "Add Numbers",
|
|
submitBatch: "Add Numbers ({count} files)",
|
|
progressLabel: "Numbering",
|
|
},
|
|
"flatten-pdf": {
|
|
submit: "Flatten",
|
|
submitBatch: "Flatten ({count} files)",
|
|
progressLabel: "Flattening",
|
|
},
|
|
"redact-pdf": {
|
|
terms: "Terms to redact",
|
|
termsHint: "One term per line (max 50)",
|
|
caseSensitive: "Case sensitive",
|
|
submit: "Redact",
|
|
submitBatch: "Redact ({count} files)",
|
|
progressLabel: "Redacting",
|
|
},
|
|
"pdf-to-text": {
|
|
submit: "Extract Text",
|
|
submitBatch: "Extract Text ({count} files)",
|
|
progressLabel: "Extracting",
|
|
},
|
|
"pdf-to-word": {
|
|
hint: "Best for text-based PDFs; scanned pages need OCR",
|
|
submit: "Convert to Word",
|
|
submitBatch: "Convert to Word ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"pdf-metadata": {
|
|
title: "Title",
|
|
author: "Author",
|
|
subject: "Subject",
|
|
keywords: "Keywords",
|
|
submit: "Set Metadata",
|
|
submitBatch: "Set Metadata ({count} files)",
|
|
progressLabel: "Setting metadata",
|
|
},
|
|
"html-to-pdf": {
|
|
hint: "Remote resources are disabled for privacy.",
|
|
submit: "Convert to PDF",
|
|
submitBatch: "Convert to PDF ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"markdown-to-docx": {
|
|
submit: "Convert to DOCX",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"markdown-to-html": {
|
|
hint: "Remote images in the source are left as-is in the output.",
|
|
submit: "Convert to HTML",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"markdown-to-pdf": {
|
|
hint: "Remote resources are disabled for privacy.",
|
|
submit: "Convert to PDF",
|
|
submitBatch: "Convert to PDF ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"epub-convert": {
|
|
format: "Output format",
|
|
hint: "Remote resources inside the book are not fetched.",
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"to-epub": {
|
|
submit: "Convert to EPUB",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"csv-excel": {
|
|
sheet: "Worksheet number",
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"csv-json": {
|
|
pretty: "Pretty print",
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"json-xml": {
|
|
pretty: "Pretty print",
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"split-csv": {
|
|
rowsPerFile: "Rows per file",
|
|
keepHeader: "Keep header in each file",
|
|
submit: "Split",
|
|
submitBatch: "Split ({count} files)",
|
|
progressLabel: "Splitting",
|
|
},
|
|
"merge-csvs": {
|
|
submit: "Merge",
|
|
submitBatch: "Merge ({count} files)",
|
|
progressLabel: "Merging",
|
|
},
|
|
"yaml-json": {
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"xml-to-csv": {
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"create-zip": {
|
|
submit: "Create ZIP",
|
|
submitBatch: "Create ZIP ({count} files)",
|
|
progressLabel: "Zipping",
|
|
},
|
|
"extract-zip": {
|
|
submit: "Extract",
|
|
submitBatch: "Extract ({count} files)",
|
|
progressLabel: "Extracting",
|
|
},
|
|
},
|
|
urlImport: {
|
|
title: "Importar desde URLs",
|
|
placeholder: "Pega URLs de imagenes, una por linea...",
|
|
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: "Despues",
|
|
savings: "Ahorro",
|
|
},
|
|
toolPage: {
|
|
emptyPrompt: "Arrastra o sube una imagen para comenzar",
|
|
filesCount: "Archivos ({count})",
|
|
addMore: "+ Agregar mas",
|
|
clearAll: "Limpiar todo",
|
|
acceptDescription: "Solo archivos {exts}",
|
|
notFound: "Herramienta no encontrada",
|
|
configureAndGenerate: "Configura los ajustes y genera.",
|
|
processingFailed: "Error al procesar este archivo",
|
|
conversionComplete: "Conversion completada",
|
|
cannotPreviewDownload:
|
|
"Los archivos {type} no se pueden previsualizar en el navegador. Usa el boton de descarga para guardar tu archivo.",
|
|
generatingPreview: "Generando vista previa...",
|
|
cannotPreviewWillProcess:
|
|
"Los archivos {ext} no se pueden previsualizar en el navegador. La herramienta procesara este archivo normalmente.",
|
|
previousImage: "Imagen anterior",
|
|
nextImage: "Siguiente imagen",
|
|
imageCounter: "{current} / {total}",
|
|
settingsLabel: "Configuracion",
|
|
downloadAllZip: "Descargar todo (ZIP)",
|
|
hideSettings: "Ocultar configuracion",
|
|
imageArea: "Area de imagen",
|
|
disabledByAdmin: "This tool has been disabled by your administrator",
|
|
browseOtherTools: "Browse other tools",
|
|
privacyNote: "Files are processed on your server and never leave your network",
|
|
applyAndDownload: "Aplicar y descargar",
|
|
andMore: "and {count} more",
|
|
importFromFiles: "Import from Files",
|
|
saveToFiles: "Save to Files",
|
|
savedToFiles: "Saved to Files",
|
|
adjustSettings: "Adjust settings",
|
|
startOver: "Start over with a new file",
|
|
newFile: "New file",
|
|
previewUnavailable: "Preview will be available after processing",
|
|
generatePreview: "Generate Preview",
|
|
previewFailed: "Preview generation failed",
|
|
backToTools: "Back to Tools",
|
|
original: "Original",
|
|
processed: "Processed",
|
|
saved: "Saved",
|
|
noChange: "no change",
|
|
download: "Download",
|
|
settingsSaved: "Tu configuracion se ha guardado.",
|
|
tryAgain: "Reintentar",
|
|
tryDifferentFile: "Probar con otro archivo",
|
|
batchPartialSuccess: "{success} of {total} processed. {failed} failed.",
|
|
dataResultsHint: "Results shown above. Use the copy button in the results panel.",
|
|
downloadAsFile: "Download as file",
|
|
downloadAll: "Download All",
|
|
downloadFiles: "Download {count} files",
|
|
},
|
|
homePage: {
|
|
generatingPreview: "Generando vista previa...",
|
|
loadingPreview: "Cargando vista previa...",
|
|
changeFile: "Cambiar archivo",
|
|
quickActions: "Acciones rapidas",
|
|
allTools: "Todas las herramientas",
|
|
searchPlaceholder: "Search {count} tools...",
|
|
recent: "Recent",
|
|
popular: "Popular",
|
|
browseByCategory: "Browse by Category",
|
|
gettingStarted: "Getting Started",
|
|
noToolsMatch: "No tools match '{query}'",
|
|
clearSearch: "Clear search",
|
|
all: "All",
|
|
documents: "Documents",
|
|
data: "Data",
|
|
toolCount: "{count} tools",
|
|
},
|
|
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 termino de busqueda diferente",
|
|
},
|
|
editor: {
|
|
menu: {
|
|
file: {
|
|
label: "Archivo",
|
|
new: "Nuevo",
|
|
open: "Abrir",
|
|
save: "Guardar",
|
|
exportAs: "Exportar como...",
|
|
quickExportPng: "Exportacion rapida 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: "Tamano de imagen...",
|
|
canvasSize: "Tamano de lienzo...",
|
|
rotation: {
|
|
label: "Rotacion 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/Saturacion",
|
|
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 atras",
|
|
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: "Mascara 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: "Pixeles reales",
|
|
rulers: "Reglas",
|
|
grid: "Cuadricula",
|
|
guides: "Guias",
|
|
snap: "Ajustar",
|
|
panels: "Paneles",
|
|
},
|
|
},
|
|
menuBar: {
|
|
backTitle: "Volver a SnapOtter",
|
|
},
|
|
welcome: {
|
|
ariaLabel: "Zona de carga de imagenes",
|
|
heading: "Editor de imagenes",
|
|
dropDescription: "Arrastra una imagen aqui 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 imagenes funciona mejor en pantallas de escritorio. Cambia a un dispositivo con una pantalla mas grande para la experiencia de edicion completa.",
|
|
},
|
|
errors: {
|
|
serverDecodeFailed: "Error de decodificacion del servidor",
|
|
},
|
|
shapes: {
|
|
shape: "Shape",
|
|
fill: "Fill",
|
|
stroke: "Stroke",
|
|
strokeWidth: "Width",
|
|
cornerRadius: "Radius",
|
|
sides: "Sides",
|
|
points: "Points",
|
|
dashStyle: "Dash",
|
|
solid: "Solid",
|
|
dashed: "Dashed",
|
|
dotted: "Dotted",
|
|
none: "None",
|
|
opacity: "Opacity",
|
|
rectangle: "Rectangle",
|
|
ellipse: "Ellipse",
|
|
line: "Line",
|
|
arrow: "Arrow",
|
|
polygon: "Polygon",
|
|
star: "Star",
|
|
},
|
|
},
|
|
settings: {
|
|
heading: "Configuracion",
|
|
nav: {
|
|
general: "General",
|
|
systemSettings: "Configuracion del sistema",
|
|
security: "Seguridad",
|
|
people: "Personas",
|
|
teams: "Equipos",
|
|
roles: "Roles",
|
|
auditLog: "Registro de auditoria",
|
|
usage: "Usage",
|
|
apiKeys: "Claves API",
|
|
aiFeatures: "Funciones de AI",
|
|
tools: "Herramientas",
|
|
productAnalytics: "Analitica del producto",
|
|
about: "Acerca de",
|
|
},
|
|
general: {
|
|
heading: "General",
|
|
description: "Preferencias del usuario y configuracion de pantalla.",
|
|
loading: "Cargando...",
|
|
logOut: "Cerrar sesion",
|
|
defaultToolViewLabel: "Vista predeterminada de herramientas",
|
|
defaultToolViewDescription: "Como se muestran las herramientas en la pagina de inicio",
|
|
sidebarOption: "Barra lateral",
|
|
fullscreenGridOption: "Cuadricula de pantalla completa",
|
|
appVersionLabel: "Version de la app",
|
|
appVersionDescription: "Version actual de SnapOtter",
|
|
saveButton: "Guardar configuracion",
|
|
saveSuccess: "Configuracion guardada.",
|
|
saveFailed: "Error al guardar la configuracion.",
|
|
},
|
|
system: {
|
|
heading: "Configuracion del sistema",
|
|
description: "Configuracion del servidor y limites.",
|
|
fileUploadLimitLabel: "Limite de carga de archivos (MB)",
|
|
fileUploadLimitDescription: "Tamano maximo 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: "Limite de intentos de inicio de sesion",
|
|
loginAttemptLimitDescription:
|
|
"Intentos fallidos maximos de inicio de sesion por minuto antes del bloqueo",
|
|
fileManagementHeading: "Gestion de archivos",
|
|
maxFileAgeLabel: "Edad maxima de archivos (horas)",
|
|
maxFileAgeDescription:
|
|
"Cuanto tiempo se conservan los archivos procesados antes de la limpieza automatica",
|
|
startupCleanupLabel: "Limpieza al inicio",
|
|
startupCleanupDescription: "Limpia archivos temporales antiguos cuando el servidor arranca",
|
|
saveButton: "Guardar configuracion",
|
|
saveSuccess: "Configuracion guardada.",
|
|
saveFailed: "Error al guardar la configuracion.",
|
|
limitsAndResources: "Limites y recursos",
|
|
maxFileSize: "Tamano maximo de archivo",
|
|
maxBatchSize: "Tamano maximo de lote",
|
|
concurrentJobs: "Trabajos simultaneos",
|
|
workerThreads: "Hilos de trabajo",
|
|
maxPipelineSteps: "Pasos maximos de Pipeline",
|
|
processingTimeout: "Tiempo de espera de procesamiento",
|
|
rateLimitPerMin: "Limite de solicitudes (req/min)",
|
|
unlimited: "Ilimitado",
|
|
auto: "Automatico",
|
|
envOverride: "Establecido por variable de entorno",
|
|
maxCanvasPixels: "Pixeles maximos de lienzo",
|
|
maxSvgSize: "Tamano maximo de SVG",
|
|
maxSplitGrid: "Cuadricula maxima de division",
|
|
maxPdfPages: "Paginas maximas de PDF",
|
|
sessionDuration: "Duracion de la sesion",
|
|
supportBundleButton: "Download Support Bundle",
|
|
supportBundleDescription:
|
|
"Download a diagnostic zip with redacted config, logs, and job data for troubleshooting.",
|
|
supportBundleFailed: "Failed to download support bundle.",
|
|
},
|
|
security: {
|
|
heading: "Seguridad",
|
|
description: "Configuracion de contrasena y autenticacion.",
|
|
changePasswordHeading: "Cambiar contrasena",
|
|
currentPasswordPlaceholder: "Contrasena actual",
|
|
newPasswordPlaceholder: "Nueva contrasena",
|
|
confirmPasswordPlaceholder: "Confirmar nueva contrasena",
|
|
passwordsMismatch: "Las contrasenas no coinciden",
|
|
passwordTooShort: "La contrasena debe tener al menos 4 caracteres",
|
|
changeSuccess: "Contrasena cambiada correctamente",
|
|
changeFailed: "Error al cambiar la contrasena",
|
|
currentPasswordIncorrect: "La contrasena actual es incorrecta",
|
|
changePasswordButton: "Cambiar contrasena",
|
|
loginAttemptLimitNote:
|
|
"Los limites de intentos de inicio de sesion se pueden configurar en Configuracion del sistema.",
|
|
adminHeading: "Admin Security Settings",
|
|
adminDescription: "Enterprise security policy settings. These apply to all users.",
|
|
sessionIdleTimeout: "Session Idle Timeout (minutes)",
|
|
sessionIdleTimeoutDesc: "Automatically log out idle sessions. 0 = disabled.",
|
|
maxSessionsPerUser: "Max Sessions Per User",
|
|
maxSessionsPerUserDesc: "Limit concurrent sessions per user. 0 = unlimited.",
|
|
mfaPolicy: "MFA Policy",
|
|
mfaPolicyDesc: "Require multi-factor authentication for users.",
|
|
mfaPolicyOptional: "Optional",
|
|
mfaPolicyAdminsOnly: "Required for admins",
|
|
mfaPolicyRequired: "Required for all users",
|
|
ssoEnforcement: "SSO Enforcement",
|
|
ssoEnforcementDesc: "Require SSO login for all non-break-glass users.",
|
|
ssoBreakGlassUsername: "Break Glass Admin Username",
|
|
ssoBreakGlassUsernameDesc:
|
|
"This admin can still log in with local credentials when SSO is enforced.",
|
|
passwordMinLength: "Minimum Password Length",
|
|
passwordMinLengthDesc: "Minimum number of characters required for passwords.",
|
|
passwordRequireUppercase: "Require Uppercase",
|
|
passwordRequireUppercaseDesc: "Require at least one uppercase letter.",
|
|
passwordRequireNumber: "Require Number",
|
|
passwordRequireNumberDesc: "Require at least one number.",
|
|
passwordRequireSpecial: "Require Special Character",
|
|
passwordRequireSpecialDesc: "Require at least one special character.",
|
|
passwordPolicyHeading: "Password Policy",
|
|
securitySettingsSaved: "Security settings saved",
|
|
securitySettingsFailed: "Failed to save security settings",
|
|
},
|
|
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: "Contrasena",
|
|
roleUserOption: "Usuario",
|
|
roleEditorOption: "Editor",
|
|
roleAdminOption: "Admin",
|
|
roleUserDescription: "Acceso basico a herramientas",
|
|
roleEditorDescription: "Todos los archivos y pipelines",
|
|
roleAdminDescription: "Acceso completo",
|
|
noDescription: "Sin descripcion",
|
|
defaultTeamOption: "Predeterminado",
|
|
createButton: "Crear",
|
|
cancelButton: "Cancelar",
|
|
createSuccess: "Usuario creado correctamente",
|
|
createFailed: "Error al crear el usuario",
|
|
userLimitReached: "Limite de usuarios alcanzado ({max} maximo)",
|
|
deleteConfirm: 'Eliminar usuario "{username}"? Esta accion 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 contrasena para {username}",
|
|
newPasswordLabel: "Nueva contrasena (minimo 8 caracteres)",
|
|
resetPasswordButton: "Restablecer contrasena",
|
|
resetPasswordWarning: "Esto invalidara todas las sesiones y claves API de este usuario.",
|
|
resetSuccess: "Contrasena restablecida correctamente",
|
|
resetFailed: "Error al restablecer la contrasena",
|
|
tableHeaderUser: "Usuario",
|
|
tableHeaderRole: "Rol",
|
|
tableHeaderTeam: "Equipo",
|
|
noSearchResults: "Ningun miembro coincide con tu busqueda.",
|
|
noUsersFound: "No se encontraron usuarios.",
|
|
authBadgeLocalOidc: "Local + OIDC",
|
|
authBadgeOidc: "OIDC",
|
|
editRoleTeamAction: "Editar rol / equipo",
|
|
resetPasswordAction: "Restablecer contrasena",
|
|
deleteUserAction: "Eliminar usuario",
|
|
saveButton: "Guardar",
|
|
copyPasswordButton: "Copiar contrasena",
|
|
passwordCopied: "Copiado!",
|
|
copyPasswordWarning:
|
|
"Copia esta contrasena ahora. No podras verla despues de crear el usuario.",
|
|
},
|
|
teams: {
|
|
heading: "Equipos",
|
|
description: "Organiza a los miembros en equipos para una mejor gestion.",
|
|
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 seran 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: "Storage Quota (MB)",
|
|
teamStorageQuotaDesc: "Maximum storage for this team in MB. Leave empty for no limit.",
|
|
teamRetentionHours: "Retention (hours)",
|
|
teamRetentionHoursDesc:
|
|
"Processing file retention for this team. Leave empty to use global default.",
|
|
quotaSaved: "Team settings saved",
|
|
},
|
|
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: "Descripcion (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) deberan 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: "Configuracion",
|
|
users: "Usuarios",
|
|
teams: "Equipos",
|
|
system: "Sistema",
|
|
},
|
|
},
|
|
auditLog: {
|
|
heading: "Registro de auditoria",
|
|
allActionsFilter: "Todas las acciones",
|
|
emptyState: "No hay entradas en el registro de auditoria.",
|
|
tableHeaderTime: "Hora",
|
|
tableHeaderUser: "Usuario",
|
|
tableHeaderAction: "Accion",
|
|
tableHeaderTarget: "Objetivo",
|
|
paginationInfo: "Pagina {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: "Usage",
|
|
description: "Local usage statistics from jobs and file storage.",
|
|
periodLabel: "Period",
|
|
days7: "7 days",
|
|
days30: "30 days",
|
|
days90: "90 days",
|
|
jobsPerDayHeading: "Jobs per day",
|
|
topToolsHeading: "Top tools",
|
|
perUserHeading: "Per-user volume",
|
|
durationsHeading: "Duration percentiles",
|
|
noData: "No data for this period.",
|
|
dayColumn: "Day",
|
|
totalColumn: "Total",
|
|
completedColumn: "Completed",
|
|
failedColumn: "Failed",
|
|
toolColumn: "Tool",
|
|
runsColumn: "Runs",
|
|
userColumn: "User",
|
|
bytesInColumn: "Bytes in",
|
|
poolColumn: "Pool",
|
|
p50Column: "p50",
|
|
p95Column: "p95",
|
|
storageHeading: "Library storage",
|
|
storageFiles: "{count} files",
|
|
unknownUser: "(unknown)",
|
|
storageByTeam: "Storage by Team",
|
|
teamColumn: "Team",
|
|
storageColumn: "Storage",
|
|
usersColumn: "Users",
|
|
},
|
|
apiKeys: {
|
|
heading: "Claves API",
|
|
description: "Administra las claves API para acceso programatico a SnapOtter.",
|
|
keyNamePlaceholder: "Nombre de la clave (opcional)",
|
|
generateButton: "Generar clave API",
|
|
removeScopingLabel: "Eliminar restriccion de permisos",
|
|
restrictPermissionsLabel: "Restringir permisos (opcional)",
|
|
expiresLabel: "Expira:",
|
|
clearButton: "Limpiar",
|
|
copyTitle: "Copiar",
|
|
keyWarning: "Guarda esta clave de forma segura. No se mostrara 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 dejaran de funcionar.",
|
|
emptyState: "Aun 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 busqueda.",
|
|
loadFailedError:
|
|
"Error al cargar la configuracion de herramientas. El guardado esta desactivado para prevenir perdida de datos.",
|
|
saveButton: "Guardar configuracion de herramientas",
|
|
disabledCount: "{count} herramienta(s) desactivada(s)",
|
|
},
|
|
experimental: {
|
|
label: "Activar herramientas experimentales",
|
|
description: "Muestra herramientas que aun estan en desarrollo. Pueden ser inestables.",
|
|
},
|
|
fileManagement: {
|
|
title: "Gestion de archivos",
|
|
maxAge: "Edad maxima de archivos (horas)",
|
|
maxAgeDescription:
|
|
"Cuanto tiempo se conservan los archivos procesados antes de la limpieza automatica",
|
|
startupCleanup: "Limpieza al inicio",
|
|
startupCleanupDescription: "Limpia archivos temporales antiguos cuando el servidor arranca",
|
|
},
|
|
dataRetention: {
|
|
title: "Data Retention",
|
|
fileMaxAgeHours: "Processing file retention (hours)",
|
|
fileMaxAgeHoursDesc: "How long to keep uploaded and processed files. Default: 72 hours.",
|
|
jobsRetentionDays: "Job record retention (days)",
|
|
jobsRetentionDaysDesc: "How long to keep job metadata. 0 = keep forever. Default: 30 days.",
|
|
auditRetentionDays: "Audit log retention (days)",
|
|
auditRetentionDaysDesc:
|
|
"How long to keep audit log entries. 0 = keep forever. Default: forever.",
|
|
},
|
|
analytics: {
|
|
heading: "Analitica del producto",
|
|
description: "Comparte datos de uso anonimos para ayudar a mejorar SnapOtter.",
|
|
privacyNote: "Tus imagenes nunca salen de tu equipo.",
|
|
disabledByAdmin:
|
|
"La analitica del producto ha sido desactivada por el administrador del servidor.",
|
|
enabledLabel: "Analitica activada",
|
|
disabledLabel: "Analitica desactivada",
|
|
learnMore: "Mas informacion",
|
|
},
|
|
aiFeatures: {
|
|
title: "AI Features",
|
|
description: "Manage AI model bundles for advanced image processing.",
|
|
installAll: "Install All",
|
|
diskUsage: "Disk usage:",
|
|
installed: "Installed",
|
|
notInstalled: "Not installed",
|
|
queued: "Queued",
|
|
install: "Install",
|
|
repair: "Repair",
|
|
uninstall: "Uninstall",
|
|
installing: "Installing...",
|
|
importBundle: "Import Bundle",
|
|
importDescription: "Upload a .tar.gz bundle archive exported from another installation.",
|
|
importButton: "Import from file",
|
|
importing: "Importing...",
|
|
importSuccess: "Bundle imported successfully.",
|
|
importError: "Bundle import failed: {error}",
|
|
},
|
|
about: {
|
|
heading: "Acerca de",
|
|
appName: "SnapOtter",
|
|
appDescription:
|
|
"Una suite de procesamiento de imagenes autoalojada y con privacidad como prioridad, con 70+ herramientas. Redimensiona, comprime, convierte, agrega marcas de agua y automatiza tus flujos de trabajo de imagenes sin enviar datos a la nube.",
|
|
versionLabel: "Version:",
|
|
linksHeading: "Enlaces",
|
|
githubLink: "Repositorio en GitHub",
|
|
docsLink: "Documentacion",
|
|
apiRefLink: "Referencia API (Swagger)",
|
|
licenseLabel: "License:",
|
|
licenseDescription:
|
|
"SnapOtter is open-source software licensed under the GNU Affero General Public License v3 (AGPLv3).",
|
|
},
|
|
},
|
|
auth: {
|
|
login: "Iniciar sesion",
|
|
logout: "Cerrar sesion",
|
|
username: "Nombre de usuario",
|
|
password: "Contrasena",
|
|
loginButton: "Iniciar sesion",
|
|
loggingIn: "Iniciando sesion...",
|
|
invalidCredentials: "Nombre de usuario o contrasena invalidos",
|
|
connectionError: "Error de conexion",
|
|
signInWith: "Iniciar sesion con {provider}",
|
|
signInWithSso: "Iniciar sesion con SSO",
|
|
or: "o",
|
|
methodLocal: "Local",
|
|
methodOidc: "OIDC",
|
|
methodBoth: "Local + OIDC",
|
|
oidcAuthFailed: "La autenticacion fallo. Intenta de nuevo.",
|
|
oidcProviderUnreachable: "No se pudo contactar al proveedor de identidad. Intenta mas tarde.",
|
|
oidcSessionExpired: "La sesion de inicio de sesion expiro. Intenta de nuevo.",
|
|
oidcUserNotAuthorized:
|
|
"Tu cuenta no esta autorizada para acceder a esta aplicacion. Contacta a tu administrador.",
|
|
oidcUserLimitReached: "Limite de usuarios alcanzado. Contacta a tu administrador.",
|
|
oidcGenericError: "Error de autenticacion. Intenta de nuevo.",
|
|
samlAuthFailed: "SAML authentication failed. Please try again.",
|
|
samlUserNotAuthorized:
|
|
"Your account is not authorized to access this application. Contact your administrator.",
|
|
samlUserLimitReached: "User limit reached. Contact your administrator.",
|
|
ssoEnforcedLocalRestricted: "Local login is restricted to authorized administrators.",
|
|
mfaRequired: "Enter your authentication code",
|
|
mfaRecoveryHint: "You can also use a recovery code",
|
|
verify: "Verify",
|
|
verifying: "Verifying...",
|
|
mfaInvalidCode: "Invalid code. Please try again.",
|
|
mfaEnrollmentRequired:
|
|
"Your organization requires multi-factor authentication. Please set up MFA in your account settings.",
|
|
methodSaml: "SAML",
|
|
passwordManagedByProvider:
|
|
"Los cambios de contrasena son administrados por tu proveedor de identidad.",
|
|
enterUsername: "Ingresa tu nombre de usuario",
|
|
enterPassword: "Ingresa tu contrasena",
|
|
heroTitle: "Tus imagenes. Se quedan contigo.",
|
|
heroSubtitle: "Todas las herramientas de imagen que necesitas.",
|
|
rotatingPhrases: [
|
|
"Sin registros. Sin cuentas.",
|
|
"Sin subidas a la nube. Nunca.",
|
|
"100% procesamiento local.",
|
|
"Gratis. Para siempre.",
|
|
"Sin limites. Sin topes ocultos.",
|
|
"Funciona totalmente sin conexion.",
|
|
"Procesamiento por lotes ilimitado.",
|
|
"70+ herramientas de imagen.",
|
|
"15 modelos AI. Tu hardware.",
|
|
"Ultra rapido. Construido sobre Sharp.",
|
|
"Listo para redes aisladas.",
|
|
"Un solo contenedor Docker.",
|
|
"Codigo abierto. Siempre.",
|
|
"Cada pixel 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 imagenes gratuito. Sin marcas de agua.",
|
|
"Procesamiento masivo de imagenes. Ilimitado.",
|
|
"Elimina fondos sin conexion.",
|
|
"Alternativa autoalojada a Canva.",
|
|
"Sin claves API necesarias.",
|
|
"Cumplimiento GDPR por diseno.",
|
|
"Funciona sin internet.",
|
|
],
|
|
},
|
|
changePassword: {
|
|
title: "Cambia tu contrasena",
|
|
description:
|
|
"Necesitas establecer una nueva contrasena antes de continuar. Tu contrasena debe tener al menos 8 caracteres con mayusculas, minusculas y un numero.",
|
|
usernameLabel: "Nombre de usuario",
|
|
currentPasswordLabel: "Contrasena actual",
|
|
currentPasswordPlaceholder: "Ingresa la contrasena actual",
|
|
newPasswordLabel: "Nueva contrasena",
|
|
generateButton: "Generar contrasena segura",
|
|
newPasswordPlaceholder: "Al menos 8 caracteres",
|
|
confirmPasswordLabel: "Confirmar nueva contrasena",
|
|
confirmPasswordPlaceholder: "Repite la nueva contrasena",
|
|
passwordsMismatch: "Las contrasenas no coinciden",
|
|
failedError: "Error al cambiar la contrasena",
|
|
connectionError: "Error de conexion",
|
|
changingButton: "Cambiando...",
|
|
changeButton: "Cambiar contrasena",
|
|
sidebarTitle: "Ya casi",
|
|
sidebarDescription: "Establece una contrasena segura para proteger tu cuenta y estaras listo.",
|
|
},
|
|
automate: {
|
|
title: "Automatizar",
|
|
invalidPipelineFile: "No es un archivo de Pipeline de SnapOtter valido",
|
|
newerVersion: "Este Pipeline fue creado con una version mas reciente de SnapOtter",
|
|
missingName: "Al archivo de Pipeline le falta un nombre",
|
|
noSteps: "El archivo de Pipeline no tiene pasos",
|
|
importFailed: "Error en la importacion",
|
|
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} mas",
|
|
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: "Descripcion",
|
|
savingIndicator: "...",
|
|
cancelButton: "Cancelar",
|
|
preview: "Vista previa",
|
|
previousImage: "Imagen anterior",
|
|
nextImage: "Siguiente imagen",
|
|
imageCounter: "{current} / {total}",
|
|
imageArea: "Area de imagen",
|
|
templateSocialMedia: "Listo para redes sociales",
|
|
templatePrivacyClean: "Limpieza de privacidad",
|
|
templateWebOptimization: "Optimizacion web",
|
|
templateProfilePicture: "Foto de perfil",
|
|
templateWatermarkBatch: "Lote de marcas de agua",
|
|
createNew: "Crear nueva automatizacion",
|
|
savedAutomations: "Automatizaciones guardadas",
|
|
templates: "Plantillas",
|
|
addStep: "Agregar paso",
|
|
removeStep: "Eliminar",
|
|
moveUp: "Subir",
|
|
moveDown: "Bajar",
|
|
savePipeline: "Guardar Pipeline",
|
|
runPipeline: "Procesar",
|
|
pipelineName: "Nombre del Pipeline",
|
|
pipelineDescription: "Descripcion (opcional)",
|
|
noStepsPrompt: "Agrega pasos para construir tu automatizacion",
|
|
noStepsHeading: "No steps yet",
|
|
searchToolsPlaceholder: "Search tools...",
|
|
step: "Paso",
|
|
},
|
|
nav: {
|
|
tools: "Herramientas",
|
|
reader: "Lector",
|
|
automate: "Automatizar",
|
|
editor: "Editor",
|
|
files: "Archivos",
|
|
help: "Ayuda",
|
|
settings: "Configuracion",
|
|
grid: "Cuadricula",
|
|
},
|
|
files: {
|
|
myFiles: "My Files",
|
|
recentTab: "Recent",
|
|
uploadTab: "Upload Files",
|
|
fileDetailsAriaLabel: "File Details",
|
|
fileDetailsHeading: "File Details",
|
|
searchPlaceholder: "Search files...",
|
|
selectedCount: "{count} selected",
|
|
fileCount: "{count} files",
|
|
fileCountSingular: "{count} file",
|
|
noFilesFound: "No files found",
|
|
selectFilePrompt: "Select a file to view details",
|
|
openFile: "Open File",
|
|
selectFile: "Select File",
|
|
openInPipeline: "Open in Pipeline",
|
|
dropFilesHere: "Drop files here",
|
|
orClickToSelect: "or click to select files",
|
|
name: "Name",
|
|
format: "Format",
|
|
size: "Size",
|
|
dimensions: "Dimensions",
|
|
version: "Version",
|
|
toolsUsed: "Tools Used",
|
|
none: "None",
|
|
delete: "Delete",
|
|
pipeline: "Pipeline",
|
|
download: "Download",
|
|
},
|
|
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 imagenes aqui",
|
|
browseOrPaste: "haz clic en cualquier lugar para explorar, o pega desde el portapapeles",
|
|
uploadButton: "Subir",
|
|
defaultFormats: "PNG, JPG, WebP, HEIC, RAW, PSD y mas de 65 formatos",
|
|
orSeparator: "o",
|
|
urlPlaceholder: "Pega la URL de la imagen...",
|
|
urlLoadingIndicator: "...",
|
|
addUrlButton: "Agregar",
|
|
importMultipleUrls: "Importar multiples URLs...",
|
|
filesSelected: "{count} archivos seleccionados",
|
|
dropToAdd: "Suelta para agregar archivos",
|
|
dropToReplace: "Suelta para reemplazar archivo",
|
|
},
|
|
reviewPanel: {
|
|
processedResultAlt: "Resultado procesado",
|
|
sizeLabel: "Tamano: {size}",
|
|
typeLabel: "Tipo: {type}",
|
|
processedLabel: "Procesado: {time}",
|
|
undoButton: "Deshacer",
|
|
downloadButton: "Descargar",
|
|
openInEditor: "Abrir en el editor",
|
|
reviewHeading: "Revisar",
|
|
continueEditing: "Continuar editando",
|
|
},
|
|
features: {
|
|
notEnabledTitle: "Funcion no activada",
|
|
notEnabledDescription:
|
|
"Esta funcion no esta activada. Pide a tu administrador que la active en Configuracion.",
|
|
requiresDownload: "Esta funcion requiere una descarga adicional (~{size})",
|
|
retryButton: "Reintentar",
|
|
queued: "En cola para instalacion...",
|
|
enableButton: "Activar {name}",
|
|
repairRequired: "Repair Required",
|
|
repairDescription: "Some model files are missing or corrupted. Repair will re-download them.",
|
|
repairButton: "Repair {name}",
|
|
lessThanMinute: "Menos de un minuto restante",
|
|
oneMinuteLeft: "~1 minuto restante",
|
|
minutesLeft: "~{mins} minutos restantes",
|
|
progressMessages: [
|
|
"Ya casi... probablemente...",
|
|
"Las cosas buenas toman tiempo...",
|
|
"Mas rapido que ver secar la pintura...",
|
|
"Tu paciencia es verdaderamente inspiradora...",
|
|
"Trabajando mas duro de lo que parece...",
|
|
"Esta es la parte emocionante, en serio...",
|
|
"Haciendo cosas importantes tras bambalinas...",
|
|
"Si lees esto, esta funcionando...",
|
|
"Preparando algo increible...",
|
|
"Vale cada segundo, lo prometo...",
|
|
"El suspenso es parte de la experiencia...",
|
|
"Ensenandole trucos nuevos a tu computadora...",
|
|
"Configurando tus superpoderes...",
|
|
"Tus imagenes te lo agradeceran despues...",
|
|
"Cargando... pero con estilo...",
|
|
"Buen momento para un cafe...",
|
|
"Roma tampoco se construyo en un dia...",
|
|
"Shhh... genio trabajando...",
|
|
"Haciendo que tus fotos se pongan celosas...",
|
|
"Armando el equipo de ensueño...",
|
|
"Desempacando cosas geniales...",
|
|
"Ya casi termino de pensar en empezar... es broma...",
|
|
"Giro de trama: esto de verdad esta haciendo algo...",
|
|
"Calentando los motores creativos...",
|
|
"Cargando imaginacion...",
|
|
"No es un protector de pantalla, lo prometemos...",
|
|
"El gran arte necesita tiempo para instalarse...",
|
|
"Tu yo del futuro te lo agradecera...",
|
|
"Buscando archivos muy inteligentes...",
|
|
"Aguanta, lo mejor esta por venir...",
|
|
],
|
|
},
|
|
help: {
|
|
heading: "Ayuda",
|
|
gettingStarted: {
|
|
heading: "Primeros pasos",
|
|
description:
|
|
"Selecciona una herramienta desde la barra lateral o busca una. Sube una imagen arrastandola a la pagina o haciendo clic en el area de carga. Ajusta la configuracion y descarga tu resultado.",
|
|
},
|
|
keyboardShortcuts: {
|
|
heading: "Atajos de teclado",
|
|
focusSearchBar: "Enfocar barra de busqueda",
|
|
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: "Documentacion",
|
|
apiRefLink: "Referencia API (Swagger)",
|
|
},
|
|
versionLabel: "SnapOtter v{version}",
|
|
},
|
|
errors: {
|
|
generic: "Ocurrio un error",
|
|
offline: "Estas sin conexion",
|
|
reconnecting: "Reconectando al servidor...",
|
|
connected: "Conectado",
|
|
processingFailed: "Error al procesar este archivo",
|
|
timeout:
|
|
"La solicitud agoto el tiempo de espera. El servidor puede estar sobrecargado. Intenta de nuevo.",
|
|
networkError: "Error de red. Verifica tu conexion.",
|
|
invalidCredentials: "Nombre de usuario o contrasena invalidos",
|
|
connectionError: "Error de conexion",
|
|
},
|
|
analytics: {
|
|
consentTitle: "Ayuda a mejorar SnapOtter",
|
|
consentDescription:
|
|
"Las estadisticas de uso anonimas nos ayudan a corregir errores y crear las herramientas que realmente necesitas. Tus imagenes y archivos se quedan en tu equipo.",
|
|
consentChangeable: "Puedes desactivar esto en cualquier momento en Configuracion.",
|
|
acceptButton: "Claro, me parece bien",
|
|
declineButton: "Ahora no",
|
|
settingsTitle: "Analitica del producto",
|
|
settingsDescription: "Comparte datos de uso anonimos para ayudar a mejorar SnapOtter.",
|
|
settingsPrivacy: "Tus imagenes nunca salen de tu equipo.",
|
|
settingsDisabledByAdmin:
|
|
"La analitica del producto ha sido desactivada por el administrador del servidor.",
|
|
learnMore: "Mas informacion",
|
|
},
|
|
sidebar: {
|
|
tools: "Herramientas",
|
|
grid: "Cuadricula",
|
|
automate: "Automatizar",
|
|
editor: "Editor",
|
|
files: "Archivos",
|
|
help: "Ayuda",
|
|
settings: "Configuracion",
|
|
},
|
|
toolCard: {
|
|
addToFavourites: "Agregar a favoritos",
|
|
},
|
|
appLayout: {
|
|
mobileNavTools: "Herramientas",
|
|
mobileNavAutomate: "Automatizar",
|
|
mobileNavEditor: "Editor",
|
|
mobileNavFiles: "Archivos",
|
|
mobileNavSettings: "Configuracion",
|
|
},
|
|
a11y: {
|
|
skipToContent: "Skip to main content",
|
|
openSidebar: "Open sidebar",
|
|
closeSidebar: "Close sidebar",
|
|
closeSettings: "Close settings",
|
|
closeHelp: "Close help",
|
|
closeDialog: "Close dialog",
|
|
zoomIn: "Zoom in",
|
|
zoomOut: "Zoom out",
|
|
fitToView: "Fit to view",
|
|
actualSize: "Actual size",
|
|
previousImage: "Previous image",
|
|
nextImage: "Next image",
|
|
imageArea: "Image area",
|
|
imageViewer: "Image viewer",
|
|
fileDropZone: "File drop zone",
|
|
imageDropZone: "Image drop zone",
|
|
beforeAfterSlider: "Before/after comparison slider",
|
|
imageControls: "Image controls",
|
|
zoomControls: "Zoom controls",
|
|
dragToReorder: "Drag to reorder",
|
|
whiteBackground: "White background",
|
|
blackBackground: "Black background",
|
|
expandPanel: "Expand panel",
|
|
collapsePanel: "Collapse panel",
|
|
swapDimensions: "Swap dimensions",
|
|
applyCrop: "Apply crop",
|
|
cancelCrop: "Cancel crop",
|
|
fontFamily: "Font family",
|
|
textColor: "Text color",
|
|
flipHorizontal: "Flip horizontal",
|
|
flipVertical: "Flip vertical",
|
|
hexColorValue: "Hex color value",
|
|
backgroundColor: "Background color",
|
|
foregroundColor: "Foreground color",
|
|
swapColors: "Swap foreground and background colors",
|
|
resetColors: "Reset to default black and white",
|
|
foregroundHex: "Foreground color hex value",
|
|
undo: "Undo",
|
|
redo: "Redo",
|
|
layers: "Layers",
|
|
addLayer: "Add layer",
|
|
deleteLayer: "Delete layer",
|
|
cancelOperation: "Cancel operation",
|
|
fill: "Fill",
|
|
fileDetails: "File details",
|
|
language: "Language",
|
|
selected: "Selected",
|
|
deleteKey: "Delete key",
|
|
editRole: "Edit role",
|
|
deleteRole: "Delete role",
|
|
notInstalled: "Not installed",
|
|
queued: "Queued for install",
|
|
installing: "Installing",
|
|
imageNOfTotal: "Image {n} of {total}",
|
|
processingComplete: "Image processed successfully",
|
|
processingFailed: "Processing failed",
|
|
settingsDialog: "Settings",
|
|
helpDialog: "Help",
|
|
navigationMenu: "Navigation",
|
|
},
|
|
} as const;
|