From 865c7789bf5fcf563ac6019de6af133515e6cc5d Mon Sep 17 00:00:00 2001 From: SnapOtter Date: Mon, 6 Jul 2026 23:20:19 +0800 Subject: [PATCH] Fix stale image-only copy and add 1.x-to-2.0 migration guide (#454) * docs: add 1.x-to-2.0 migration guide and upgrade notice Adds MIGRATING.md with backup and upgrade steps, plus a short "coming from 1.x?" callout in README and the docs upgrade guide pointing existing users at it. * fix: replace stale image-only and pre-rename data copy across product SnapOtter grew from an image-only tool into a 5-modality suite (Image, Video, Audio, PDF, Files), but copy in several places never caught up. Fixes: - dropzone.defaultFormats (i18n): every non-English locale still had the pure pre-2.0 image-only format list; English omitted Files entirely. Corrected across all 21 locales. - settings.about.appDescription (i18n): "document, and data" workflow copy updated to "PDF, and file" across all 21 locales. - constants.ts: Files category's raw name was still "Data Files". - Landing hero subtitle, JSON-LD schema, llms.txt, and 7 spots in the competitor-comparison pages. - Docs: VitePress config, supported-formats, deployment, and an architecture.md modality-naming nit. - OpenAPI description, root package.json description/keyword, and a GitHub issue template dropdown option. DOCKERHUB.md's separate "v1.x, image tools only" pre-release notice is left untouched since 2.0 hasn't published to Docker Hub yet. * test: update dropzone format-hint assertion to match corrected copy The expected string still had the stale image-only/duplicated PDF-Documents text from before the dropzone.defaultFormats fix. --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- DOCKERHUB.md | 2 +- README.md | 4 ++++ apps/api/src/openapi.yaml | 4 ++-- apps/docs/.vitepress/config.mts | 6 +++--- apps/docs/guide/architecture.md | 2 +- apps/docs/guide/deployment.md | 6 +++--- apps/docs/guide/supported-formats.md | 4 ++-- apps/landing/public/llms.txt | 6 +++--- apps/landing/src/components/Hero.astro | 2 +- apps/landing/src/data/alternatives.ts | 14 +++++++------- apps/landing/src/pages/index.astro | 2 +- package.json | 4 ++-- packages/shared/src/constants.ts | 2 +- packages/shared/src/i18n/ar.ts | 4 ++-- packages/shared/src/i18n/de.ts | 4 ++-- packages/shared/src/i18n/en.ts | 4 ++-- packages/shared/src/i18n/es.ts | 4 ++-- packages/shared/src/i18n/fr.ts | 4 ++-- packages/shared/src/i18n/hi.ts | 4 ++-- packages/shared/src/i18n/id.ts | 4 ++-- packages/shared/src/i18n/it.ts | 4 ++-- packages/shared/src/i18n/ja.ts | 4 ++-- packages/shared/src/i18n/ko.ts | 4 ++-- packages/shared/src/i18n/nl.ts | 4 ++-- packages/shared/src/i18n/pl.ts | 4 ++-- packages/shared/src/i18n/pt-BR.ts | 4 ++-- packages/shared/src/i18n/ru.ts | 4 ++-- packages/shared/src/i18n/sv.ts | 4 ++-- packages/shared/src/i18n/th.ts | 4 ++-- packages/shared/src/i18n/tr.ts | 4 ++-- packages/shared/src/i18n/uk.ts | 4 ++-- packages/shared/src/i18n/vi.ts | 4 ++-- packages/shared/src/i18n/zh-CN.ts | 4 ++-- packages/shared/src/i18n/zh-TW.ts | 4 ++-- tests/unit/web/dropzone.test.tsx | 4 +--- 36 files changed, 75 insertions(+), 73 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 74e18124..bf49c5cc 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -62,7 +62,7 @@ body: - Video tools - Audio tools - PDF tools - - Data tools + - File tools - Image editor - Pipelines / automation - File library diff --git a/DOCKERHUB.md b/DOCKERHUB.md index aecf59d2..13510281 100644 --- a/DOCKERHUB.md +++ b/DOCKERHUB.md @@ -2,7 +2,7 @@ ![SnapOtter, a self-hosted file manipulation suite](https://raw.githubusercontent.com/snapotter-hq/SnapOtter/main/branding/social-preview.png) -Open-source, self-hostable file manipulation suite. 200+ tools across image, video, audio, documents, and files, plus a layer-based image editor and local AI. Everything runs on your own hardware, so your files never leave your network. +Open-source, self-hostable file manipulation suite. 200+ tools across image, video, audio, PDF, and files, plus a layer-based image editor and local AI. Everything runs on your own hardware, so your files never leave your network. [![License: AGPLv3](https://img.shields.io/badge/License-AGPLv3-blue)](https://github.com/snapotter-hq/SnapOtter/blob/main/LICENSE) [![Website](https://img.shields.io/badge/Website-snapotter.com-blue?logo=googlechrome&logoColor=white)](https://snapotter.com) diff --git a/README.md b/README.md index e72baeaa..9fd1560e 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,10 @@ > [!IMPORTANT] > **Coming from 1.x?** Many of you have trusted SnapOtter since day one, and your feedback and suggestions shaped everything that followed. 2.0 is a big step, and we worked to make sure it doesn't break what you already depend on. Your accounts, saved files, settings, API keys, and pipelines carry over automatically on first boot, and your old database is never modified. We wrote a full [migration guide](./MIGRATING.md) so the move is safe and boring. Thank you for being here. + +> [!IMPORTANT] +> **Coming from 1.x?** Many of you have trusted SnapOtter since day one, and your feedback and suggestions shaped everything that followed. 2.0 is a big step, and we worked to make sure it doesn't break what you already depend on. Your accounts, saved files, settings, API keys, and pipelines carry over automatically on first boot, and your old database is never modified. We wrote a full [migration guide](./MIGRATING.md) so the move is safe and boring. Thank you for being here. +

Docker Hub GHCR diff --git a/apps/api/src/openapi.yaml b/apps/api/src/openapi.yaml index d6098ac3..1a09bb33 100644 --- a/apps/api/src/openapi.yaml +++ b/apps/api/src/openapi.yaml @@ -3,7 +3,7 @@ info: title: SnapOtter API version: 2.0.0 description: | - REST API for SnapOtter, a self-hosted file processing suite with 200+ tools across image, video, audio, document, and data. + REST API for SnapOtter, a self-hosted file processing suite with 200+ tools across image, video, audio, PDF, and files. ## Authentication @@ -24,7 +24,7 @@ servers: tags: - name: Tools - description: File processing tools spanning image, video, audio, document, and data. Each accepts a multipart file upload and returns a download URL. + description: File processing tools spanning image, video, audio, PDF, and files. Each accepts a multipart file upload and returns a download URL. - name: Batch description: Process multiple files through a tool in one request. - name: Pipelines diff --git a/apps/docs/.vitepress/config.mts b/apps/docs/.vitepress/config.mts index 5c221260..5158537d 100644 --- a/apps/docs/.vitepress/config.mts +++ b/apps/docs/.vitepress/config.mts @@ -6,7 +6,7 @@ import pkg from "../../../package.json"; export default defineConfig({ title: "SnapOtter", description: - "Documentation for SnapOtter - A Self-Hosted File Manipulation Suite. 200+ tools for image, video, audio, PDF, and data processing. Local AI, pipelines, REST API.", + "Documentation for SnapOtter - A Self-Hosted File Manipulation Suite. 200+ tools for image, video, audio, PDF, and file processing. Local AI, pipelines, REST API.", base: "/", appearance: { initialValue: "light" }, srcDir: ".", @@ -99,9 +99,9 @@ export default defineConfig({ `, customTemplateVariables: { description: - "SnapOtter is a self-hosted, open-source file processing platform with 200+ tools across image, video, audio, PDF, and data. Includes AI/ML tools. Runs via Docker Compose with GPU auto-detection.", + "SnapOtter is a self-hosted, open-source file processing platform with 200+ tools across image, video, audio, PDF, and files. Includes AI/ML tools. Runs via Docker Compose with GPU auto-detection.", details: - "Process images (resize, compress, convert, remove backgrounds, upscale, OCR), videos (trim, merge, subtitles), audio (normalize, transcribe, convert), PDFs (merge, split, watermark, redact), and data files (CSV, JSON, XML conversion) - without sending files to external services.", + "Process images (resize, compress, convert, remove backgrounds, upscale, OCR), videos (trim, merge, subtitles), audio (normalize, transcribe, convert), PDFs (merge, split, watermark, redact), and files (CSV, JSON, XML conversion) - without sending files to external services.", }, }), ], diff --git a/apps/docs/guide/architecture.md b/apps/docs/guide/architecture.md index 2af2ea11..5b3854c5 100644 --- a/apps/docs/guide/architecture.md +++ b/apps/docs/guide/architecture.md @@ -49,7 +49,7 @@ Shared TypeScript types, constants (like `APP_VERSION` and tool definitions), an ### API (`apps/api`) -A Fastify v5 server exposing 241 tool routes across five modalities (image, video, audio, document, file) that handles: +A Fastify v5 server exposing 241 tool routes across five modalities (image, video, audio, PDF, file) that handles: - File uploads, temporary workspace management, and persistent file storage - User file library with version chains (`user_files` table) - each processed result links back to its source file and records which tool was applied, with auto-generated thumbnails for the Files page - Tool execution (routes each tool request to the image engine or AI bridge) diff --git a/apps/docs/guide/deployment.md b/apps/docs/guide/deployment.md index 0e749930..d4f56ea7 100644 --- a/apps/docs/guide/deployment.md +++ b/apps/docs/guide/deployment.md @@ -213,13 +213,13 @@ These numbers come from benchmarks across a range of systems, from a modern amd6 | Tier | Use Case | CPU | RAM | GPU | Storage | |------|----------|-----|-----|-----|---------| -| Minimum | Image, data, and light PDF tools; single user; small batches | 2 cores | 2 GB | None | ~7 GB | -| Recommended | All five modalities incl. video, documents, and AI on CPU; batches; a few users | 4 cores | 4 GB | None | ~25 GB | +| Minimum | Image, files, and light PDF tools; single user; small batches | 2 cores | 2 GB | None | ~7 GB | +| Recommended | All five modalities incl. video, PDF, and AI on CPU; batches; a few users | 4 cores | 4 GB | None | ~25 GB | | Full | Everything at speed incl. GPU AI; large batches; many users | 6-8 cores | 8 GB | NVIDIA 8 GB+ VRAM (12 GB comfortable) | ~35 GB | **Architecture: 64-bit only** (`linux/amd64` or `linux/arm64`). SnapOtter runs natively on Intel/AMD servers, Apple Silicon Macs, and 64-bit ARM boards including the **Raspberry Pi 4 and 5** (4-8 GB). It does **not** run on 32-bit ARM (`armv7`/`armhf`) — no image is built for it — nor on 512 MB-class boards such as the Pi Zero, which are below the memory floor (see below). -### Minimum (image, data, and light PDF tools; no AI) +### Minimum (image, files, and light PDF tools; no AI) | Resource | Requirement | |---|---| diff --git a/apps/docs/guide/supported-formats.md b/apps/docs/guide/supported-formats.md index 86592b76..b48b2b44 100644 --- a/apps/docs/guide/supported-formats.md +++ b/apps/docs/guide/supported-formats.md @@ -1,10 +1,10 @@ --- -description: Supported file formats across all modalities - 55+ image input formats, video, audio, document, and data formats. +description: Supported file formats across all modalities - 55+ image input formats, video, audio, PDF, and file formats. --- # Supported Formats -SnapOtter processes files across five modalities: image, video, audio, document, and data. This page lists all supported formats. +SnapOtter processes files across five modalities: image, video, audio, PDF, and files. This page lists all supported formats. ## Image Formats diff --git a/apps/landing/public/llms.txt b/apps/landing/public/llms.txt index 34d31212..7544d446 100644 --- a/apps/landing/public/llms.txt +++ b/apps/landing/public/llms.txt @@ -1,6 +1,6 @@ # SnapOtter -> Open-source, self-hostable file processing suite with 200+ tools across 5 modalities (image, video, audio, document, data). Single Docker container, no external services. Dual-licensed AGPLv3 / commercial. +> Open-source, self-hostable file processing suite with 200+ tools across 5 modalities (image, video, audio, PDF, files). Single Docker container, no external services. Dual-licensed AGPLv3 / commercial. SnapOtter runs entirely on your own infrastructure. Files are processed locally with no data sent to external APIs. Deploy once with Docker and use it as much as you need. Supports GDPR, HIPAA, and CCPA compliance by architecture. @@ -38,7 +38,7 @@ Convert Video (MP4/MOV/WebM), Compress Video, Trim Video, Mute Video, Resize Vid Transcribe Audio (AI speech-to-text), Convert Audio (MP3/WAV/OGG/FLAC/AAC), Trim Audio, Volume Adjust, Normalize Audio, Fade Audio, Reverse Audio, Audio Speed, Pitch Shift, Audio Channels (mono/stereo), Silence Removal, Noise Reduction (FFT), Merge Audio, Split Audio, Ringtone Maker, Waveform Image, Audio Metadata. -## Document Tools +## PDF Tools PDF: Merge, Split, Compress, Rotate, Extract Pages, Remove Pages, Organize, Protect (AES-256), Unlock, Repair, Web-Optimize (linearize), Grayscale, PDF/A Convert, Crop, N-up, Booklet, Watermark, Page Numbers, Flatten, Redact, PDF to Text, PDF to Word, PDF to Image, PDF Metadata, PDF OCR (AI). @@ -60,7 +60,7 @@ SAML SSO (Okta, Azure AD, Google Workspace, any OIDC), SCIM Provisioning, Multi- - Self-hosted: all processing on your infrastructure, no cloud dependency - Privacy-first: files never leave your network, air-gapped capable -- 200+ tools across 5 modalities (image, video, audio, document, data) +- 200+ tools across 5 modalities (image, video, audio, PDF, files) - 15 local AI models, no external API calls - Batch processing with ZIP output - Pipeline automation: chain tools sequentially diff --git a/apps/landing/src/components/Hero.astro b/apps/landing/src/components/Hero.astro index a4d77b49..21ec7ddf 100644 --- a/apps/landing/src/components/Hero.astro +++ b/apps/landing/src/components/Hero.astro @@ -41,7 +41,7 @@ const trustBadges = ["Self-hosted", "Open source", "Air-gap capable", "Complianc

- Run image, video, audio, PDF, and document tools with local AI, batch workflows, and enterprise controls. + Run image, video, audio, PDF, and file tools with local AI, batch workflows, and enterprise controls.

diff --git a/apps/landing/src/data/alternatives.ts b/apps/landing/src/data/alternatives.ts index 5f4b01ea..2ada28ad 100644 --- a/apps/landing/src/data/alternatives.ts +++ b/apps/landing/src/data/alternatives.ts @@ -219,11 +219,11 @@ export const ALTERNATIVES: Alternative[] = [ pageTitle: "The Open-Source, Self-Hosted Alternative to CloudConvert", h1: "The open-source, self-hosted alternative to CloudConvert", metaDescription: - "CloudConvert is a hosted conversion platform with an API. SnapOtter converts image, video, audio, PDF, and data files on your own server with open-source pipelines.", + "CloudConvert is a hosted conversion platform with an API. SnapOtter converts image, video, audio, PDF, and files on your own server with open-source pipelines.", intro: "CloudConvert is a mature hosted converter and API. SnapOtter is the self-hosted alternative when conversion should happen inside your own infrastructure, with pipelines you control.", breadth: - "CloudConvert is broad and API-friendly for conversion. SnapOtter converts across image, video, audio, PDF, and data formats, then adds compression, editing, OCR, transcription, and local pipelines.", + "CloudConvert is broad and API-friendly for conversion. SnapOtter converts across image, video, audio, PDF, and file formats, then adds compression, editing, OCR, transcription, and local pipelines.", competitorOpenSource: false, lastReviewed: REVIEW_DATE, sources: [ @@ -239,7 +239,7 @@ export const ALTERNATIVES: Alternative[] = [ faqs: [ { q: "Can I self-host a CloudConvert alternative?", - a: "Yes. SnapOtter is open source and runs on Docker. It converts image, video, audio, PDF, and data formats locally, with no per-conversion billing from SnapOtter.", + a: "Yes. SnapOtter is open source and runs on Docker. It converts image, video, audio, PDF, and file formats locally, with no per-conversion billing from SnapOtter.", }, { q: "Does SnapOtter convert video and audio too?", @@ -321,7 +321,7 @@ export const ALTERNATIVES: Alternative[] = [ }, { q: "Does SnapOtter replace TinyWow's AI writing tools?", - a: "Not directly. SnapOtter focuses on file manipulation: images, video, audio, PDFs, documents, archives, and data files. It is a better fit when the file-processing layer matters more than writing templates.", + a: "Not directly. SnapOtter focuses on file manipulation: images, video, audio, PDF, archives, and files. It is a better fit when the file-processing layer matters more than writing templates.", }, ], }, @@ -375,7 +375,7 @@ export const ALTERNATIVES: Alternative[] = [ intro: "FreeConvert is a broad hosted converter for browser-based file conversion and compression. SnapOtter is the self-hosted alternative when you want those file operations to run inside your own deployment.", breadth: - "FreeConvert is useful for quick online conversions across many categories. SnapOtter covers conversion too, then adds local image tools, video/audio workflows, PDFs, archives, data tools, APIs, and pipelines.", + "FreeConvert is useful for quick online conversions across many categories. SnapOtter covers conversion too, then adds local image tools, video/audio workflows, PDFs, archives, file tools, APIs, and pipelines.", competitorOpenSource: false, lastReviewed: REVIEW_DATE, sources: [ @@ -392,7 +392,7 @@ export const ALTERNATIVES: Alternative[] = [ faqs: [ { q: "Can SnapOtter replace FreeConvert?", - a: "For many image, video, audio, PDF, archive, and data conversions, yes. SnapOtter is strongest when you want the converter deployed privately instead of using a hosted web service.", + a: "For many image, video, audio, PDF, archive, and file conversions, yes. SnapOtter is strongest when you want the converter deployed privately instead of using a hosted web service.", }, { q: "Does SnapOtter support large files?", @@ -473,7 +473,7 @@ export const ALTERNATIVES: Alternative[] = [ }, { q: "Does SnapOtter cover more than conversion?", - a: "Yes. SnapOtter includes conversion, compression, editing, OCR, transcription, PDF operations, metadata tools, archives, data tools, and pipelines.", + a: "Yes. SnapOtter includes conversion, compression, editing, OCR, transcription, PDF operations, metadata tools, archives, file tools, and pipelines.", }, ], }, diff --git a/apps/landing/src/pages/index.astro b/apps/landing/src/pages/index.astro index 776ccd4e..c00926d2 100644 --- a/apps/landing/src/pages/index.astro +++ b/apps/landing/src/pages/index.astro @@ -56,7 +56,7 @@ const softwareSchema = { downloadUrl: "https://hub.docker.com/r/snapotter/snapotter", featureList: [ `${toolCount} file processing tools`, - "5 modalities: image, video, audio, document, data", + "5 modalities: image, video, audio, PDF, files", "Local AI models for background removal, OCR, upscaling, transcription", "Pipeline automation and batch processing", "Full REST API with OpenAPI documentation", diff --git a/package.json b/package.json index b23b5cac..aae18607 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "snapotter", "version": "2.0.0", "private": true, - "description": "Self-hosted file processing suite with 200+ tools across image, video, audio, document, and data, plus local AI. Runs as a Docker Compose stack with Postgres and Redis.", + "description": "Self-hosted file processing suite with 200+ tools across image, video, audio, PDF, and files, plus local AI. Runs as a Docker Compose stack with Postgres and Redis.", "homepage": "https://snapotter.com", "repository": { "type": "git", @@ -15,7 +15,7 @@ "audio-processing", "pdf-tools", "document-conversion", - "data-tools", + "file-tools", "self-hosted", "docker", "ai", diff --git a/packages/shared/src/constants.ts b/packages/shared/src/constants.ts index be62f03a..d5fc98b5 100644 --- a/packages/shared/src/constants.ts +++ b/packages/shared/src/constants.ts @@ -31,7 +31,7 @@ export const CATEGORIES: CategoryInfo[] = [ { id: "pdf-optimize", name: "Optimize", icon: "Zap", color: "#10B981" }, { id: "doc-convert", name: "Convert", icon: "FileType", color: "#14B8A6" }, // Data & Files - { id: "data", name: "Data Files", icon: "Table", color: "#F59E0B" }, + { id: "data", name: "Files", icon: "Table", color: "#F59E0B" }, { id: "archives", name: "Archives", icon: "FolderArchive", color: "#6366F1" }, ]; diff --git a/packages/shared/src/i18n/ar.ts b/packages/shared/src/i18n/ar.ts index 2a255674..c136cafb 100644 --- a/packages/shared/src/i18n/ar.ts +++ b/packages/shared/src/i18n/ar.ts @@ -3510,7 +3510,7 @@ export const ar: TranslationKeys = { heading: "حول", appName: "SnapOtter", appDescription: - "مجموعة أدوات معالجة ملفات ذاتية الاستضافة تركز على الخصوصية مع 200+ أداة. تحويل وضغط وتحرير ونسخ صوتي وتعرّف ضوئي وأتمتة سير عمل الصور والفيديو والصوت والمستندات والبيانات دون إرسال البيانات إلى السحابة.", + "مجموعة أدوات معالجة ملفات ذاتية الاستضافة تركز على الخصوصية مع 200+ أداة. تحويل وضغط وتحرير ونسخ صوتي وتعرّف ضوئي وأتمتة سير عمل الصور والفيديو والصوت وPDF والملفات دون إرسال البيانات إلى السحابة.", versionLabel: "الإصدار:", linksHeading: "روابط", githubLink: "مستودع GitHub", @@ -3723,7 +3723,7 @@ export const ar: TranslationKeys = { dropPrompt: "اسحب صورك هنا", browseOrPaste: "استخدم زر التحميل، أو الصق من الحافظة", uploadButton: "رفع", - defaultFormats: "PNG، JPG، WebP، HEIC، RAW، PSD، وأكثر من 65 صيغة", + defaultFormats: "صور، فيديوهات، صوت، PDF، ملفات، وأكثر من 150 صيغة", orSeparator: "أو", urlPlaceholder: "الصق رابط الصورة...", urlLoadingIndicator: "...", diff --git a/packages/shared/src/i18n/de.ts b/packages/shared/src/i18n/de.ts index 7af370f7..3f6e7332 100644 --- a/packages/shared/src/i18n/de.ts +++ b/packages/shared/src/i18n/de.ts @@ -3551,7 +3551,7 @@ export const de: TranslationKeys = { heading: "Info", appName: "SnapOtter", appDescription: - "Eine selbst gehostete, datenschutzorientierte Dateiverarbeitungssuite mit 200+ Werkzeugen. Konvertieren, komprimieren, bearbeiten, transkribieren, OCR und Bild-, Video-, Audio-, Dokument- und Datenabläufe automatisieren, ohne Daten in die Cloud zu senden.", + "Eine selbst gehostete, datenschutzorientierte Dateiverarbeitungssuite mit 200+ Werkzeugen. Konvertieren, komprimieren, bearbeiten, transkribieren, OCR und Bild-, Video-, Audio-, PDF- und Dateiabläufe automatisieren, ohne Daten in die Cloud zu senden.", versionLabel: "Version:", linksHeading: "Links", githubLink: "GitHub-Repository", @@ -3770,7 +3770,7 @@ export const de: TranslationKeys = { browseOrPaste: "Verwenden Sie die Upload-Schaltfläche oder fügen Sie aus der Zwischenablage ein", uploadButton: "Hochladen", - defaultFormats: "PNG, JPG, WebP, HEIC, RAW, PSD und 65+ Formate", + defaultFormats: "Bilder, Videos, Audio, PDF, Dateien und 150+ Formate", orSeparator: "oder", urlPlaceholder: "Bild-URL einfügen...", urlLoadingIndicator: "...", diff --git a/packages/shared/src/i18n/en.ts b/packages/shared/src/i18n/en.ts index b704c909..f2d05f03 100644 --- a/packages/shared/src/i18n/en.ts +++ b/packages/shared/src/i18n/en.ts @@ -3477,7 +3477,7 @@ export const en = { heading: "About", appName: "SnapOtter", appDescription: - "A self-hosted, privacy-first file processing suite with 200+ tools. Convert, compress, edit, transcribe, OCR, and automate image, video, audio, document, and data workflows without sending data to the cloud.", + "A self-hosted, privacy-first file processing suite with 200+ tools. Convert, compress, edit, transcribe, OCR, and automate image, video, audio, PDF, and file workflows without sending data to the cloud.", versionLabel: "Version:", linksHeading: "Links", githubLink: "GitHub Repository", @@ -3693,7 +3693,7 @@ export const en = { dropPrompt: "Drop your files here", browseOrPaste: "use the upload button, or paste from clipboard", uploadButton: "Upload", - defaultFormats: "Images, Videos, Audio, PDFs, Documents, and 150+ formats", + defaultFormats: "Images, Videos, Audio, PDF, Files, and 150+ formats", orSeparator: "or", urlPlaceholder: "Paste file URL...", urlLoadingIndicator: "...", diff --git a/packages/shared/src/i18n/es.ts b/packages/shared/src/i18n/es.ts index 7f8a3203..21ffbe0e 100644 --- a/packages/shared/src/i18n/es.ts +++ b/packages/shared/src/i18n/es.ts @@ -3529,7 +3529,7 @@ export const es: TranslationKeys = { heading: "Acerca de", appName: "SnapOtter", appDescription: - "Una suite de procesamiento de archivos autoalojada y con privacidad como prioridad, con 200+ herramientas. Convierte, comprime, edita, transcribe, OCR y automatiza flujos de trabajo de imágenes, video, audio, documentos y datos sin enviar datos a la nube.", + "Una suite de procesamiento de archivos autoalojada y con privacidad como prioridad, con 200+ herramientas. Convierte, comprime, edita, transcribe, OCR y automatiza flujos de trabajo de imágenes, video, audio, PDF y archivos sin enviar datos a la nube.", versionLabel: "Versión:", linksHeading: "Enlaces", githubLink: "Repositorio en GitHub", @@ -3747,7 +3747,7 @@ export const es: TranslationKeys = { dropPrompt: "Arrastra tus imágenes aquí", browseOrPaste: "usa el botón de subida o pega desde el portapapeles", uploadButton: "Subir", - defaultFormats: "PNG, JPG, WebP, HEIC, RAW, PSD y más de 65 formatos", + defaultFormats: "Imágenes, video, audio, PDF, archivos y más de 150 formatos", orSeparator: "o", urlPlaceholder: "Pega la URL de la imagen...", urlLoadingIndicator: "...", diff --git a/packages/shared/src/i18n/fr.ts b/packages/shared/src/i18n/fr.ts index 367576cc..814d823d 100644 --- a/packages/shared/src/i18n/fr.ts +++ b/packages/shared/src/i18n/fr.ts @@ -3554,7 +3554,7 @@ export const fr: TranslationKeys = { heading: "À propos", appName: "SnapOtter", appDescription: - "Une suite de traitement de fichiers auto-hébergée, axée sur la confidentialité, avec 200+ outils. Convertissez, compressez, éditez, transcrivez, OCR et automatisez vos flux de travail image, vidéo, audio, document et données sans envoyer de données vers le cloud.", + "Une suite de traitement de fichiers auto-hébergée, axée sur la confidentialité, avec 200+ outils. Convertissez, compressez, éditez, transcrivez, OCR et automatisez vos flux de travail image, vidéo, audio, PDF et fichiers sans envoyer de données vers le cloud.", versionLabel: "Version :", linksHeading: "Liens", githubLink: "Dépôt GitHub", @@ -3773,7 +3773,7 @@ export const fr: TranslationKeys = { dropPrompt: "Déposez vos images ici", browseOrPaste: "utilisez le bouton d'import, ou collez depuis le presse-papiers", uploadButton: "Importer", - defaultFormats: "PNG, JPG, WebP, HEIC, RAW, PSD et plus de 65 formats", + defaultFormats: "Images, vidéos, audio, PDF, fichiers et plus de 150 formats", orSeparator: "ou", urlPlaceholder: "Collez l'URL de l'image...", urlLoadingIndicator: "...", diff --git a/packages/shared/src/i18n/hi.ts b/packages/shared/src/i18n/hi.ts index 8c5a3b5f..51f34abe 100644 --- a/packages/shared/src/i18n/hi.ts +++ b/packages/shared/src/i18n/hi.ts @@ -3338,7 +3338,7 @@ export const hi: TranslationKeys = { heading: "जानकारी", appName: "SnapOtter", appDescription: - "200+ टूल्स के साथ गोपनीयता-पहले, सेल्फ-होस्टेड फ़ाइल प्रोसेसिंग सूट। क्लाउड को डेटा भेजे बिना कन्वर्ट, कंप्रेस, एडिट, ट्रांसक्राइब, OCR और इमेज, वीडियो, ऑडियो, डॉक्यूमेंट और डेटा वर्कफ्लो ऑटोमेट करें।", + "200+ टूल्स के साथ गोपनीयता-पहले, सेल्फ-होस्टेड फ़ाइल प्रोसेसिंग सूट। क्लाउड को डेटा भेजे बिना कन्वर्ट, कंप्रेस, एडिट, ट्रांसक्राइब, OCR और इमेज, वीडियो, ऑडियो, PDF और फ़ाइल वर्कफ्लो ऑटोमेट करें।", versionLabel: "वर्शन:", linksHeading: "लिंक्स", githubLink: "GitHub रिपॉज़िटरी", @@ -3553,7 +3553,7 @@ export const hi: TranslationKeys = { dropPrompt: "अपनी इमेज यहां खींचें", browseOrPaste: "अपलोड बटन का उपयोग करें, या क्लिपबोर्ड से पेस्ट करें", uploadButton: "अपलोड", - defaultFormats: "PNG, JPG, WebP, HEIC, RAW, PSD, और 65+ फॉर्मेट", + defaultFormats: "इमेज, वीडियो, ऑडियो, PDF, फ़ाइलें, और 150+ फॉर्मेट", orSeparator: "या", urlPlaceholder: "इमेज URL पेस्ट करें...", urlLoadingIndicator: "...", diff --git a/packages/shared/src/i18n/id.ts b/packages/shared/src/i18n/id.ts index 7fb50d8f..3b0006b5 100644 --- a/packages/shared/src/i18n/id.ts +++ b/packages/shared/src/i18n/id.ts @@ -3531,7 +3531,7 @@ export const id: TranslationKeys = { heading: "Tentang", appName: "SnapOtter", appDescription: - "Suite pemrosesan file self-hosted yang mengutamakan privasi dengan 200+ alat. Konversi, kompres, edit, transkrip, OCR, dan otomasi alur kerja gambar, video, audio, dokumen, dan data tanpa mengirim data ke cloud.", + "Suite pemrosesan file self-hosted yang mengutamakan privasi dengan 200+ alat. Konversi, kompres, edit, transkrip, OCR, dan otomasi alur kerja gambar, video, audio, PDF, dan file tanpa mengirim data ke cloud.", versionLabel: "Versi:", linksHeading: "Tautan", githubLink: "Repositori GitHub", @@ -3748,7 +3748,7 @@ export const id: TranslationKeys = { dropPrompt: "Seret gambar Anda ke sini", browseOrPaste: "gunakan tombol unggah, atau tempel dari clipboard", uploadButton: "Unggah", - defaultFormats: "PNG, JPG, WebP, HEIC, RAW, PSD, dan 65+ format", + defaultFormats: "Gambar, Video, Audio, PDF, File, dan 150+ format", orSeparator: "atau", urlPlaceholder: "Tempel URL gambar...", urlLoadingIndicator: "...", diff --git a/packages/shared/src/i18n/it.ts b/packages/shared/src/i18n/it.ts index 4c164758..bea84d72 100644 --- a/packages/shared/src/i18n/it.ts +++ b/packages/shared/src/i18n/it.ts @@ -3543,7 +3543,7 @@ export const it: TranslationKeys = { heading: "Informazioni", appName: "SnapOtter", appDescription: - "Una suite di elaborazione file self-hosted e orientata alla privacy, con 200+ strumenti. Converti, comprimi, modifica, trascrivi, OCR e automatizza flussi di lavoro per immagini, video, audio, documenti e dati senza inviare dati al cloud.", + "Una suite di elaborazione file self-hosted e orientata alla privacy, con 200+ strumenti. Converti, comprimi, modifica, trascrivi, OCR e automatizza flussi di lavoro per immagini, video, audio, PDF e file senza inviare dati al cloud.", versionLabel: "Versione:", linksHeading: "Link", githubLink: "Repository GitHub", @@ -3761,7 +3761,7 @@ export const it: TranslationKeys = { dropPrompt: "Trascina le tue immagini qui", browseOrPaste: "usa il pulsante di caricamento oppure incolla dagli appunti", uploadButton: "Carica", - defaultFormats: "PNG, JPG, WebP, HEIC, RAW, PSD e oltre 65 formati", + defaultFormats: "Immagini, video, audio, PDF, file e oltre 150 formati", orSeparator: "o", urlPlaceholder: "Incolla l'URL dell'immagine...", urlLoadingIndicator: "...", diff --git a/packages/shared/src/i18n/ja.ts b/packages/shared/src/i18n/ja.ts index 8d927df3..96dae40e 100644 --- a/packages/shared/src/i18n/ja.ts +++ b/packages/shared/src/i18n/ja.ts @@ -3484,7 +3484,7 @@ export const ja: TranslationKeys = { heading: "SnapOtterについて", appName: "SnapOtter", appDescription: - "セルフホスト型、プライバシー第一のファイル処理スイート。200+のツールを搭載。変換、圧縮、編集、文字起こし、OCRなど、画像・動画・音声・ドキュメント・データのワークフローをクラウドにデータを送ることなく自動化できます。", + "セルフホスト型、プライバシー第一のファイル処理スイート。200+のツールを搭載。変換、圧縮、編集、文字起こし、OCRなど、画像・動画・音声・PDF・ファイルのワークフローをクラウドにデータを送ることなく自動化できます。", versionLabel: "バージョン:", linksHeading: "リンク", githubLink: "GitHubリポジトリ", @@ -3699,7 +3699,7 @@ export const ja: TranslationKeys = { dropPrompt: "ここに画像をドロップ", browseOrPaste: "アップロードボタンを使用するか、クリップボードから貼り付け", uploadButton: "アップロード", - defaultFormats: "PNG、JPG、WebP、HEIC、RAW、PSD、65以上のフォーマット", + defaultFormats: "画像、動画、オーディオ、PDF、ファイル、150以上のフォーマット", orSeparator: "または", urlPlaceholder: "画像URLを貼り付け...", urlLoadingIndicator: "...", diff --git a/packages/shared/src/i18n/ko.ts b/packages/shared/src/i18n/ko.ts index a75c12c0..41a6dcb5 100644 --- a/packages/shared/src/i18n/ko.ts +++ b/packages/shared/src/i18n/ko.ts @@ -3466,7 +3466,7 @@ export const ko: TranslationKeys = { heading: "정보", appName: "SnapOtter", appDescription: - "셀프 호스팅, 개인정보 우선의 파일 처리 도구 모음으로 200+개의 도구를 제공합니다. 변환, 압축, 편집, 전사, OCR 등 이미지, 동영상, 오디오, 문서, 데이터 워크플로를 클라우드에 데이터를 보내지 않고 자동화할 수 있습니다.", + "셀프 호스팅, 개인정보 우선의 파일 처리 도구 모음으로 200+개의 도구를 제공합니다. 변환, 압축, 편집, 전사, OCR 등 이미지, 동영상, 오디오, PDF, 파일 워크플로를 클라우드에 데이터를 보내지 않고 자동화할 수 있습니다.", versionLabel: "버전:", linksHeading: "링크", githubLink: "GitHub 저장소", @@ -3680,7 +3680,7 @@ export const ko: TranslationKeys = { dropPrompt: "여기에 이미지를 드롭하세요", browseOrPaste: "업로드 버튼을 사용하거나 클립보드에서 붙여넣기", uploadButton: "업로드", - defaultFormats: "PNG, JPG, WebP, HEIC, RAW, PSD 외 65가지 이상의 포맷", + defaultFormats: "이미지, 동영상, 오디오, PDF, 파일 및 150가지 이상의 포맷", orSeparator: "또는", urlPlaceholder: "이미지 URL 붙여넣기...", urlLoadingIndicator: "...", diff --git a/packages/shared/src/i18n/nl.ts b/packages/shared/src/i18n/nl.ts index 7f7eff63..c1d6a4c4 100644 --- a/packages/shared/src/i18n/nl.ts +++ b/packages/shared/src/i18n/nl.ts @@ -3540,7 +3540,7 @@ export const nl: TranslationKeys = { heading: "Over", appName: "SnapOtter", appDescription: - "Een zelf-gehoste, privacy-first bestandsverwerkingssuite met 200+ tools. Converteren, comprimeren, bewerken, transcriberen, OCR en automatiseer je beeld-, video-, audio-, document- en dataworkflows zonder data naar de cloud te sturen.", + "Een zelf-gehoste, privacy-first bestandsverwerkingssuite met 200+ tools. Converteren, comprimeren, bewerken, transcriberen, OCR en automatiseer je beeld-, video-, audio-, PDF- en bestandsworkflows zonder data naar de cloud te sturen.", versionLabel: "Versie:", linksHeading: "Koppelingen", githubLink: "GitHub-repository", @@ -3757,7 +3757,7 @@ export const nl: TranslationKeys = { dropPrompt: "Sleep je afbeeldingen hierheen", browseOrPaste: "gebruik de uploadknop of plak vanuit het klembord", uploadButton: "Uploaden", - defaultFormats: "PNG, JPG, WebP, HEIC, RAW, PSD en 65+ formaten", + defaultFormats: "Afbeeldingen, Video's, Audio, PDF, Bestanden en 150+ formaten", orSeparator: "of", urlPlaceholder: "Plak afbeeldings-URL...", urlLoadingIndicator: "...", diff --git a/packages/shared/src/i18n/pl.ts b/packages/shared/src/i18n/pl.ts index 5a6da40e..ea4bc301 100644 --- a/packages/shared/src/i18n/pl.ts +++ b/packages/shared/src/i18n/pl.ts @@ -3543,7 +3543,7 @@ export const pl: TranslationKeys = { heading: "Informacje", appName: "SnapOtter", appDescription: - "Samoobsługowy pakiet narzędzi do przetwarzania plików z priorytetem prywatności. 200+ narzędzi. Konwersja, kompresja, edycja, transkrypcja, OCR i automatyzacja procesów obrazów, wideo, audio, dokumentów i danych bez wysyłania danych do chmury.", + "Samoobsługowy pakiet narzędzi do przetwarzania plików z priorytetem prywatności. 200+ narzędzi. Konwersja, kompresja, edycja, transkrypcja, OCR i automatyzacja procesów obrazów, wideo, audio, PDF i plików bez wysyłania danych do chmury.", versionLabel: "Wersja:", linksHeading: "Odnośniki", githubLink: "Repozytorium GitHub", @@ -3762,7 +3762,7 @@ export const pl: TranslationKeys = { dropPrompt: "Przeciągnij tutaj swoje obrazy", browseOrPaste: "użyj przycisku przesyłania lub wklej ze schowka", uploadButton: "Prześlij", - defaultFormats: "PNG, JPG, WebP, HEIC, RAW, PSD i ponad 65 formatów", + defaultFormats: "Obrazy, Wideo, Audio, PDF, Pliki i ponad 150 formatów", orSeparator: "lub", urlPlaceholder: "Wklej adres URL obrazu...", urlLoadingIndicator: "...", diff --git a/packages/shared/src/i18n/pt-BR.ts b/packages/shared/src/i18n/pt-BR.ts index 5ce717af..277fde2f 100644 --- a/packages/shared/src/i18n/pt-BR.ts +++ b/packages/shared/src/i18n/pt-BR.ts @@ -3537,7 +3537,7 @@ export const ptBR: TranslationKeys = { heading: "Sobre", appName: "SnapOtter", appDescription: - "Uma suite de processamento de arquivos auto-hospedada e focada em privacidade, com 200+ ferramentas. Converta, comprima, edite, transcreva, OCR, e automatize fluxos de trabalho de imagem, vídeo, áudio, documentos e dados sem enviar dados para a nuvem.", + "Uma suite de processamento de arquivos auto-hospedada e focada em privacidade, com 200+ ferramentas. Converta, comprima, edite, transcreva, OCR, e automatize fluxos de trabalho de imagem, vídeo, áudio, PDF e arquivos sem enviar dados para a nuvem.", versionLabel: "Versão:", linksHeading: "Links", githubLink: "Repositório no GitHub", @@ -3755,7 +3755,7 @@ export const ptBR: TranslationKeys = { dropPrompt: "Arraste suas imagens aqui", browseOrPaste: "use o botão de upload ou cole da área de transferência", uploadButton: "Enviar", - defaultFormats: "PNG, JPG, WebP, HEIC, RAW, PSD e mais de 65 formatos", + defaultFormats: "Imagens, vídeos, áudio, PDF, arquivos e mais de 150 formatos", orSeparator: "ou", urlPlaceholder: "Cole a URL da imagem...", urlLoadingIndicator: "...", diff --git a/packages/shared/src/i18n/ru.ts b/packages/shared/src/i18n/ru.ts index bc4945f8..60f52395 100644 --- a/packages/shared/src/i18n/ru.ts +++ b/packages/shared/src/i18n/ru.ts @@ -3534,7 +3534,7 @@ export const ru: TranslationKeys = { heading: "О программе", appName: "SnapOtter", appDescription: - "Самостоятельно размещаемый набор инструментов для обработки файлов с приоритетом конфиденциальности. 200+ инструментов. Конвертация, сжатие, редактирование, транскрипция, OCR и автоматизация рабочих процессов с изображениями, видео, аудио, документами и данными без отправки данных в облако.", + "Самостоятельно размещаемый набор инструментов для обработки файлов с приоритетом конфиденциальности. 200+ инструментов. Конвертация, сжатие, редактирование, транскрипция, OCR и автоматизация рабочих процессов с изображениями, видео, аудио, PDF и файлами без отправки данных в облако.", versionLabel: "Версия:", linksHeading: "Ссылки", githubLink: "Репозиторий GitHub", @@ -3751,7 +3751,7 @@ export const ru: TranslationKeys = { dropPrompt: "Перетащите изображения сюда", browseOrPaste: "используйте кнопку загрузки или вставьте из буфера обмена", uploadButton: "Загрузить", - defaultFormats: "PNG, JPG, WebP, HEIC, RAW, PSD и 65+ форматов", + defaultFormats: "Изображения, Видео, Аудио, PDF, Файлы и 150+ форматов", orSeparator: "или", urlPlaceholder: "Вставьте URL изображения...", urlLoadingIndicator: "...", diff --git a/packages/shared/src/i18n/sv.ts b/packages/shared/src/i18n/sv.ts index 557478f6..c3c2db5f 100644 --- a/packages/shared/src/i18n/sv.ts +++ b/packages/shared/src/i18n/sv.ts @@ -3529,7 +3529,7 @@ export const sv: TranslationKeys = { heading: "Om", appName: "SnapOtter", appDescription: - "En självhostad, integritetsfokuserad filbehandlingssvit med 200+ verktyg. Konvertera, komprimera, redigera, transkribera, OCR, och automatisera bild-, video-, ljud-, dokument- och dataarbetsflöden utan att skicka data till molnet.", + "En självhostad, integritetsfokuserad filbehandlingssvit med 200+ verktyg. Konvertera, komprimera, redigera, transkribera, OCR, och automatisera bild-, video-, ljud-, PDF- och filarbetsflöden utan att skicka data till molnet.", versionLabel: "Version:", linksHeading: "Länkar", githubLink: "GitHub-arkiv", @@ -3745,7 +3745,7 @@ export const sv: TranslationKeys = { dropPrompt: "Släpp dina bilder här", browseOrPaste: "använd uppladdningsknappen eller klistra in från urklipp", uploadButton: "Ladda upp", - defaultFormats: "PNG, JPG, WebP, HEIC, RAW, PSD och 65+ format", + defaultFormats: "Bilder, Videor, Audio, PDF, Filer och 150+ format", orSeparator: "eller", urlPlaceholder: "Klistra in bild-URL...", urlLoadingIndicator: "...", diff --git a/packages/shared/src/i18n/th.ts b/packages/shared/src/i18n/th.ts index 35875226..fd7b502b 100644 --- a/packages/shared/src/i18n/th.ts +++ b/packages/shared/src/i18n/th.ts @@ -3491,7 +3491,7 @@ export const th: TranslationKeys = { heading: "เกี่ยวกับ", appName: "SnapOtter", appDescription: - "ชุดเครื่องมือประมวลผลไฟล์แบบโฮสต์เองที่เน้นความเป็นส่วนตัวพร้อม 200+ เครื่องมือ แปลง บีบอัด แก้ไข ถอดเสียง OCR และทำงานอัตโนมัติกับภาพ วิดีโอ เสียง เอกสาร และข้อมูลโดยไม่ต้องส่งข้อมูลไปคลาวด์", + "ชุดเครื่องมือประมวลผลไฟล์แบบโฮสต์เองที่เน้นความเป็นส่วนตัวพร้อม 200+ เครื่องมือ แปลง บีบอัด แก้ไข ถอดเสียง OCR และทำงานอัตโนมัติกับภาพ วิดีโอ เสียง PDF และไฟล์โดยไม่ต้องส่งข้อมูลไปคลาวด์", versionLabel: "เวอร์ชัน:", linksHeading: "ลิงก์", githubLink: "คลังเก็บโค้ด GitHub", @@ -3703,7 +3703,7 @@ export const th: TranslationKeys = { dropPrompt: "ลากภาพมาวางที่นี่", browseOrPaste: "ใช้ปุ่มอัปโหลดหรือวางจากคลิปบอร์ด", uploadButton: "อัปโหลด", - defaultFormats: "PNG, JPG, WebP, HEIC, RAW, PSD และรูปแบบอื่นกว่า 65 รูปแบบ", + defaultFormats: "รูปภาพ วิดีโอ เสียง PDF ไฟล์ และรูปแบบอื่นกว่า 150 รูปแบบ", orSeparator: "หรือ", urlPlaceholder: "วาง URL ภาพ...", urlLoadingIndicator: "...", diff --git a/packages/shared/src/i18n/tr.ts b/packages/shared/src/i18n/tr.ts index f7a8f6fa..a8b64c24 100644 --- a/packages/shared/src/i18n/tr.ts +++ b/packages/shared/src/i18n/tr.ts @@ -3537,7 +3537,7 @@ export const tr: TranslationKeys = { heading: "Hakkında", appName: "SnapOtter", appDescription: - "200+ araçla gizlilik odaklı, kendi sunucunuzda barındırılan bir dosya işleme paketi. Buluta veri göndermeden dönüştürme, sıkıştırma, düzenleme, transkripsiyon, OCR ve görüntü, video, ses, belge ve veri iş akışlarınızı otomatikleştirme.", + "200+ araçla gizlilik odaklı, kendi sunucunuzda barındırılan bir dosya işleme paketi. Buluta veri göndermeden dönüştürme, sıkıştırma, düzenleme, transkripsiyon, OCR ve görüntü, video, ses, PDF ve dosya iş akışlarınızı otomatikleştirme.", versionLabel: "Sürüm:", linksHeading: "Bağlantılar", githubLink: "GitHub Deposu", @@ -3755,7 +3755,7 @@ export const tr: TranslationKeys = { dropPrompt: "Görüntülerinizi buraya bırakın", browseOrPaste: "yükleme düğmesini kullanın veya panodan yapıştırın", uploadButton: "Yükle", - defaultFormats: "PNG, JPG, WebP, HEIC, RAW, PSD ve 65+ biçim", + defaultFormats: "Görseller, Videolar, Ses, PDF, Dosyalar ve 150+ biçim", orSeparator: "veya", urlPlaceholder: "Görüntü URL'si yapıştırın...", urlLoadingIndicator: "...", diff --git a/packages/shared/src/i18n/uk.ts b/packages/shared/src/i18n/uk.ts index 7523ad1e..cf4c02d6 100644 --- a/packages/shared/src/i18n/uk.ts +++ b/packages/shared/src/i18n/uk.ts @@ -3534,7 +3534,7 @@ export const uk: TranslationKeys = { heading: "Про програму", appName: "SnapOtter", appDescription: - "Самостійно розміщуваний набір інструментів для обробки файлів з пріоритетом конфіденційності, 200+ інструментів. Конвертація, стиснення, редагування, транскрипція, OCR та автоматизація робочих процесів із зображеннями, відео, аудіо, документами та даними без надсилання даних у хмару.", + "Самостійно розміщуваний набір інструментів для обробки файлів з пріоритетом конфіденційності, 200+ інструментів. Конвертація, стиснення, редагування, транскрипція, OCR та автоматизація робочих процесів із зображеннями, відео, аудіо, PDF та файлами без надсилання даних у хмару.", versionLabel: "Версія:", linksHeading: "Посилання", githubLink: "Репозиторій GitHub", @@ -3752,7 +3752,7 @@ export const uk: TranslationKeys = { dropPrompt: "Перетягніть зображення сюди", browseOrPaste: "скористайтеся кнопкою завантаження або вставте з буфера обміну", uploadButton: "Завантажити", - defaultFormats: "PNG, JPG, WebP, HEIC, RAW, PSD та 65+ форматів", + defaultFormats: "Зображення, Відео, Аудіо, PDF, Файли та 150+ форматів", orSeparator: "або", urlPlaceholder: "Вставте URL зображення...", urlLoadingIndicator: "...", diff --git a/packages/shared/src/i18n/vi.ts b/packages/shared/src/i18n/vi.ts index d3dcfe12..2a7d919b 100644 --- a/packages/shared/src/i18n/vi.ts +++ b/packages/shared/src/i18n/vi.ts @@ -3530,7 +3530,7 @@ export const vi: TranslationKeys = { heading: "Giới thiệu", appName: "SnapOtter", appDescription: - "Bộ công cụ xử lý tệp tự lưu trữ, ưu tiên quyền riêng tư với 200+ công cụ. Chuyển đổi, nén, chỉnh sửa, phiên âm, OCR và tự động hóa quy trình xử lý ảnh, video, âm thanh, tài liệu và dữ liệu mà không cần gửi dữ liệu lên đám mây.", + "Bộ công cụ xử lý tệp tự lưu trữ, ưu tiên quyền riêng tư với 200+ công cụ. Chuyển đổi, nén, chỉnh sửa, phiên âm, OCR và tự động hóa quy trình xử lý ảnh, video, âm thanh, PDF và tệp mà không cần gửi dữ liệu lên đám mây.", versionLabel: "Phiên bản:", linksHeading: "Liên kết", githubLink: "Kho mã nguồn GitHub", @@ -3746,7 +3746,7 @@ export const vi: TranslationKeys = { dropPrompt: "Kéo thả hình ảnh vào đây", browseOrPaste: "dùng nút tải lên hoặc dán từ bộ nhớ tạm", uploadButton: "Tải lên", - defaultFormats: "PNG, JPG, WebP, HEIC, RAW, PSD và hơn 65 định dạng", + defaultFormats: "Hình ảnh, Video, Audio, PDF, Tệp và hơn 150 định dạng", orSeparator: "hoặc", urlPlaceholder: "Dán URL hình ảnh...", urlLoadingIndicator: "...", diff --git a/packages/shared/src/i18n/zh-CN.ts b/packages/shared/src/i18n/zh-CN.ts index ee18ef98..a3c4071a 100644 --- a/packages/shared/src/i18n/zh-CN.ts +++ b/packages/shared/src/i18n/zh-CN.ts @@ -3276,7 +3276,7 @@ export const zhCN: TranslationKeys = { heading: "关于", appName: "SnapOtter", appDescription: - "自托管、隐私优先的文件处理套件,包含 200+ 种工具。转换、压缩、编辑、转录、OCR,自动化图片、视频、音频、文档和数据工作流,无需将数据发送到云端。", + "自托管、隐私优先的文件处理套件,包含 200+ 种工具。转换、压缩、编辑、转录、OCR,自动化图片、视频、音频、PDF 和文件工作流,无需将数据发送到云端。", versionLabel: "版本:", linksHeading: "链接", githubLink: "GitHub 仓库", @@ -3486,7 +3486,7 @@ export const zhCN: TranslationKeys = { dropPrompt: "将图片拖放到此处", browseOrPaste: "使用上传按钮,或从剪贴板粘贴", uploadButton: "上传", - defaultFormats: "PNG、JPG、WebP、HEIC、RAW、PSD 及 65+ 种格式", + defaultFormats: "图片、视频、音频、PDF、文件及 150+ 种格式", orSeparator: "或", urlPlaceholder: "粘贴图片 URL...", urlLoadingIndicator: "...", diff --git a/packages/shared/src/i18n/zh-TW.ts b/packages/shared/src/i18n/zh-TW.ts index 8e5c0656..a3d24372 100644 --- a/packages/shared/src/i18n/zh-TW.ts +++ b/packages/shared/src/i18n/zh-TW.ts @@ -3275,7 +3275,7 @@ export const zhTW: TranslationKeys = { heading: "關於", appName: "SnapOtter", appDescription: - "自架式、隱私優先的檔案處理套件,內含200+個工具。轉檔、壓縮、編輯、轉錄、OCR,自動化影像、影片、音訊、文件和資料工作流程,無需將資料傳送到雲端。", + "自架式、隱私優先的檔案處理套件,內含200+個工具。轉檔、壓縮、編輯、轉錄、OCR,自動化影像、影片、音訊、PDF 和檔案工作流程,無需將資料傳送到雲端。", versionLabel: "版本:", linksHeading: "連結", githubLink: "GitHub儲存庫", @@ -3486,7 +3486,7 @@ export const zhTW: TranslationKeys = { dropPrompt: "將影像拖放到此處", browseOrPaste: "使用上傳按鈕,或從剪貼簿貼上", uploadButton: "上傳", - defaultFormats: "PNG、JPG、WebP、HEIC、RAW、PSD及65+種格式", + defaultFormats: "圖片、影片、音訊、PDF、檔案與150+種格式", orSeparator: "或", urlPlaceholder: "貼上影像URL...", urlLoadingIndicator: "...", diff --git a/tests/unit/web/dropzone.test.tsx b/tests/unit/web/dropzone.test.tsx index f05ffe37..d4620283 100644 --- a/tests/unit/web/dropzone.test.tsx +++ b/tests/unit/web/dropzone.test.tsx @@ -151,9 +151,7 @@ describe("Dropzone", () => { it("shows supported formats hint", () => { render(); - expect( - screen.getByText("Images, Videos, Audio, PDFs, Documents, and 150+ formats"), - ).toBeDefined(); + expect(screen.getByText("Images, Videos, Audio, PDF, Files, and 150+ formats")).toBeDefined(); }); it("renders the drop zone section with aria label", () => {