mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
feat(tools)!: SnapOtter 2.0 phase 4 wave 1: 45 core tools across all modalities (#219)
This commit is contained in:
@@ -47,6 +47,10 @@ export const es: TranslationKeys = {
|
||||
utilities: "Utilidades",
|
||||
layout: "Diseno y composicion",
|
||||
format: "Formato y conversion",
|
||||
video: "Video",
|
||||
audio: "Audio",
|
||||
documents: "PDF & Documents",
|
||||
data: "Data Files",
|
||||
ai: "Herramientas de AI",
|
||||
},
|
||||
modalities: {
|
||||
@@ -262,6 +266,74 @@ export const es: TranslationKeys = {
|
||||
name: "Imagen a Base64",
|
||||
description: "Convierte imagenes a cadenas Base64 para incrustar en HTML, CSS y mas",
|
||||
},
|
||||
"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",
|
||||
},
|
||||
"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",
|
||||
},
|
||||
"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",
|
||||
},
|
||||
"word-to-pdf": {
|
||||
name: "Word to PDF",
|
||||
description: "Convert Word documents to PDF",
|
||||
},
|
||||
"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",
|
||||
},
|
||||
pipeline: {
|
||||
name: "Constructor de Pipeline",
|
||||
description: "Encadena multiples herramientas en un flujo de trabajo",
|
||||
@@ -1226,6 +1298,133 @@ export const es: TranslationKeys = {
|
||||
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",
|
||||
},
|
||||
"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",
|
||||
},
|
||||
"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",
|
||||
},
|
||||
"word-to-pdf": {
|
||||
submit: "Convert to PDF",
|
||||
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",
|
||||
},
|
||||
},
|
||||
urlImport: {
|
||||
title: "Importar desde URLs",
|
||||
@@ -1779,7 +1978,7 @@ export const es: TranslationKeys = {
|
||||
heading: "Acerca de",
|
||||
appName: "SnapOtter",
|
||||
appDescription:
|
||||
"Una suite de procesamiento de imagenes autoalojada y con privacidad como prioridad, con 53 herramientas. Redimensiona, comprime, convierte, agrega marcas de agua y automatiza tus flujos de trabajo de imagenes sin enviar datos a la nube.",
|
||||
"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",
|
||||
@@ -1826,7 +2025,7 @@ export const es: TranslationKeys = {
|
||||
"Sin limites. Sin topes ocultos.",
|
||||
"Funciona totalmente sin conexion.",
|
||||
"Procesamiento por lotes ilimitado.",
|
||||
"53 herramientas de imagen.",
|
||||
"70+ herramientas de imagen.",
|
||||
"15 modelos AI. Tu hardware.",
|
||||
"Ultra rapido. Construido sobre Sharp.",
|
||||
"Listo para redes aisladas.",
|
||||
|
||||
Reference in New Issue
Block a user