2026-05-15 17:02:49 +08:00
import type { TranslationKeys } from "./en.js" ;
export const de : TranslationKeys = {
common : {
upload : "Vom Computer hochladen" ,
process : "Verarbeiten" ,
download : "Herunterladen" ,
cancel : "Abbrechen" ,
save : "Speichern" ,
delete : "Loeschen" ,
settings : "Einstellungen" ,
search : "Werkzeuge suchen..." ,
dropFiles : "Dateien hierher ziehen oder auf die Schaltflaeche klicken" ,
loading : "Wird geladen..." ,
error : "Ein Fehler ist aufgetreten" ,
confirm : "Bestaetigen" ,
close : "Schliessen" ,
back : "Zurueck" ,
next : "Weiter" ,
clear : "Leeren" ,
copy : "Kopieren" ,
copied : "Kopiert!" ,
noResults : "Keine Ergebnisse gefunden" ,
showLess : "Weniger anzeigen" ,
showMore : "{count} weitere anzeigen" ,
experimental : "Experimentell" ,
enabled : "Aktiviert" ,
disabled : "Deaktiviert" ,
rename : "Umbenennen" ,
edit : "Bearbeiten" ,
actions : "Aktionen" ,
create : "Erstellen" ,
or : "oder" ,
goHome : "Zur Startseite" ,
somethingWentWrong : "Etwas ist schiefgelaufen" ,
unexpectedError : "Ein unerwarteter Fehler ist aufgetreten." ,
retry : "Erneut versuchen" ,
privacyPolicy : "Datenschutzerklaerung" ,
2026-06-05 22:31:28 +08:00
pageNotFound : "Page not found" ,
2026-06-06 20:47:08 +08:00
pageNotFoundDescription : "The page you are looking for does not exist or has been moved." ,
},
2026-05-15 17:02:49 +08:00
categories : {
essentials : "Grundlagen" ,
adjustments : "Anpassungen" ,
2026-06-13 14:45:06 +08:00
enhance : "Enhance & AI" ,
2026-05-15 17:02:49 +08:00
watermark : "Wasserzeichen & Overlay" ,
layout : "Layout & Komposition" ,
2026-06-13 14:45:06 +08:00
utilities : "Hilfswerkzeuge" ,
optimization : "Optimierung" ,
2026-05-15 17:02:49 +08:00
format : "Format & Konvertierung" ,
2026-06-13 14:45:06 +08:00
"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" ,
2026-06-13 10:18:49 +08:00
data : "Data Files" ,
2026-06-13 14:45:06 +08:00
archives : "Archives" ,
2026-05-15 17:02:49 +08:00
},
2026-06-13 10:18:39 +08:00
modalities : {
image : "Image" ,
video : "Video" ,
audio : "Audio" ,
documentsAndFiles : "Documents & Files" ,
},
2026-05-15 17:02:49 +08:00
tools : {
resize : {
name : "Groesse aendern" ,
description : "Groesse nach Pixeln, Prozent oder Social-Media-Vorlagen aendern" ,
},
crop : {
name : "Zuschneiden" ,
description : "Freies Zuschneiden, Seitenverhaeltnis-Vorlagen, Formzuschnitt" ,
},
rotate : {
name : "Drehen & Spiegeln" ,
description : "Bilder drehen, spiegeln und begradigen" ,
},
convert : {
name : "Konvertieren" ,
description : "Zwischen Bildformaten konvertieren" ,
},
compress : {
name : "Komprimieren" ,
description : "Dateigroeße durch Qualitaet oder Zielgroesse reduzieren" ,
},
"optimize-for-web" : {
name : "Fuer Web optimieren" ,
description :
"Bilder fuer das Web optimieren mit Formatkonvertierung, Qualitaetssteuerung und Vorschau" ,
},
"strip-metadata" : {
name : "Metadaten entfernen" ,
description : "EXIF-, GPS- und Kamerainformationen entfernen" ,
},
"edit-metadata" : {
name : "Metadaten bearbeiten" ,
description : "EXIF, IPTC, XMP, GPS, Schluesselwoerter und Daten bearbeiten" ,
},
"bulk-rename" : {
name : "Massenumbenennung" ,
description : "Mehrere Dateien mit Mustern umbenennen" ,
},
"image-to-pdf" : {
name : "Bild zu PDF" ,
description : "Bilder zu einem PDF-Dokument zusammenfuegen" ,
},
"pdf-to-image" : {
name : "PDF zu Bild" ,
description : "PDF-Seiten in Bilder konvertieren" ,
},
favicon : {
name : "Favicon-Generator" ,
description : "Alle Favicon- und App-Symbolgroessen generieren" ,
},
"adjust-colors" : {
name : "Farben anpassen" ,
description : "Helligkeit, Kontrast, Belichtung, Saettigung, Temperatur, Schaerfe und Effekte" ,
},
sharpening : {
name : "Schaerfen" ,
description : "Adaptives, Unscharf-Maskieren- und Hochpass-Schaerfen mit Vorlagen" ,
},
"replace-color" : {
name : "Farbe ersetzen & invertieren" ,
description : "Bestimmte Farben ersetzen oder invertieren" ,
},
"color-blindness" : {
name : "Farbenblindheit-Simulation" ,
description : "Simulieren Sie, wie Bilder bei verschiedenen Farbsehschwaechen erscheinen" ,
},
"remove-background" : {
name : "Hintergrund entfernen" ,
description : "AI-gestuetzte Hintergrundentfernung" ,
},
upscale : {
name : "Bildskalierung" ,
description : "AI-Superaufloesung zur Bildverbesserung" ,
},
"erase-object" : {
name : "Objektentferner" ,
description : "Unerwuenschte Objekte mit AI entfernen" ,
},
ocr : {
name : "OCR / Texterkennung" ,
description : "Text aus Bildern mit AI-gestuetzter Genauigkeit extrahieren" ,
},
2026-06-13 10:19:23 +08:00
"ocr-pdf" : {
name : "PDF-OCR" ,
description : "Text aus PDF-Dokumenten mit KI-gestuetzter OCR extrahieren" ,
},
2026-05-15 17:02:49 +08:00
"blur-faces" : {
name : "Gesichter / PII weichzeichnen" ,
description : "Gesichter und sensible Daten automatisch erkennen und weichzeichnen" ,
},
"enhance-faces" : {
name : "Gesichtsverbesserung" ,
description : "Gesichter mit AI wiederherstellen und verbessern" ,
},
"smart-crop" : {
name : "Intelligenter Zuschnitt" ,
description : "Intelligenter Motiv-, Gesichts- oder Randzuschnitt" ,
},
"image-enhancement" : {
name : "Bildverbesserung" ,
description :
"Ein-Klick-Verbesserung mit intelligenter Belichtungs-, Kontrast-, Farb- und Schaerfekorrektur" ,
},
"noise-removal" : {
name : "Rauschentfernung" ,
description : "AI-gestuetzte Rausch- und Koernungsentfernung" ,
},
"red-eye-removal" : {
name : "Rote-Augen-Korrektur" ,
description : "AI-gestuetzte Rote-Augen-Erkennung und -Korrektur fuer Blitzfotos" ,
},
"restore-photo" : {
name : "Fotorestaurierung" ,
description : "Kratzer, Risse und Schaeden an alten Fotos mit AI reparieren" ,
},
"content-aware-resize" : {
name : "Inhaltsabhaengige Groessenaenderung" ,
description : "Bilder intelligent skalieren und wichtige Inhalte beibehalten" ,
},
"ai-canvas-expand" : {
name : "AI-Leinwanderweiterung" ,
description : "Leinwand mit AI-gestuetzter Fuellung erweitern" ,
},
colorize : {
name : "AI-Kolorierung" ,
description : "Schwarz-Weiss-Fotos mit AI-Deep-Learning-Modellen in Vollfarbe umwandeln" ,
},
"passport-photo" : {
name : "Passfoto" ,
description :
"Normgerechte Pass-, Visa- und Ausweisfotos mit automatischer Gesichtserkennung erstellen" ,
},
2026-06-13 10:19:23 +08:00
"transcribe-audio" : {
name : "Audio transkribieren" ,
description : "Sprache mit KI-gestuetzter Transkription in Text umwandeln" ,
},
"auto-subtitles" : {
name : "Automatische Untertitel" ,
description : "Untertiteldateien aus Video-Audiospuren generieren" ,
},
2026-05-15 17:02:49 +08:00
"transparency-fixer" : {
name : "PNG-Transparenzkorrektur" ,
description : "Unechte transparente PNGs mit einem Klick reparieren" ,
},
2026-06-13 10:19:23 +08:00
"background-replace" : {
name : "Hintergrund ersetzen" ,
description : "Bildhintergrund durch eine einfarbige Flaeche ersetzen" ,
},
"blur-background" : {
name : "Hintergrund unscharf" ,
description : "Hintergrund unscharf stellen und Motiv scharf halten" ,
},
2026-05-15 17:02:49 +08:00
"watermark-text" : {
name : "Text-Wasserzeichen" ,
description : "Text-Wasserzeichen hinzufuegen" ,
},
"watermark-image" : {
name : "Bild-Wasserzeichen" ,
description : "Logo als Wasserzeichen ueberlagern" ,
},
"text-overlay" : {
name : "Textueberlagerung" ,
description : "Formatierten Text auf Bilder legen" ,
},
compose : {
name : "Bildkomposition" ,
description : "Bilder mit Position und Deckkraft uebereinanderlegen" ,
},
"meme-generator" : {
name : "Meme-Generator" ,
description :
"Memes mit beliebten Vorlagen oder eigenen Bildern erstellen. Klassischer Impact-Stil mit anpassbaren Schriftarten, Farben und Positionen." ,
},
info : {
name : "Bildinformationen" ,
description : "Alle Metadaten und Bildeigenschaften anzeigen" ,
},
compare : {
name : "Bildvergleich" ,
description : "Zwei Bilder nebeneinander vergleichen" ,
},
"find-duplicates" : {
name : "Duplikate finden" ,
description : "Doppelte und nahezu identische Bilder erkennen" ,
},
"color-palette" : {
name : "Farbpalette" ,
description : "Dominante Farben aus dem Bild extrahieren" ,
},
"qr-generate" : {
name : "QR-Code-Generator" ,
description : "QR-Codes mit individuellen Farben, Mustern und Logos erstellen" ,
},
2026-06-06 20:47:08 +08:00
"html-to-image" : {
name : "HTML to Image" ,
description : "Capture webpages as high-quality images" ,
},
2026-05-15 17:02:49 +08:00
"barcode-read" : {
name : "Barcode-Leser" ,
description : "Bilder nach QR-Codes, Barcodes und 2D-Codes scannen" ,
},
collage : {
name : "Collage / Raster" ,
description : "Bilder in Rastercollages mit ueber 25 Vorlagen zusammenfuegen" ,
},
stitch : {
name : "Zusammenfuegen / Kombinieren" ,
description : "Bilder nebeneinander, gestapelt oder im Raster verbinden" ,
},
split : {
name : "Bildaufteilung" ,
description : "Bilder in Rasterkacheln oder nach Pixelgroesse aufteilen mit Vorschau" ,
},
border : {
name : "Rahmen & Rand" ,
description :
"Raender, Abstande, abgerundete Ecken und Schatten mit Ein-Klick-Vorlagen hinzufuegen" ,
},
beautify : {
name : "Screenshot verschoenern" ,
description :
"Verlaufshintergruende, Geraeterahmen, Schatten und Social-Media-Formate fuer Screenshots" ,
},
2026-06-13 10:19:16 +08:00
"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" ,
},
2026-05-15 17:02:49 +08:00
"svg-to-raster" : {
name : "SVG zu Raster" ,
description :
"SVG in PNG, JPEG, WebP, AVIF, TIFF, GIF oder HEIF mit individueller Skalierung und DPI konvertieren" ,
},
vectorize : {
name : "Bild zu SVG" ,
description : "Bilder in skalierbare Vektorgrafiken konvertieren" ,
},
"gif-tools" : {
name : "GIF-Werkzeuge" ,
description :
"Animierte GIFs skalieren, optimieren, Geschwindigkeit aendern, umkehren, Frames extrahieren und drehen" ,
},
"image-to-base64" : {
name : "Bild zu Base64" ,
description :
"Bilder in Base64-Zeichenketten zum Einbetten in HTML, CSS und mehr konvertieren" ,
},
2026-06-13 10:19:16 +08:00
"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" ,
},
2026-06-13 10:18:49 +08:00
"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" ,
},
2026-06-13 10:19:00 +08:00
"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" ,
},
2026-06-13 10:18:49 +08:00
"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" ,
},
2026-06-13 10:19:06 +08:00
"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)" ,
},
2026-06-13 10:18:49 +08:00
"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" ,
},
2026-06-13 10:19:11 +08:00
"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." ,
},
2026-06-13 10:18:49 +08:00
"word-to-pdf" : {
name : "Word to PDF" ,
description : "Convert Word documents to PDF" ,
},
2026-06-13 10:18:55 +08:00
"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" ,
},
2026-06-13 10:19:11 +08:00
"powerpoint-to-pdf" : {
name : "PowerPoint to PDF" ,
description : "Convert presentations to PDF" ,
},
2026-06-13 10:18:55 +08:00
"html-to-pdf" : {
name : "HTML to PDF" ,
description : "Convert an HTML file to PDF. Remote resources are disabled for privacy." ,
},
2026-06-13 10:19:11 +08:00
"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." ,
},
2026-06-13 10:18:55 +08:00
"markdown-to-pdf" : {
name : "Markdown to PDF" ,
description :
"Convert a Markdown file to a styled PDF. Remote resources are disabled for privacy." ,
},
2026-06-13 10:19:11 +08:00
"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" ,
},
2026-06-13 10:18:49 +08:00
"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" ,
},
2026-06-13 10:19:11 +08:00
"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." ,
},
2026-05-15 17:02:49 +08:00
pipeline : {
name : "Pipeline-Builder" ,
description : "Mehrere Werkzeuge zu einem Workflow verketten" ,
},
2026-06-13 10:17:13 +08:00
processing : { canceled : "Processing canceled" },
2026-06-13 10:18:39 +08:00
mediaPlayer : {
unsupported : "Your browser does not support this media format." ,
},
documentView : {
loadFailed : "Failed to load document." ,
previousPage : "Previous page" ,
nextPage : "Next page" ,
},
2026-05-15 17:02:49 +08:00
},
toolSettings : {
compress : {
compressionMode : "Komprimierungsmodus" ,
targetSize : "Zielgroesse" ,
quality : "Qualitaet" ,
smallestFile : "Kleinste Datei" ,
bestQuality : "Beste Qualitaet" ,
submit : "Komprimieren" ,
submitBatch : "Komprimieren ({count} Dateien)" ,
progressLabel : "Wird komprimiert" ,
original : "Original: {size} KB" ,
processed : "Verarbeitet: {size} KB" ,
saved : "Gespart: {percent}%" ,
},
resize : {
customSize : "Benutzerdefinierte Groesse" ,
scale : "Skalierung" ,
presets : "Vorlagen" ,
contentAware : "Inhaltsabhaengig" ,
widthPx : "Breite (px)" ,
heightPx : "Hoehe (px)" ,
fitMode : "Anpassungsmodus" ,
cropToFit : "Zuschneiden" ,
fitInside : "Einpassen" ,
stretch : "Strecken" ,
limitToOriginalSize : "Auf Originalgroesse begrenzen" ,
limitToOriginalSizeHint :
"Wenn Ihr Bild bereits kleiner als die Zielgroesse ist, bleibt es unveraendert statt hochskaliert zu werden" ,
scalePercent : "Skalierung (%)" ,
resizeToSquare : "Quadratisch skalieren" ,
protectFaces : "Gesichter schuetzen" ,
smoothing : "Glaettung" ,
edgeSensitivity : "Kantenempfindlichkeit" ,
submit : "Groesse aendern" ,
submitBatch : "Groesse aendern ({count} Dateien)" ,
progressLabel : "Groesse wird geaendert" ,
},
crop : {
aspectRatio : "Seitenverhaeltnis" ,
custom : "Benutzerdefiniert" ,
positionAndSize : "Position & Groesse" ,
ruleOfThirds : "Drittelregel" ,
leftOffsetPx : "Linker Versatz (px)" ,
topOffsetPx : "Oberer Versatz (px)" ,
submit : "Zuschneiden" ,
submitBatch : "Zuschneiden ({count} Dateien)" ,
progressLabel : "Wird zugeschnitten" ,
},
rotate : {
rotate : "Drehen" ,
angle : "Winkel" ,
straighten : "Begradigen" ,
flip : "Spiegeln" ,
horizontal : "Horizontal" ,
vertical : "Vertikal" ,
resetAllChanges : "Alle Aenderungen zuruecksetzen" ,
submit : "Anwenden" ,
submitBatch : "Anwenden ({count} Dateien)" ,
progressLabel : "Wird angewendet" ,
},
convert : {
targetFormat : "Zielformat" ,
sourceFormat : "Quellformat" ,
quality : "Qualitaet" ,
submit : "Konvertieren" ,
submitBatch : "Konvertieren ({count} Dateien)" ,
progressLabel : "Wird konvertiert" ,
},
"optimize-for-web" : {
outputFormat : "Ausgabeformat" ,
quality : "Qualitaet" ,
smallestFile : "Kleinste Datei" ,
bestQuality : "Beste Qualitaet" ,
maxDimensions : "Maximale Abmessungen" ,
maxWidth : "Maximale Breite" ,
maxHeight : "Maximale Hoehe" ,
stripMetadata : "Metadaten entfernen" ,
sizeComparison : "Groessenvergleich" ,
optimized : "Optimiert:" ,
smaller : "{percent}% kleiner" ,
larger : "{percent}% groesser" ,
submit : "Verarbeiten & Herunterladen" ,
submitBatch : "Verarbeiten & Herunterladen ({count} Dateien)" ,
progressLabel : "Wird optimiert" ,
},
"strip-metadata" : {
currentMetadata : "Aktuelle Metadaten" ,
readingMetadata : "Metadaten werden gelesen..." ,
noMetadataFound : "Keine Metadaten in diesem Bild gefunden." ,
removeAllMetadata : "Alle Metadaten entfernen" ,
selectSpecific : "Oder bestimmte Metadaten auswaehlen:" ,
stripExif : "EXIF entfernen (Kamerainformationen, Datum, Belichtung)" ,
stripGps : "GPS entfernen (Standortdaten)" ,
stripIcc : "ICC entfernen (Farbprofil)" ,
stripXmp : "XMP entfernen (erweiterte Metadaten)" ,
locationFound : "Standort gefunden" ,
locationWarning :
"Dieses Bild enthaelt Ihren genauen Standort. Erwagen Sie, GPS-Daten vor dem Teilen zu entfernen." ,
metadataSections : "{count} Metadaten-Abschnitt gefunden" ,
metadataSectionsPlural : "{count} Metadaten-Abschnitte gefunden" ,
metadataRemoved : "Metadaten entfernt: {size} KB" ,
submit : "Metadaten entfernen" ,
progressLabel : "Metadaten werden entfernt" ,
},
"edit-metadata" : {
readingMetadata : "Metadaten werden gelesen..." ,
couldNotReadMetadata : "Metadaten konnten nicht gelesen werden. Felder starten leer." ,
basicInfo : "Grundinformationen" ,
description : "Beschreibung" ,
artist : "Kuenstler" ,
copyright : "Urheberrecht" ,
software : "Software" ,
iptc : "IPTC" ,
title : "Titel" ,
headline : "Schlagzeile" ,
city : "Stadt" ,
stateProvince : "Bundesland/Provinz" ,
country : "Land" ,
dateAndTime : "Datum & Uhrzeit" ,
editDates : "Daten bearbeiten" ,
shiftAllDates : "Alle Daten verschieben" ,
dateModified : "Aenderungsdatum" ,
dateTaken : "Aufnahmedatum" ,
shiftHint :
"Alle Datumsfelder um einen Versatz verschieben (nuetzlich fuer Zeitzonenkorrekturen)" ,
direction : "Richtung" ,
forward : "+ Vorwaerts" ,
backward : "- Rueckwaerts" ,
hoursMinutes : "Stunden:Minuten" ,
locationGps : "Standort (GPS)" ,
locationDataFound : "Standortdaten gefunden" ,
noGpsData : "Keine GPS-Daten. Koordinaten unten hinzufuegen." ,
latitude : "Breitengrad" ,
longitude : "Laengengrad" ,
altitudeMeters : "Hoehe (Meter)" ,
removeAllGpsData : "Alle GPS-Daten entfernen" ,
keywords : "Schluesselwoerter" ,
addKeywordPlaceholder : "Schluesselwort eingeben und Enter druecken" ,
addToExisting : "Zu vorhandenen hinzufuegen" ,
replaceAll : "Alle ersetzen" ,
allMetadata : "Alle Metadaten" ,
templates : "Vorlagen" ,
templateNamePlaceholder : "Vorlagenname" ,
uploadPrompt : "Laden Sie ein Bild hoch, um seine Metadaten zu bearbeiten." ,
changes : "{count} Aenderungen:" ,
modified : "{count} geaendert" ,
removed : "{count} entfernt" ,
gpsCleared : "GPS geloescht" ,
gpsAdded : "GPS hinzugefuegt" ,
datesShifted : "Daten verschoben" ,
submit : "Metadaten anwenden" ,
progressLabel : "Metadaten werden geschrieben" ,
},
"bulk-rename" : {
pattern : "Muster" ,
patternHint : "Variablen: {{index}}, {{padded}}, {{original}}" ,
startIndex : "Startindex" ,
preview : "Vorschau" ,
andMore : "... und {count} weitere" ,
renaming : "Umbenennung laeuft..." ,
submit : "{count} Dateien umbenennen" ,
zipDownloaded : "ZIP erfolgreich heruntergeladen" ,
},
"image-to-pdf" : {
imageCount : "{count} Bild wird in {mode} konvertiert" ,
imageCountPlural : "{count} Bilder werden in {mode} konvertiert" ,
singlePdfMode : "ein einzelnes PDF, ein Bild pro Seite" ,
separatePdfMode : "separate PDFs, eines pro Bild" ,
combineAllImages : "Alle Bilder in ein PDF zusammenfuegen" ,
pageSize : "Seitengroesse" ,
orientation : "Ausrichtung" ,
portrait : "Hochformat" ,
landscape : "Querformat" ,
margin : "Rand" ,
targetSizeLabel : "Zieldateigroesse (optional)" ,
targetSizePlaceholder : "z. B. 2" ,
targetSizeHint : "Leer lassen fuer maximale Qualitaet" ,
targetSizeMet : "Ziel erreicht" ,
targetSizeNotMet :
"Ziel konnte nicht erreicht werden. Datei auf minimale Qualitaet komprimiert." ,
targetSizeTooSmall : "Zielgroesse muss mindestens 50KB betragen" ,
jpegQualityLabel : "Verwendete JPEG-Qualitaet" ,
noImage : "Kein Bild" ,
submitCollate : "PDF erstellen ({count} Seiten)" ,
submitSeparate : "{count} PDFs erstellen" ,
downloadPdf : "PDF herunterladen" ,
downloadZip : "ZIP herunterladen" ,
progressLabel : "PDF wird erstellt" ,
uploadingImages : "Bilder werden hochgeladen..." ,
processingPages : "{count} Seiten werden verarbeitet..." ,
},
"pdf-to-image" : {
dropPdf : "PDF hierher ziehen oder zum Auswaehlen klicken" ,
readingPdf : "PDF wird gelesen..." ,
pageCount : "{count} Seite" ,
pageCountPlural : "{count} Seiten" ,
outputFormat : "Ausgabeformat" ,
quality : "Qualitaet" ,
resolutionDpi : "Aufloesung (DPI)" ,
dpiScreen : "Bildschirm" ,
dpiStandard : "Standard" ,
dpiPrint : "Druck" ,
dpiHighQuality : "Hohe Qualitaet" ,
colorMode : "Farbmodus" ,
colorModeColor : "Farbe" ,
colorModeGrayscale : "Graustufen" ,
colorModeBw : "S/W" ,
pages : "Seiten" ,
allPages : "Alle Seiten" ,
pagesHint : "z. B. 1-3, 5, 8-10 (Dokument hat {count} Seiten)" ,
converting : "Wird konvertiert..." ,
submit : "{count} Seite konvertieren" ,
submitPlural : "{count} Seiten konvertieren" ,
downloadAllZip : "Alle herunterladen (ZIP)" ,
},
favicon : {
uploadHint :
"Laden Sie quadratische Bilder hoch (empfohlen 512x512 oder groesser), um alle Favicon- und App-Symbolgroessen zu generieren." ,
multipleHint : "Jedes der {count} Bilder erhaelt einen eigenen Ordner im ZIP." ,
generatedSizes : "Generierte Groessen (pro Bild)" ,
plusManifest : "+ manifest.json + HTML-Snippet" ,
submit : "Favicons generieren ({count} Bild)" ,
submitPlural : "Favicons generieren ({count} Bilder)" ,
downloadZip : "Favicons-ZIP herunterladen" ,
progressLabel : "Favicons werden generiert" ,
},
"adjust-colors" : {
light : "Licht" ,
brightness : "Helligkeit" ,
contrast : "Kontrast" ,
exposure : "Belichtung" ,
color : "Farbe" ,
saturation : "Saettigung" ,
temperature : "Temperatur" ,
temperatureHint : "kuehl / warm" ,
tint : "Tonung" ,
tintHint : "gruen / magenta" ,
hue : "Farbton" ,
detail : "Detail" ,
sharpness : "Schaerfe" ,
effects : "Effekte" ,
none : "Keine" ,
grayscale : "Graustufen" ,
sepia : "Sepia" ,
invert : "Invertieren" ,
colorChannels : "Farbkanaele" ,
channelModified : "geaendert" ,
red : "Rot" ,
green : "Gruen" ,
blue : "Blau" ,
resetAll : "Alles zuruecksetzen" ,
submit : "Anwenden" ,
submitBatch : "Anwenden ({count} Dateien)" ,
progressLabel : "Farben werden angepasst" ,
},
sharpening : {
method : "Methode" ,
adaptive : "Adaptiv" ,
unsharpMask : "Unscharf maskieren" ,
highPass : "Hochpass" ,
presets : "Vorlagen" ,
textureAmount : "Texturmenge" ,
amount : "Staerke" ,
strength : "Intensitaet" ,
noiseReduction : "Rauschreduzierung" ,
off : "Aus" ,
lightDenoise : "Leicht" ,
mediumDenoise : "Mittel" ,
strongDenoise : "Stark" ,
advancedControls : "Erweiterte Steuerung" ,
radius : "Radius" ,
flatProtection : "Flaechenschutz" ,
detailThreshold : "Detailschwelle" ,
haloLimitLight : "Halogrenze (Hell)" ,
haloLimitDark : "Halogrenze (Dunkel)" ,
threshold : "Schwellenwert" ,
kernelSize : "Kerngroesse" ,
submit : "Schaerfen" ,
submitBatch : "Schaerfen ({count} Dateien)" ,
progressLabel : "Wird geschaerft" ,
},
"replace-color" : {
sourceColor : "Quellfarbe (zu ersetzen)" ,
targetColor : "Zielfarbe (Ersatz)" ,
makeTransparent : "Stattdessen transparent machen" ,
tolerance : "Toleranz" ,
exactMatch : "Exakte Uebereinstimmung" ,
wideRange : "Breiter Bereich" ,
submit : "Farbe ersetzen" ,
submitBatch : "Farbe ersetzen ({count} Dateien)" ,
progressLabel : "Farbe wird ersetzt" ,
},
"color-blindness" : {
simulationType : "Simulationstyp" ,
redGreen : "Rot-Gruen" ,
blueYellow : "Blau-Gelb" ,
monochromatic : "Monochromatisch" ,
submit : "Simulieren" ,
submitBatch : "Simulieren ({count} Dateien)" ,
progressLabel : "Farbenblindheit wird simuliert" ,
},
"remove-background" : {
subject : "Motiv" ,
people : "Personen" ,
products : "Produkte" ,
general : "Allgemein" ,
passportIdPhoto : "Pass- / Ausweisfoto" ,
quality : "Qualitaet" ,
fast : "Schnell" ,
hd : "HD" ,
max : "Max" ,
ultra : "Ultra" ,
background : "Hintergrund" ,
transparent : "Transparent" ,
bgColor : "Farbe" ,
gradient : "Verlauf" ,
image : "Bild" ,
gradientDirection : "Richtung" ,
chooseBackgroundImage : "Hintergrundbild auswaehlen" ,
effectsSection : "Effekte" ,
effectsActive : "aktiv" ,
blurBackground : "Hintergrund weichzeichnen" ,
intensity : "Intensitaet" ,
addShadow : "Schatten hinzufuegen" ,
opacity : "Deckkraft" ,
2026-06-05 23:14:57 +08:00
outputFormat : "Output Format" ,
edgeSmoothing : "Edge Smoothing" ,
edgeSmoothingOff : "Off" ,
edgeSmoothingLight : "Light" ,
edgeSmoothingMedium : "Medium" ,
edgeSmoothingStrong : "Strong" ,
colorDecontamination : "Color Decontamination" ,
2026-05-15 17:02:49 +08:00
rendering : "Wird gerendert..." ,
submit : "Hintergrund entfernen" ,
submitBatch : "Hintergrund entfernen ({count} Dateien)" ,
progressLabel : "Hintergrund wird entfernt" ,
},
upscale : {
scaleFactor : "Skalierungsfaktor" ,
quality : "Qualitaet" ,
enhanceFaces : "Gesichter verbessern" ,
noiseReduction : "Rauschreduzierung" ,
noiseReductionHint :
"Glaettet Koernung und Rauschen. Hoehere Werte entfernen mehr Rauschen, koennen aber Details aufweichen." ,
outputFormat : "Ausgabeformat" ,
submit : "Hochskalieren {scale}x" ,
submitBatch : "Hochskalieren {scale}x ({count} Dateien)" ,
progressLabel : "Bild wird hochskaliert" ,
progressLabelBatch : "{count} Bilder werden hochskaliert" ,
},
"erase-object" : {
brushSize : "Pinselgroesse" ,
fine : "Fein" ,
wide : "Breit" ,
undo : "Rueckgaengig" ,
clear : "Leeren" ,
outputFormat : "Ausgabeformat" ,
quality : "Qualitaet" ,
paintHint :
"Malen Sie ueber die Objekte, die Sie entfernen moechten. Strg+Z zum Rueckgaengigmachen." ,
submit : "Objekt entfernen" ,
submitBatch : "Alle entfernen ({count})" ,
progressLabel : "Objekt wird entfernt" ,
},
ocr : {
quality : "Qualitaet" ,
enhanceBeforeScanning : "Vor dem Scannen verbessern" ,
enhanceHint :
"Entzerrt, verbessert Kontrast, entfernt Rauschen und skaliert das Bild automatisch vor dem Scannen fuer bessere Genauigkeit." ,
language : "Sprache" ,
autoDetect : "Automatisch erkennen" ,
extractedText : "Extrahierter Text" ,
noTextDetected : "Kein Text in diesem Bild erkannt" ,
characters : "{count} Zeichen" ,
submit : "Text extrahieren" ,
submitBatch : "Text extrahieren ({count} Dateien)" ,
progressLabel : "Text wird extrahiert" ,
},
2026-06-13 10:19:23 +08:00
"ocr-pdf" : {
quality : "Qualitaet" ,
language : "Sprache" ,
autoDetect : "Automatisch erkennen" ,
pages : "Seiten" ,
pagesPlaceholder : "all, 1-3, 5" ,
pagesHint : "Seitennummern oder Bereiche eingeben (z.B. 1-3, 5, 8-10). Max. 50 Seiten." ,
submit : "Text extrahieren" ,
submitBatch : "Text extrahieren ({count} Dateien)" ,
progressLabel : "Text wird aus PDF extrahiert" ,
},
2026-05-15 17:02:49 +08:00
"blur-faces" : {
blurRadius : "Weichzeichnerradius" ,
blurLight : "Leicht" ,
blurHeavy : "Stark" ,
detectionSensitivity : "Erkennungsempfindlichkeit" ,
moreFaces : "Mehr Gesichter" ,
fewerFaces : "Weniger Gesichter" ,
submit : "Gesichter weichzeichnen" ,
progressLabel : "Gesichter werden weichgezeichnet" ,
},
"enhance-faces" : {
quality : "Qualitaet" ,
enhancementStrength : "Verbesserungsstaerke" ,
onlyCenterFace : "Nur zentrales Gesicht" ,
detectionSensitivity : "Erkennungsempfindlichkeit" ,
submit : "Gesichter verbessern" ,
submitBatch : "Gesichter verbessern ({count} Dateien)" ,
progressLabel : "Gesichter werden verbessert" ,
},
"smart-crop" : {
subjectFocus : "Motivfokus" ,
faceFocus : "Gesichtsfokus" ,
autoTrim : "Automatisch beschneiden" ,
customSize : "Benutzerdefinierte Groesse" ,
socialPresets : "Social-Media-Vorlagen" ,
detectionStrategy : "Erkennungsstrategie" ,
detectionStrategyHint :
"Aufmerksamkeit findet den visuell auffaelligsten Bereich. Entropie findet den Bereich mit den meisten Details." ,
attention : "Aufmerksamkeit" ,
entropy : "Entropie" ,
padding : "Abstand" ,
paddingHint : "Zusaetzlicher Freiraum um den Fokusbereich" ,
outputQuality : "Ausgabequalitaet" ,
outputQualityHint : "Fuer JPEG- und WebP-Ausgaben. PNG ist immer verlustfrei." ,
subjectDescription :
"Erkennt den interessantesten Bereich per Salienzanalyse und schneidet auf die Zielgroesse zu." ,
framing : "Bildausschnitt" ,
facePadding : "Gesichtsabstand" ,
facePaddingHint : "Zusaetzlicher Raum um erkannte Gesichter" ,
fewerFalsePositives : "Weniger Fehlerkennungen" ,
faceDescription :
"Verwendet AI-Gesichtserkennung, um Gesichter korrekt im Bild zu halten. Bei fehlender Erkennung wird auf Motivfokus zurueckgegriffen." ,
trimTolerance : "Toleranz" ,
trimDescription :
"Wie stark sich ein Randpixel von der Kantenfarbe unterscheiden darf und trotzdem beschnitten wird. Hoeher = aggressiver." ,
padToSquare : "Auf Quadrat auffuellen" ,
targetSizePx : "Zielgroesse (px)" ,
padColor : "Auffuellfarbe" ,
trimHint :
'Entfernt einfarbige Raender um Ihr Motiv. Aktivieren Sie "Auf Quadrat auffuellen" fuer E-Commerce-Bilder.' ,
submitSubject : "Intelligenter Zuschnitt" ,
submitFace : "Gesichtszuschnitt" ,
submitTrim : "Raender beschneiden" ,
},
imageEnhancement : {
enhancementMode : "Verbesserungsmodus" ,
auto : "Automatisch" ,
portrait : "Portraet" ,
landscape : "Landschaft" ,
lowLight : "Schwaches Licht" ,
food : "Lebensmittel" ,
document : "Dokument" ,
intensity : "Intensitaet" ,
deepEnhance : "Tiefenverbesserung (AI)" ,
deepEnhanceDescription : "Entfernt Rauschen und Artefakte mit AI" ,
deepEnhanceRequires : "Erfordert das Bundle Hochskalierung & Verbesserung" ,
analyzingImage : "Bild wird analysiert..." ,
detectedIssues : "Erkannte Probleme" ,
imageLooksGood : "Das Bild sieht gut aus. Feinabstimmung mit dem Intensitaetsregler." ,
issueUnderexposed : "Unterbelichtet" ,
issueOverexposed : "Ueberbelichtet" ,
issueLowContrast : "Flacher Kontrast" ,
issueColorCast : "Farbstich" ,
issueDesaturated : "Entsaettigt" ,
issueSoftFocus : "Unscharfer Fokus" ,
issueNoisy : "Verrauscht" ,
submit : "Verbessern" ,
submitDeep : "Tiefenverbesserung" ,
submitBatch : "Verbessern ({count} Dateien)" ,
submitDeepBatch : "Tiefenverbesserung ({count} Dateien)" ,
progressLabel : "Bild wird verbessert" ,
progressLabelBatch : "{count} Bilder werden verbessert" ,
},
"noise-removal" : {
denoisingTier : "Entrauschungsstufe" ,
quick : "Schnell" ,
balanced : "Ausgewogen" ,
quality : "Qualitaet" ,
maximum : "Maximum" ,
quickDesc : "Schnell, ressourcenschonend" ,
balancedDesc : "Gute Qualitaet, moderate Geschwindigkeit" ,
qualityDesc : "AI-gestuetzt, langsam" ,
maximumDesc : "Bestes AI-Modell, am langsamsten" ,
strength : "Staerke" ,
subtle : "Dezent" ,
aggressive : "Aggressiv" ,
detailPreservation : "Detailerhaltung" ,
smooth : "Weich" ,
sharp : "Scharf" ,
colorNoise : "Farbrauschen" ,
heavy : "Stark" ,
outputFormat : "Ausgabeformat" ,
gifAiWarning :
"AI-Entrauschung bei GIF-Dateien verarbeitet nur das erste Bild. Fuer animierte GIFs verwenden Sie die Stufe Schnell oder Ausgewogen." ,
submit : "Rauschen entfernen" ,
submitBatch : "Rauschen entfernen ({count} Dateien)" ,
progressLabel : "Rauschen wird entfernt" ,
progressLabelBatch : "Rauschen wird aus {count} Bildern entfernt" ,
},
"red-eye-removal" : {
sensitivity : "Empfindlichkeit" ,
strict : "Streng" ,
aggressive : "Aggressiv" ,
correctionStrength : "Korrekturstaerke" ,
subtle : "Dezent" ,
dark : "Dunkel" ,
outputFormat : "Ausgabeformat" ,
quality : "Qualitaet" ,
submit : "Rote Augen korrigieren" ,
submitBatch : "Rote Augen korrigieren ({count} Dateien)" ,
progressLabel : "Rote Augen werden korrigiert" ,
progressLabelBatch : "Rote Augen werden in {count} Bildern korrigiert" ,
},
"restore-photo" : {
scratchRemoval : "Kratzerentfernung" ,
scratchRemovalDesc : "Kratzer, Risse und Flecken erkennen und reparieren" ,
faceEnhancement : "Gesichtsverbesserung" ,
faceEnhancementDesc : "Beschaedigte Gesichter mit CodeFormer-AI wiederherstellen" ,
faceFidelity : "Gesichtstreue" ,
enhanced : "Verbessert" ,
faithful : "Originalgetreu" ,
noiseReduction : "Rauschreduzierung" ,
noiseReductionDesc : "Koernung und Rauschen aus alten Fotos entfernen" ,
denoiseStrength : "Entrauschungsstaerke" ,
autoColorize : "Automatisch kolorieren" ,
autoColorizeDesc : "Farbe zu S/W-Fotos mit DDColor-AI hinzufuegen" ,
colorizeStrength : "Kolorierungsstaerke" ,
vivid : "Lebhaft" ,
submit : "Foto restaurieren" ,
submitBatch : "Fotos restaurieren ({count})" ,
progressLabel : "Foto wird restauriert" ,
progressLabelBatch : "{count} Fotos werden restauriert" ,
},
"content-aware-resize" : {
widthPx : "Breite (px)" ,
heightPx : "Hoehe (px)" ,
resizeToSquare : "Quadratisch skalieren" ,
protectFaces : "Gesichter schuetzen" ,
protectFacesHint :
"Gesichtsbereiche per Gesichtserkennung erkennen und vor Nahtentfernung schuetzen" ,
smoothing : "Glaettung" ,
edgeSensitivity : "Kantenempfindlichkeit" ,
submit : "Groesse aendern" ,
submitBatch : "Groesse aendern ({count} Dateien)" ,
progressLabel : "Inhaltsabhaengige Groessenaenderung" ,
},
"ai-canvas-expand" : {
quality : "Qualitaet" ,
fast : "Schnell" ,
balanced : "Ausgewogen" ,
highQuality : "Hohe Qualitaet" ,
fastDesc : "Schnelle Vorschau, weniger AI-Durchlaeufe" ,
balancedDesc : "Gute Qualitaet, moderate Geschwindigkeit" ,
highQualityDesc : "Beste Ergebnisse, langsamer" ,
extendToAspectRatio : "Auf Seitenverhaeltnis erweitern" ,
extendByPixels : "Erweitern um (Pixel)" ,
top : "Oben" ,
right : "Rechts" ,
bottom : "Unten" ,
left : "Links" ,
newSize : "Neue Groesse: {width} x {height}" ,
submit : "Leinwand erweitern" ,
submitBatch : "Erweitern ({count} Dateien)" ,
progressLabel : "Leinwand wird erweitert" ,
},
colorize : {
aiModel : "AI-Modell" ,
fast : "Schnell" ,
fastDesc : "Schnelle Ergebnisse" ,
balanced : "Ausgewogen" ,
balancedDesc : "Bestmoegliche Qualitaet" ,
best : "Beste" ,
bestDesc : "Hoechste Qualitaet" ,
colorIntensity : "Farbintensitaet" ,
grayscaleLabel : "Graustufen" ,
subtleLabel : "Dezent" ,
naturalLabel : "Natuerlich" ,
vividLabel : "Lebhaft" ,
intensityHint : "Niedrigere Werte erzeugen gedaempftere Farben im Vintage-Stil." ,
strength : "Kolorierungsstaerke" ,
submit : "Kolorieren" ,
submitBatch : "Kolorieren ({count} Dateien)" ,
progressLabel : "Wird koloriert" ,
progressLabelBatch : "{count} Bilder werden koloriert" ,
},
"passport-photo" : {
country : "Land" ,
searchCountries : "Laender suchen..." ,
noCountriesFound : "Keine Laender gefunden" ,
customDimensions : "Benutzerdefinierte Masse" ,
documentType : "Dokumenttyp" ,
dimensionsMm : "Abmessungen (mm)" ,
dpi : "DPI" ,
pixelsPerInch : "Pixel pro Zoll" ,
backgroundColor : "Hintergrundfarbe" ,
maxFileSize : "Maximale Dateigroesse" ,
noLimit : "Kein Limit" ,
customKb : "Benutzerdefiniert (KB)..." ,
uploadPortrait : "Portraetfoto hochladen" ,
uploadHint :
"Laden Sie ein Bild im linken Bereich hoch, um eine Vorschau Ihres Passfotos zu sehen" ,
analyzingPhoto : "Foto wird analysiert" ,
detectingLandmarks : "Gesichtsmerkmale werden erkannt und Hintergrund wird entfernt..." ,
generatePassportPhoto : "Passfoto generieren" ,
generating : "Wird generiert..." ,
downloadPhoto : "Foto herunterladen" ,
faceCentered : "Gesicht zentriert" ,
headLevel : "Kopf gerade" ,
lookingStraight : "Blickrichtung frontal" ,
faceSize : "Gesichtsgroesse" ,
whatYouSee : "Was Sie sehen, wird heruntergeladen" ,
dragToAdjust : "Ziehen zum Anpassen" ,
scrollToZoom : "Scrollen zum Zoomen" ,
photoGenerated : "Foto generiert. Laden Sie es im linken Bereich herunter." ,
},
2026-06-13 10:19:23 +08:00
"transcribe-audio" : {
language : "Sprache" ,
autoDetect : "Automatisch erkennen" ,
outputFormat : "Ausgabeformat" ,
plainText : "Klartext" ,
submit : "Transkribieren" ,
submitBatch : "Transkribieren ({count} Dateien)" ,
progressLabel : "Audio wird transkribiert" ,
},
"auto-subtitles" : {
language : "Sprache" ,
autoDetect : "Automatisch erkennen" ,
format : "Untertitelformat" ,
submit : "Untertitel generieren" ,
submitBatch : "Untertitel generieren ({count} Dateien)" ,
progressLabel : "Untertitel werden generiert" ,
},
2026-05-15 17:02:49 +08:00
"transparency-fixer" : {
description :
"Laden Sie ein PNG mit unechtem transparentem Hintergrund hoch. Wir reparieren es mit einem Klick." ,
removeWatermark : "Wasserzeichen entfernen" ,
removeWatermarkHelp : "Halbtransparente Wasserzeichen erkennen und entfernen" ,
requiresEraser : "Erfordert das Objektentferner-Bundle" ,
advanced : "Erweitert" ,
defringe : "Randbereinigung" ,
outputFormat : "Ausgabeformat" ,
submit : "Transparenz reparieren" ,
submitBatch : "Transparenz reparieren ({count} Dateien)" ,
progressLabel : "Transparenz wird repariert" ,
},
2026-06-13 10:19:23 +08:00
"background-replace" : {
color : "Hintergrundfarbe" ,
submit : "Hintergrund ersetzen" ,
submitBatch : "Hintergrund ersetzen ({count} Dateien)" ,
progressLabel : "Hintergrund wird ersetzt" ,
},
"blur-background" : {
intensity : "Unschaerfe-Intensitaet" ,
submit : "Hintergrund unscharf stellen" ,
submitBatch : "Hintergrund unscharf stellen ({count} Dateien)" ,
progressLabel : "Hintergrund wird unscharf gestellt" ,
},
2026-05-15 17:02:49 +08:00
"watermark-text" : {
watermarkText : "Wasserzeichen-Text" ,
fontSize : "Schriftgroesse" ,
color : "Farbe" ,
opacity : "Deckkraft" ,
position : "Position" ,
rotation : "Drehung" ,
center : "Mitte" ,
topLeft : "Oben links" ,
topRight : "Oben rechts" ,
bottomLeft : "Unten links" ,
bottomRight : "Unten rechts" ,
tiled : "Gekachelt" ,
submit : "Wasserzeichen hinzufuegen" ,
submitBatch : "Wasserzeichen hinzufuegen ({count} Dateien)" ,
progressLabel : "Wasserzeichen wird hinzugefuegt" ,
},
"watermark-image" : {
uploadWatermark : "Wasserzeichen-Bild hochladen" ,
position : "Position" ,
opacity : "Deckkraft" ,
scale : "Skalierung" ,
submit : "Wasserzeichen anwenden" ,
submitBatch : "Wasserzeichen anwenden ({count} Dateien)" ,
},
"text-overlay" : {
text : "Text" ,
fontSize : "Schriftgroesse" ,
color : "Farbe" ,
position : "Position" ,
top : "Oben" ,
center : "Mitte" ,
bottom : "Unten" ,
backgroundBox : "Hintergrundfeld" ,
backgroundColor : "Hintergrundfarbe" ,
shadow : "Schatten" ,
submit : "Text hinzufuegen" ,
submitBatch : "Text hinzufuegen ({count} Dateien)" ,
progressLabel : "Textueberlagerung wird hinzugefuegt" ,
2026-06-07 18:27:09 +08:00
download : "Download" ,
defaultText : "Your Text Here" ,
2026-05-15 17:02:49 +08:00
},
compose : {
uploadOverlay : "Overlay-Bild hochladen" ,
xPosition : "X-Position" ,
yPosition : "Y-Position" ,
opacity : "Deckkraft" ,
blendMode : "Mischmodus" ,
submit : "Zusammenfuegen" ,
},
"meme-generator" : {
selectTemplate :
"Waehlen Sie eine Vorlage aus der Galerie oder laden Sie Ihr eigenes Bild hoch." ,
chooseLayout : "Waehlen Sie ein Textlayout fuer Ihr Bild." ,
textContent : "Textinhalt" ,
textStyle : "Textstil" ,
font : "Schriftart" ,
fontSize : "Schriftgroesse" ,
textColor : "Textfarbe" ,
strokeColor : "Konturfarbe" ,
allCaps : "GROSSBUCHSTABEN" ,
generate : "Meme erstellen" ,
generating : "Wird erstellt..." ,
downloadMeme : "Meme herunterladen" ,
backToGallery : "Zurueck zur Galerie" ,
},
info : {
loadingInfo : "Informationen werden geladen..." ,
filename : "Dateiname" ,
fileSize : "Dateigroesse" ,
dimensions : "Abmessungen" ,
format : "Format" ,
channels : "Kanaele" ,
colorSpace : "Farbraum" ,
density : "Dichte" ,
bitDepth : "Bittiefe" ,
progressive : "Progressiv" ,
pages : "Seiten" ,
hasAlpha : "Hat Alpha" ,
hasProfile : "Hat Profil" ,
hasExif : "Hat EXIF" ,
hasIcc : "Hat ICC" ,
hasXmp : "Hat XMP" ,
2026-06-07 18:27:09 +08:00
readInfo : "Read Info" ,
reading : "Reading..." ,
channelStats : "Channel Stats" ,
yes : "Yes" ,
no : "No" ,
na : "N/A" ,
failedToRead : "Failed to read info" ,
2026-05-15 17:02:49 +08:00
},
compare : {
uploadSecondImage : "Zweites Bild hochladen" ,
similarity : "Aehnlichkeit: {percent}%" ,
submit : "Vergleichen" ,
downloadDiff : "Differenz herunterladen" ,
},
"find-duplicates" : {
preset : "Vorlage" ,
exact : "Exakt" ,
similar : "Aehnlich" ,
loose : "Locker" ,
exactDesc : "Pixelidentische Kopien, gleiches Bild in unterschiedlichen Formaten." ,
similarDesc : "Skalierte, neu komprimierte oder leicht bearbeitete Kopien." ,
looseDesc : "Visuell verwandte Bilder, leichte Zuschnitte, unterschiedliche Belichtungen." ,
threshold : "Schwellenwert" ,
submit : "Nach Duplikaten suchen" ,
scanning : "Wird gescannt..." ,
},
"color-palette" : {
submit : "Palette extrahieren" ,
extracting : "Wird extrahiert..." ,
dominantColors : "Dominante Farben" ,
clickToCopy : "Zum Kopieren klicken" ,
},
"qr-generate" : {
contentType : "Inhaltstyp" ,
url : "URL" ,
text : "Text" ,
wifi : "WiFi" ,
vcard : "vCard" ,
email : "E-Mail" ,
phone : "Telefon" ,
sms : "SMS" ,
styling : "Gestaltung" ,
dotStyle : "Punktstil" ,
cornerSquareStyle : "Eckquadrat-Stil" ,
cornerDotStyle : "Eckpunkt-Stil" ,
foregroundColor : "Vordergrundfarbe" ,
bgColor : "Hintergrundfarbe" ,
logo : "Logo" ,
downloadFormat : "Downloadformat" ,
submit : "QR-Code generieren" ,
download : "QR-Code herunterladen" ,
},
2026-06-06 20:47:08 +08:00
"html-to-image" : {
2026-06-06 21:31:05 +08:00
modeUrl : "URL" ,
modeHtml : "HTML File" ,
htmlFile : "HTML File" ,
2026-06-06 20:47:08 +08:00
url : "URL" ,
2026-06-06 21:29:06 +08:00
urlPlaceholder : "https://snapotter.com" ,
2026-06-06 20:47:08 +08:00
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" ,
},
},
2026-05-15 17:02:49 +08:00
"barcode-read" : {
submit : "Barcodes scannen" ,
submitBatch : "Scannen ({count} Dateien)" ,
scanning : "Wird gescannt..." ,
noBarcodesFound : "Keine Barcodes gefunden" ,
barcodesFound : "{count} Barcode gefunden" ,
barcodesFoundPlural : "{count} Barcodes gefunden" ,
},
collage : {
template : "Vorlage" ,
aspectRatio : "Seitenverhaeltnis" ,
gap : "Abstand" ,
cornerRadius : "Eckenradius" ,
backgroundColor : "Hintergrundfarbe" ,
outputFormat : "Ausgabeformat" ,
quality : "Qualitaet" ,
submit : "Collage erstellen" ,
downloadCollage : "Collage herunterladen" ,
},
stitch : {
direction : "Richtung" ,
horizontal : "Horizontal" ,
vertical : "Vertikal" ,
grid : "Raster" ,
gridColumns : "Rasterspalten" ,
resizeMode : "Skalierungsmodus" ,
fit : "Einpassen" ,
original : "Original" ,
stretchMode : "Strecken" ,
cropMode : "Zuschneiden" ,
alignment : "Ausrichtung" ,
start : "Anfang" ,
center : "Mitte" ,
end : "Ende" ,
gap : "Abstand" ,
border : "Rand" ,
cornerRadius : "Eckenradius" ,
backgroundColor : "Hintergrundfarbe" ,
outputFormat : "Ausgabeformat" ,
quality : "Qualitaet" ,
submit : "Bilder zusammenfuegen" ,
},
split : {
modeGrid : "Raster" ,
modeTileSize : "Kachelgroesse" ,
presets : "Vorlagen" ,
columns : "Spalten" ,
rows : "Zeilen" ,
tileWidth : "Kachelbreite" ,
tileHeight : "Kachelhoehe" ,
outputFormat : "Ausgabeformat" ,
quality : "Qualitaet" ,
submit : "Bild aufteilen" ,
downloadAll : "Alle herunterladen (ZIP)" ,
},
border : {
presets : "Vorlagen" ,
borderWidth : "Randbreite" ,
borderColor : "Randfarbe" ,
padding : "Abstand" ,
paddingColor : "Abstandsfarbe" ,
cornerRadius : "Eckenradius" ,
shadow : "Schatten" ,
shadowBlur : "Schattenunschaerfe" ,
shadowOffsetX : "Schattenversatz X" ,
shadowOffsetY : "Schattenversatz Y" ,
shadowColor : "Schattenfarbe" ,
shadowOpacity : "Schattendeckkraft" ,
submit : "Rand hinzufuegen" ,
submitBatch : "Rand hinzufuegen ({count} Dateien)" ,
progressLabel : "Rand wird hinzugefuegt" ,
},
beautify : {
preset : "Vorlage" ,
backgroundType : "Hintergrundtyp" ,
solidColor : "Volltonfarbe" ,
linearGradient : "Linearer Verlauf" ,
radialGradient : "Radialer Verlauf" ,
customImage : "Eigenes Bild" ,
gradientAngle : "Verlaufswinkel" ,
padding : "Abstand" ,
borderRadius : "Randradius" ,
shadowPreset : "Schattenvorlage" ,
deviceFrame : "Geraeterahmen" ,
submit : "Verschoenern" ,
submitBatch : "Verschoenern ({count} Dateien)" ,
progressLabel : "Screenshot wird verschoenert" ,
},
2026-06-13 10:19:16 +08:00
"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" ,
},
2026-05-15 17:02:49 +08:00
"svg-to-raster" : {
outputFormat : "Ausgabeformat" ,
sizing : "Groesse" ,
scaleMode : "Skalierung" ,
customMode : "Benutzerdefiniert" ,
scalePresets : "Skalierungsvorlagen" ,
dpiPresets : "DPI-Vorlagen" ,
customWidth : "Breite (px)" ,
customHeight : "Hoehe (px)" ,
background : "Hintergrund" ,
bgTransparent : "Transparent" ,
bgColor : "Farbe" ,
quality : "Qualitaet" ,
submit : "SVG konvertieren" ,
submitBatch : "Konvertieren ({count} Dateien)" ,
progressLabel : "SVG wird konvertiert" ,
},
vectorize : {
preset : "Vorlage" ,
logo : "Logo" ,
illustration : "Illustration" ,
photo : "Foto" ,
sketch : "Skizze" ,
customPreset : "Benutzerdefiniert" ,
colorMode : "Farbmodus" ,
bw : "S/W" ,
colorModeColor : "Farbe" ,
threshold : "Schwellenwert" ,
colorPrecision : "Farbpraezision" ,
layerDifference : "Ebenenunterschied" ,
filterSpeckle : "Flecken filtern" ,
pathMode : "Pfadmodus" ,
cornerThreshold : "Eckenschwelle" ,
invertColors : "Farben invertieren" ,
submit : "Vektorisieren" ,
submitBatch : "Vektorisieren ({count} Dateien)" ,
progressLabel : "Wird vektorisiert" ,
},
"gif-tools" : {
mode : "Modus" ,
resize : "Groesse aendern" ,
optimize : "Optimieren" ,
speed : "Geschwindigkeit" ,
reverse : "Umkehren" ,
extract : "Extrahieren" ,
rotateMode : "Drehen" ,
pixel : "Pixel" ,
percentage : "Prozent" ,
colors : "Farben" ,
dither : "Dithering" ,
effort : "Aufwand" ,
speedFactor : "Geschwindigkeitsfaktor" ,
loopControl : "Schleifensteuerung" ,
infinite : "Endlos" ,
once : "Einmal" ,
customLoop : "Benutzerdefiniert" ,
loopCount : "Schleifenanzahl" ,
extractSingle : "Einzeln" ,
extractRange : "Bereich" ,
extractAll : "Alle" ,
frameNumber : "Bildnummer" ,
frameStart : "Startbild" ,
frameEnd : "Endbild" ,
extractFormat : "Format" ,
submit : "GIF verarbeiten" ,
submitBatch : "Verarbeiten ({count} Dateien)" ,
progressLabel : "GIF wird verarbeitet" ,
},
"image-to-base64" : {
outputFormat : "Ausgabeformat" ,
keepOriginal : "Original beibehalten" ,
quality : "Qualitaet" ,
maxWidth : "Maximale Breite" ,
maxHeight : "Maximale Hoehe" ,
submit : "In Base64 konvertieren" ,
submitBatch : "Konvertieren ({count} Dateien)" ,
copyBase64 : "Base64 kopieren" ,
copyDataUri : "Data-URI kopieren" ,
copyImgTag : "<img>-Tag kopieren" ,
copyCssUrl : "CSS url() kopieren" ,
},
2026-06-13 10:19:16 +08:00
"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" ,
},
2026-05-15 17:02:49 +08:00
"enhance-faces-standalone" : {
model : "Modell" ,
fast : "Schnell" ,
balanced : "Ausgewogen" ,
best : "Beste" ,
},
2026-06-13 10:18:49 +08:00
"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" ,
},
2026-06-13 10:19:00 +08:00
"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" ,
},
2026-06-13 10:18:49 +08:00
"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" ,
},
2026-06-13 10:19:06 +08:00
"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" ,
},
2026-06-13 10:18:49 +08:00
"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" ,
},
2026-06-13 10:19:11 +08:00
"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" ,
},
2026-06-13 10:18:49 +08:00
"word-to-pdf" : {
submit : "Convert to PDF" ,
submitBatch : "Convert ({count} files)" ,
progressLabel : "Converting" ,
},
2026-06-13 10:18:55 +08:00
"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" ,
},
2026-06-13 10:19:11 +08:00
"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" ,
},
2026-06-13 10:18:55 +08:00
"markdown-to-pdf" : {
hint : "Remote resources are disabled for privacy." ,
submit : "Convert to PDF" ,
submitBatch : "Convert to PDF ({count} files)" ,
progressLabel : "Converting" ,
},
2026-06-13 10:19:11 +08:00
"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" ,
},
2026-06-13 10:18:49 +08:00
"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" ,
},
2026-06-13 10:19:11 +08:00
"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" ,
},
2026-05-15 17:02:49 +08:00
},
urlImport : {
title : "Von URLs importieren" ,
placeholder : "Bild-URLs einfuegen, eine pro Zeile..." ,
importButton : "URLs importieren" ,
addButton : "{count} Dateien hinzufuegen" ,
adding : "Wird hinzugefuegt..." ,
retryButton : "Erneut versuchen" ,
cancelButton : "Abbrechen" ,
readyCount : "{count} bereit" ,
failedStatus : "Fehlgeschlagen" ,
},
comparison : {
original : "Original" ,
processed : "Verarbeitet" ,
before : "Vorher" ,
after : "Nachher" ,
savings : "Ersparnis" ,
},
toolPage : {
emptyPrompt : "Bild hierher ziehen oder hochladen" ,
filesCount : "Dateien ({count})" ,
addMore : "+ Weitere hinzufuegen" ,
clearAll : "Alle entfernen" ,
acceptDescription : "Nur {exts}-Dateien" ,
notFound : "Werkzeug nicht gefunden" ,
configureAndGenerate : "Einstellungen konfigurieren und generieren." ,
processingFailed : "Verarbeitung fuer diese Datei fehlgeschlagen" ,
conversionComplete : "Konvertierung abgeschlossen" ,
cannotPreviewDownload :
"{type}-Dateien koennen im Browser nicht angezeigt werden. Verwenden Sie die Download-Schaltflaeche, um Ihre Datei zu speichern." ,
generatingPreview : "Vorschau wird generiert..." ,
cannotPreviewWillProcess :
"{ext}-Dateien koennen im Browser nicht angezeigt werden. Das Werkzeug verarbeitet diese Datei trotzdem." ,
previousImage : "Vorheriges Bild" ,
nextImage : "Naechstes Bild" ,
imageCounter : "{current} / {total}" ,
settingsLabel : "Einstellungen" ,
downloadAllZip : "Alle herunterladen (ZIP)" ,
hideSettings : "Einstellungen ausblenden" ,
imageArea : "Bildbereich" ,
},
homePage : {
generatingPreview : "Vorschau wird generiert..." ,
loadingPreview : "Vorschau wird geladen..." ,
changeFile : "Datei aendern" ,
quickActions : "Schnellaktionen" ,
allTools : "Alle Werkzeuge" ,
},
fullscreenGrid : {
searchPlaceholder : "Werkzeuge suchen..." ,
hideDetails : "Details ausblenden" ,
showDetails : "Details anzeigen" ,
switchToSidebar : "Zur Seitenleisten-Ansicht wechseln" ,
sidebarButton : "Seitenleiste" ,
noToolsFound : "Keine Werkzeuge gefunden" ,
tryDifferent : "Versuchen Sie einen anderen Suchbegriff" ,
},
editor : {
menu : {
file : {
label : "Datei" ,
new : "Neu" ,
open : "Oeffnen" ,
save : "Speichern" ,
exportAs : "Exportieren als..." ,
quickExportPng : "Schnellexport als PNG" ,
close : "Schliessen" ,
},
edit : {
label : "Bearbeiten" ,
undo : "Rueckgaengig" ,
redo : "Wiederholen" ,
cut : "Ausschneiden" ,
copy : "Kopieren" ,
copyMerged : "Zusammengefuegt kopieren" ,
paste : "Einfuegen" ,
pasteInPlace : "An gleicher Stelle einfuegen" ,
delete : "Loeschen" ,
freeTransform : "Frei transformieren" ,
transform : {
label : "Transformieren" ,
scale : "Skalieren" ,
rotate : "Drehen" ,
skew : "Neigen" ,
flipHorizontal : "Horizontal spiegeln" ,
flipVertical : "Vertikal spiegeln" ,
},
},
image : {
label : "Bild" ,
imageSize : "Bildgroesse..." ,
canvasSize : "Leinwandgroesse..." ,
rotation : {
label : "Bilddrehung" ,
cw90 : "90° im Uhrzeigersinn" ,
ccw90 : "90° gegen Uhrzeigersinn" ,
r180 : "180°" ,
flipHorizontal : "Horizontal spiegeln" ,
flipVertical : "Vertikal spiegeln" ,
},
trim : "Beschneiden" ,
adjustments : {
label : "Anpassungen" ,
brightnessContrast : "Helligkeit/Kontrast" ,
hueSaturation : "Farbton/Saettigung" ,
colorBalance : "Farbbalance" ,
levels : "Tonwerte" ,
curves : "Gradationskurven" ,
},
},
layer : {
label : "Ebene" ,
newLayer : "Neue Ebene" ,
duplicateLayer : "Ebene duplizieren" ,
deleteLayer : "Ebene loeschen" ,
arrange : {
label : "Anordnen" ,
bringToFront : "In den Vordergrund" ,
bringForward : "Eine Ebene nach vorne" ,
sendBackward : "Eine Ebene nach hinten" ,
sendToBack : "In den Hintergrund" ,
},
mergeDown : "Nach unten zusammenfuegen" ,
flattenImage : "Bild reduzieren" ,
},
select : {
label : "Auswahl" ,
all : "Alles" ,
deselect : "Auswahl aufheben" ,
inverse : "Umkehren" ,
colorRange : "Farbbereich..." ,
},
filter : {
label : "Filter" ,
blur : {
label : "Weichzeichnen" ,
gaussian : "Gauss'scher Weichzeichner" ,
motion : "Bewegungsunschaerfe" ,
radial : "Radialer Weichzeichner" ,
surface : "Oberflaechenweichzeichner" ,
},
sharpen : {
label : "Schaerfen" ,
sharpen : "Schaerfen" ,
unsharpMask : "Unscharf maskieren" ,
},
noise : {
label : "Rauschen" ,
addNoise : "Rauschen hinzufuegen" ,
reduceNoise : "Rauschen reduzieren" ,
},
pixelate : {
label : "Pixeln" ,
pixelate : "Pixeln" ,
mosaic : "Mosaik" ,
},
stylize : {
label : "Stilisieren" ,
emboss : "Relief" ,
solarize : "Solarisieren" ,
posterize : "Posterisieren" ,
},
grayscale : "Graustufen" ,
sepia : "Sepia" ,
invert : "Invertieren" ,
},
view : {
label : "Ansicht" ,
zoomIn : "Vergroessern" ,
zoomOut : "Verkleinern" ,
fitOnScreen : "An Bildschirm anpassen" ,
actualPixels : "Tatsaechliche Pixel" ,
rulers : "Lineale" ,
grid : "Raster" ,
guides : "Hilfslinien" ,
snap : "Einrasten" ,
panels : "Bedienfelder" ,
},
},
menuBar : {
backTitle : "Zurueck zu SnapOtter" ,
},
welcome : {
ariaLabel : "Bild-Ablagezone" ,
heading : "Bild-Editor" ,
dropDescription : "Ziehen Sie ein Bild hierher, um zu beginnen" ,
openImageButton : "Bild oeffnen" ,
newDocumentButton : "Neues Dokument" ,
pasteHint : "Oder aus der Zwischenablage einfuegen (Strg+V)" ,
},
mobile : {
heading : "Desktop empfohlen" ,
description :
"Der Bild-Editor funktioniert am besten auf Desktopbildschirmen. Bitte wechseln Sie fuer das volle Bearbeitungserlebnis zu einem Geraet mit groesserem Display." ,
},
errors : {
serverDecodeFailed : "Server-Dekodierung fehlgeschlagen" ,
},
2026-06-05 16:40:57 +08:00
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" ,
},
2026-05-15 17:02:49 +08:00
},
settings : {
heading : "Einstellungen" ,
nav : {
general : "Allgemein" ,
systemSettings : "Systemeinstellungen" ,
security : "Sicherheit" ,
people : "Personen" ,
teams : "Teams" ,
roles : "Rollen" ,
auditLog : "Audit-Protokoll" ,
2026-06-13 10:17:13 +08:00
usage : "Usage" ,
2026-05-15 17:02:49 +08:00
apiKeys : "API-Schluessel" ,
aiFeatures : "AI-Funktionen" ,
tools : "Werkzeuge" ,
productAnalytics : "Produktanalytik" ,
about : "Info" ,
},
general : {
heading : "Allgemein" ,
description : "Benutzereinstellungen und Anzeigeoptionen." ,
loading : "Wird geladen..." ,
logOut : "Abmelden" ,
defaultToolViewLabel : "Standard-Werkzeugansicht" ,
defaultToolViewDescription : "Wie Werkzeuge auf der Startseite angezeigt werden" ,
sidebarOption : "Seitenleiste" ,
fullscreenGridOption : "Vollbild-Raster" ,
appVersionLabel : "App-Version" ,
appVersionDescription : "Aktuelle Version von SnapOtter" ,
saveButton : "Einstellungen speichern" ,
saveSuccess : "Einstellungen gespeichert." ,
saveFailed : "Einstellungen konnten nicht gespeichert werden." ,
},
system : {
heading : "Systemeinstellungen" ,
description : "Serverseitige Konfiguration und Limits." ,
fileUploadLimitLabel : "Dateiupload-Limit (MB)" ,
fileUploadLimitDescription : "Maximale Dateigroesse pro Upload" ,
defaultThemeLabel : "Standard-Farbschema" ,
defaultThemeDescription : "Farbschema fuer neue Sitzungen" ,
lightOption : "Hell" ,
darkOption : "Dunkel" ,
systemOption : "System" ,
languageLabel : "Sprache" ,
languageDescription : "Sprache der Benutzeroberflaeche" ,
loginAttemptLimitLabel : "Anmeldeversuchslimit" ,
loginAttemptLimitDescription :
"Maximale fehlgeschlagene Anmeldeversuche pro Minute vor Sperrung" ,
fileManagementHeading : "Dateiverwaltung" ,
maxFileAgeLabel : "Maximales Dateialter (Stunden)" ,
maxFileAgeDescription :
"Wie lange verarbeitete Dateien vor automatischer Bereinigung aufbewahrt werden" ,
startupCleanupLabel : "Bereinigung beim Start" ,
startupCleanupDescription : "Alte temporaere Dateien beim Serverstart bereinigen" ,
saveButton : "Einstellungen speichern" ,
saveSuccess : "Einstellungen gespeichert." ,
saveFailed : "Einstellungen konnten nicht gespeichert werden." ,
limitsAndResources : "Limits & Ressourcen" ,
maxFileSize : "Maximale Dateigroesse" ,
maxBatchSize : "Maximale Stapelgroesse" ,
concurrentJobs : "Gleichzeitige Auftraege" ,
workerThreads : "Arbeitsthreads" ,
maxPipelineSteps : "Maximale Pipeline-Schritte" ,
processingTimeout : "Verarbeitungs-Timeout" ,
rateLimitPerMin : "Ratenlimit (Anfragen/Min.)" ,
unlimited : "Unbegrenzt" ,
auto : "Automatisch" ,
envOverride : "Durch Umgebungsvariable gesetzt" ,
maxCanvasPixels : "Maximale Leinwandpixel" ,
maxSvgSize : "Maximale SVG-Groesse" ,
maxSplitGrid : "Maximales Aufteilungsraster" ,
maxPdfPages : "Maximale PDF-Seiten" ,
sessionDuration : "Sitzungsdauer" ,
2026-06-13 10:17:13 +08:00
supportBundleButton : "Download Support Bundle" ,
supportBundleDescription :
"Download a diagnostic zip with redacted config, logs, and job data for troubleshooting." ,
supportBundleFailed : "Failed to download support bundle." ,
2026-05-15 17:02:49 +08:00
},
security : {
heading : "Sicherheit" ,
description : "Passwort- und Authentifizierungseinstellungen." ,
changePasswordHeading : "Passwort aendern" ,
currentPasswordPlaceholder : "Aktuelles Passwort" ,
newPasswordPlaceholder : "Neues Passwort" ,
confirmPasswordPlaceholder : "Neues Passwort bestaetigen" ,
passwordsMismatch : "Passwoerter stimmen nicht ueberein" ,
passwordTooShort : "Passwort muss mindestens 4 Zeichen lang sein" ,
changeSuccess : "Passwort erfolgreich geaendert" ,
changeFailed : "Passwort konnte nicht geaendert werden" ,
currentPasswordIncorrect : "Aktuelles Passwort ist falsch" ,
changePasswordButton : "Passwort aendern" ,
loginAttemptLimitNote :
"Anmeldeversuchslimits koennen in den Systemeinstellungen konfiguriert werden." ,
},
people : {
heading : "Personen" ,
description : "Arbeitsbereich-Mitglieder und deren Berechtigungen verwalten" ,
userCount : "{count} Benutzer" ,
userCountPlural : "{count} Benutzer" ,
searchPlaceholder : "Mitglieder suchen..." ,
addMembersButton : "Mitglieder hinzufuegen" ,
newMemberHeading : "Neues Mitglied" ,
usernamePlaceholder : "Benutzername" ,
passwordPlaceholder : "Passwort" ,
roleUserOption : "Benutzer" ,
roleEditorOption : "Redakteur" ,
roleAdminOption : "Administrator" ,
roleUserDescription : "Grundlegender Werkzeugzugriff" ,
roleEditorDescription : "Alle Dateien & Pipelines" ,
roleAdminDescription : "Vollzugriff" ,
noDescription : "Keine Beschreibung" ,
defaultTeamOption : "Standard" ,
createButton : "Erstellen" ,
cancelButton : "Abbrechen" ,
createSuccess : "Benutzer erfolgreich erstellt" ,
createFailed : "Benutzer konnte nicht erstellt werden" ,
userLimitReached : "Benutzerlimit erreicht (maximal {max})" ,
deleteConfirm : 'Benutzer "{username}" loeschen? Dies kann nicht rueckgaengig gemacht werden.' ,
deleteSuccess : 'Benutzer "{username}" geloescht' ,
deleteFailed : "Benutzer konnte nicht geloescht werden" ,
editHeading : "{username} bearbeiten" ,
updateSuccess : "Benutzer aktualisiert" ,
updateFailed : "Benutzer konnte nicht aktualisiert werden" ,
cannotRemoveOwnAdmin : "Sie koennen Ihre eigene Administratorrolle nicht entfernen" ,
resetPasswordHeading : "Passwort zuruecksetzen fuer {username}" ,
newPasswordLabel : "Neues Passwort (mind. 8 Zeichen)" ,
resetPasswordButton : "Passwort zuruecksetzen" ,
resetPasswordWarning :
"Dadurch werden alle Sitzungen und API-Schluessel dieses Benutzers ungueltig." ,
resetSuccess : "Passwort erfolgreich zurueckgesetzt" ,
resetFailed : "Passwort konnte nicht zurueckgesetzt werden" ,
tableHeaderUser : "Benutzer" ,
tableHeaderRole : "Rolle" ,
tableHeaderTeam : "Team" ,
noSearchResults : "Keine Mitglieder entsprechen Ihrer Suche." ,
noUsersFound : "Keine Benutzer gefunden." ,
authBadgeLocalOidc : "Lokal + OIDC" ,
authBadgeOidc : "OIDC" ,
editRoleTeamAction : "Rolle / Team bearbeiten" ,
resetPasswordAction : "Passwort zuruecksetzen" ,
deleteUserAction : "Benutzer loeschen" ,
saveButton : "Speichern" ,
2026-05-16 23:08:19 +08:00
copyPasswordButton : "Passwort kopieren" ,
passwordCopied : "Kopiert!" ,
copyPasswordWarning :
"Kopieren Sie dieses Passwort jetzt. Nach dem Erstellen des Benutzers ist es nicht mehr sichtbar." ,
2026-05-15 17:02:49 +08:00
},
teams : {
heading : "Teams" ,
description : "Mitglieder in Teams organisieren fuer bessere Verwaltung." ,
createButton : "Neues Team erstellen" ,
newTeamHeading : "Neues Team" ,
teamNamePlaceholder : "Teamname" ,
createSubmitButton : "Erstellen" ,
cancelButton : "Abbrechen" ,
createSuccess : "Team erfolgreich erstellt" ,
createFailed : "Team konnte nicht erstellt werden" ,
duplicateTeamError : "Ein Team mit diesem Namen existiert bereits" ,
renameSuccess : "Team umbenannt" ,
renameFailed : "Team konnte nicht umbenannt werden" ,
deleteConfirm : 'Team "{name}" loeschen? Mitglieder werden abgemeldet.' ,
deleteSuccess : 'Team "{name}" geloescht' ,
deleteFailed : "Team konnte nicht geloescht werden" ,
cannotDeleteDefault :
"Das Standardteam oder ein Team mit Mitgliedern kann nicht geloescht werden" ,
tableHeaderTeamName : "Teamname" ,
tableHeaderMembers : "Mitglieder" ,
emptyState : "Keine Teams gefunden." ,
renameSaveButton : "Speichern" ,
renameCancelButton : "Abbrechen" ,
renameAction : "Umbenennen" ,
deleteAction : "Loeschen" ,
totalMembers : "Mitglieder gesamt" ,
nameRequired : "Teamname ist erforderlich" ,
nameTooLong : "Teamname darf maximal 50 Zeichen lang sein" ,
duplicateName : "Ein Team mit diesem Namen existiert bereits" ,
},
roles : {
heading : "Rollen" ,
description :
"Rollen und deren Berechtigungen verwalten. Integrierte Rollen koennen nicht geaendert werden." ,
createButton : "Benutzerdefinierte Rolle erstellen" ,
newRoleHeading : "Neue Rolle" ,
roleNamePlaceholder : "Rollenname" ,
descriptionPlaceholder : "Beschreibung (optional)" ,
permissionsLabel : "Berechtigungen" ,
createSubmitButton : "Erstellen" ,
cancelButton : "Abbrechen" ,
createSuccess : "Rolle erfolgreich erstellt" ,
createFailed : "Rolle konnte nicht erstellt werden" ,
duplicateRoleError : "Eine Rolle mit diesem Namen existiert bereits" ,
editHeading : "Rolle bearbeiten: {name}" ,
editSaveButton : "Speichern" ,
editCancelButton : "Abbrechen" ,
updateSuccess : "Rolle aktualisiert" ,
updateFailed : "Rolle konnte nicht aktualisiert werden" ,
deleteConfirm : 'Rolle "{name}" loeschen? {count} Benutzer muessen neu zugewiesen werden.' ,
deleteConfirmSimple : 'Rolle "{name}" loeschen?' ,
deleteSuccess : 'Rolle "{name}" geloescht' ,
deleteFailed : "Rolle konnte nicht geloescht werden" ,
emptyState : "Keine Rollen gefunden." ,
builtInBadge : "Integriert" ,
userCountBadge : "{count} Benutzer" ,
editRoleTitle : "Rolle bearbeiten" ,
deleteRoleTitle : "Rolle loeschen" ,
permGroup : {
tools : "Werkzeuge" ,
files : "Dateien" ,
apiKeys : "API-Schluessel" ,
pipelines : "Pipelines" ,
settings : "Einstellungen" ,
users : "Benutzer" ,
teams : "Teams" ,
system : "System" ,
},
},
auditLog : {
heading : "Audit-Protokoll" ,
allActionsFilter : "Alle Aktionen" ,
emptyState : "Keine Audit-Protokolleintraege." ,
tableHeaderTime : "Zeit" ,
tableHeaderUser : "Benutzer" ,
tableHeaderAction : "Aktion" ,
tableHeaderTarget : "Ziel" ,
paginationInfo : "Seite {page} von {totalPages} ({total} Eintraege)" ,
previousButton : "Zurueck" ,
nextButton : "Weiter" ,
justNow : "Gerade eben" ,
minutesAgo : "Vor {mins} Min." ,
hoursAgo : "Vor {hrs} Std." ,
daysAgo : "Vor {days} Tagen" ,
},
2026-06-13 10:17:13 +08:00
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)" ,
},
2026-05-15 17:02:49 +08:00
apiKeys : {
heading : "API-Schluessel" ,
description : "API-Schluessel fuer programmatischen Zugriff auf SnapOtter verwalten." ,
keyNamePlaceholder : "Schluesselname (optional)" ,
generateButton : "API-Schluessel generieren" ,
removeScopingLabel : "Berechtigungsbeschraenkung entfernen" ,
restrictPermissionsLabel : "Berechtigungen einschraenken (optional)" ,
expiresLabel : "Laeuft ab:" ,
clearButton : "Leeren" ,
copyTitle : "Kopieren" ,
keyWarning : "Bewahren Sie diesen Schluessel sicher auf. Er wird nicht erneut angezeigt." ,
existingKeysHeading : "Vorhandene Schluessel" ,
createdPrefix : "Erstellt {date}" ,
scopedPrefix : "Beschraenkt:" ,
expiresPrefix : "Laeuft ab {date}" ,
deleteKeyTitle : "Schluessel loeschen" ,
deleteConfirm :
"Diesen API-Schluessel loeschen? Alle Integrationen, die ihn nutzen, werden nicht mehr funktionieren." ,
emptyState : "Noch keine API-Schluessel. Generieren Sie einen, um zu beginnen." ,
},
tools : {
heading : "Werkzeuge" ,
description :
"Einzelne Werkzeuge aktivieren oder deaktivieren. Deaktivierte Werkzeuge sind fuer alle Benutzer ausgeblendet." ,
restartBanner : "Neustart erforderlich, damit Aenderungen wirksam werden." ,
searchPlaceholder : "Werkzeuge suchen..." ,
noSearchResults : "Keine Werkzeuge entsprechen Ihrer Suche." ,
loadFailedError :
"Werkzeugeinstellungen konnten nicht geladen werden. Speichern ist deaktiviert, um Datenverlust zu vermeiden." ,
saveButton : "Werkzeugeinstellungen speichern" ,
disabledCount : "{count} Werkzeug(e) deaktiviert" ,
},
experimental : {
label : "Experimentelle Werkzeuge aktivieren" ,
description :
"Werkzeuge anzeigen, die sich noch in der Entwicklung befinden. Diese koennen instabil sein." ,
},
fileManagement : {
title : "Dateiverwaltung" ,
maxAge : "Maximales Dateialter (Stunden)" ,
maxAgeDescription :
"Wie lange verarbeitete Dateien vor automatischer Bereinigung aufbewahrt werden" ,
startupCleanup : "Bereinigung beim Start" ,
startupCleanupDescription : "Alte temporaere Dateien beim Serverstart bereinigen" ,
},
2026-06-13 16:39:22 +08:00
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." ,
},
2026-05-15 17:02:49 +08:00
analytics : {
heading : "Produktanalytik" ,
description : "Anonyme Nutzungsdaten teilen, um SnapOtter zu verbessern." ,
privacyNote : "Ihre Bilder verlassen niemals Ihren Rechner." ,
disabledByAdmin : "Produktanalytik wurde vom Serveradministrator deaktiviert." ,
enabledLabel : "Analytik aktiviert" ,
disabledLabel : "Analytik deaktiviert" ,
learnMore : "Mehr erfahren" ,
},
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..." ,
2026-06-13 10:17:13 +08:00
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}" ,
2026-05-15 17:02:49 +08:00
},
about : {
heading : "Info" ,
appName : "SnapOtter" ,
appDescription :
2026-06-13 10:18:49 +08:00
"Eine selbst gehostete, datenschutzorientierte Bildverarbeitungssuite mit 70+ Werkzeugen. Skalieren, komprimieren, konvertieren, mit Wasserzeichen versehen und Bildablaeufe automatisieren, ohne Daten in die Cloud zu senden." ,
2026-05-15 17:02:49 +08:00
versionLabel : "Version:" ,
linksHeading : "Links" ,
githubLink : "GitHub-Repository" ,
docsLink : "Dokumentation" ,
apiRefLink : "API-Referenz (Swagger)" ,
2026-06-05 22:31:28 +08:00
licenseLabel : "License:" ,
2026-06-05 23:14:57 +08:00
licenseDescription :
"SnapOtter is open-source software licensed under the GNU Affero General Public License v3 (AGPLv3)." ,
2026-05-15 17:02:49 +08:00
},
},
auth : {
login : "Anmelden" ,
logout : "Abmelden" ,
username : "Benutzername" ,
password : "Passwort" ,
loginButton : "Anmelden" ,
loggingIn : "Anmeldung laeuft..." ,
invalidCredentials : "Ungueltiger Benutzername oder Passwort" ,
connectionError : "Verbindungsfehler" ,
signInWith : "Anmelden mit {provider}" ,
signInWithSso : "Anmelden mit SSO" ,
or : "oder" ,
methodLocal : "Lokal" ,
methodOidc : "OIDC" ,
methodBoth : "Lokal + OIDC" ,
oidcAuthFailed : "Authentifizierung fehlgeschlagen. Bitte versuchen Sie es erneut." ,
oidcProviderUnreachable :
"Der Identitaetsanbieter ist nicht erreichbar. Bitte versuchen Sie es spaeter erneut." ,
oidcSessionExpired : "Anmeldesitzung abgelaufen. Bitte versuchen Sie es erneut." ,
oidcUserNotAuthorized :
"Ihr Konto ist nicht fuer den Zugriff auf diese Anwendung autorisiert. Kontaktieren Sie Ihren Administrator." ,
oidcUserLimitReached : "Benutzerlimit erreicht. Kontaktieren Sie Ihren Administrator." ,
oidcGenericError : "Authentifizierungsfehler. Bitte versuchen Sie es erneut." ,
passwordManagedByProvider :
"Passwortaenderungen werden von Ihrem Identitaetsanbieter verwaltet." ,
enterUsername : "Benutzernamen eingeben" ,
enterPassword : "Passwort eingeben" ,
heroTitle : "Ihre Bilder. Bleiben Ihre." ,
heroSubtitle : "Jedes Bildwerkzeug, das Sie brauchen." ,
rotatingPhrases : [
"Keine Registrierung. Keine Konten." ,
"Kein Upload in die Cloud. Niemals." ,
"100% lokale Verarbeitung." ,
"Kostenlos. Fuer immer." ,
"Keine Limits. Keine versteckten Grenzen." ,
"Funktioniert komplett offline." ,
"Unbegrenzte Stapelverarbeitung." ,
2026-06-13 10:18:49 +08:00
"70+ Bildwerkzeuge." ,
2026-05-16 12:48:02 +08:00
"16 AI-Modelle. Ihre Hardware." ,
2026-05-15 17:02:49 +08:00
"Blitzschnell. Basiert auf Sharp." ,
"Geeignet fuer abgeschottete Netzwerke." ,
"Ein einziger Docker-Container." ,
"Open Source. Immer." ,
"Jedes Pixel bleibt auf Ihrer Hardware." ,
"Ihr Server. Ihre Regeln." ,
"Ein einziger docker pull." ,
"Die selbst gehostete Alternative." ,
"Skalieren, komprimieren, konvertieren. Lokal." ,
"Kostenloser Bild-Editor. Ohne Wasserzeichen." ,
"Massenbildverarbeitung. Unbegrenzt." ,
"Hintergrund offline entfernen." ,
"Die selbst gehostete Canva-Alternative." ,
"Keine API-Schluessel noetig." ,
"DSGVO-konform von Grund auf." ,
"Funktioniert ohne Internet." ,
],
},
changePassword : {
title : "Passwort aendern" ,
description :
"Sie muessen ein neues Passwort festlegen, bevor Sie fortfahren koennen. Ihr Passwort muss mindestens 8 Zeichen mit Gross- und Kleinbuchstaben sowie einer Zahl enthalten." ,
usernameLabel : "Benutzername" ,
currentPasswordLabel : "Aktuelles Passwort" ,
currentPasswordPlaceholder : "Aktuelles Passwort eingeben" ,
newPasswordLabel : "Neues Passwort" ,
generateButton : "Sicheres Passwort generieren" ,
newPasswordPlaceholder : "Mindestens 8 Zeichen" ,
confirmPasswordLabel : "Neues Passwort bestaetigen" ,
confirmPasswordPlaceholder : "Neues Passwort wiederholen" ,
passwordsMismatch : "Passwoerter stimmen nicht ueberein" ,
failedError : "Passwort konnte nicht geaendert werden" ,
connectionError : "Verbindungsfehler" ,
changingButton : "Wird geaendert..." ,
changeButton : "Passwort aendern" ,
sidebarTitle : "Fast geschafft" ,
sidebarDescription :
"Legen Sie ein sicheres Passwort fest, um Ihr Konto zu schuetzen. Dann kann es losgehen." ,
},
automate : {
title : "Automatisieren" ,
invalidPipelineFile : "Keine gueltige SnapOtter-Pipeline-Datei" ,
newerVersion : "Diese Pipeline wurde mit einer neueren Version von SnapOtter erstellt" ,
missingName : "Pipeline-Datei hat keinen Namen" ,
noSteps : "Pipeline-Datei hat keine Schritte" ,
importFailed : "Import fehlgeschlagen" ,
couldNotRead : "Pipeline-Datei konnte nicht gelesen werden" ,
fileCount : "{count} Datei" ,
fileCountPlural : "{count} Dateien" ,
importFromLibrary : "Aus Bibliothek importieren" ,
addButton : "+ Hinzufuegen" ,
libraryButton : "Bibliothek" ,
clearButton : "Leeren" ,
processingFailed : "Verarbeitung fuer diese Datei fehlgeschlagen" ,
processingMultiple : "{count} Dateien werden verarbeitet..." ,
processingPipeline : "Pipeline wird verarbeitet..." ,
processButton : "Verarbeiten" ,
processButtonMultiple : "Verarbeiten ({count})" ,
processAllButton : "Alle verarbeiten ({count})" ,
addTool : "Werkzeug hinzufuegen" ,
toolPalette : "Werkzeugpalette" ,
clickToAdd : "Zum Hinzufuegen zur Pipeline klicken" ,
savedLabel : "Gespeichert" ,
importButton : "Importieren" ,
noSavedPipelines : "Keine gespeicherten Pipelines" ,
stepCount : "({count} Schritt)" ,
stepCountPlural : "({count} Schritte)" ,
exportPipeline : "Pipeline exportieren" ,
deletePipeline : "Pipeline loeschen" ,
moreCount : "+{count} weitere" ,
pipelineBuilder : "Pipeline-Builder" ,
addToolsPrompt : "Fuegen Sie Werkzeuge aus der Palette hinzu, um zu beginnen" ,
stepsConfigured : "{count} Schritt konfiguriert" ,
stepsConfiguredPlural : "{count} Schritte konfiguriert" ,
noFilesLoaded : "Keine Dateien geladen" ,
downloadZip : "ZIP herunterladen" ,
saveButton : "Speichern" ,
pipelineNamePlaceholder : "Pipeline-Name" ,
descriptionPlaceholder : "Beschreibung" ,
savingIndicator : "..." ,
cancelButton : "Abbrechen" ,
preview : "Vorschau" ,
previousImage : "Vorheriges Bild" ,
nextImage : "Naechstes Bild" ,
imageCounter : "{current} / {total}" ,
imageArea : "Bildbereich" ,
templateSocialMedia : "Social Media fertig" ,
templatePrivacyClean : "Datenschutzbereinigung" ,
templateWebOptimization : "Weboptimierung" ,
templateProfilePicture : "Profilbild" ,
templateWatermarkBatch : "Wasserzeichen-Stapel" ,
createNew : "Neue Automatisierung erstellen" ,
savedAutomations : "Gespeicherte Automatisierungen" ,
templates : "Vorlagen" ,
addStep : "Schritt hinzufuegen" ,
removeStep : "Entfernen" ,
moveUp : "Nach oben" ,
moveDown : "Nach unten" ,
savePipeline : "Pipeline speichern" ,
runPipeline : "Verarbeiten" ,
pipelineName : "Pipeline-Name" ,
pipelineDescription : "Beschreibung (optional)" ,
noStepsPrompt : "Fuegen Sie Schritte hinzu, um Ihre Automatisierung zu erstellen" ,
2026-06-06 20:47:08 +08:00
noStepsHeading : "No steps yet" ,
2026-06-05 22:31:28 +08:00
searchToolsPlaceholder : "Search tools..." ,
2026-06-06 20:47:08 +08:00
step : "Schritt" ,
2026-05-15 17:02:49 +08:00
},
nav : {
tools : "Werkzeuge" ,
reader : "Reader" ,
automate : "Automatisieren" ,
editor : "Editor" ,
files : "Dateien" ,
help : "Hilfe" ,
settings : "Einstellungen" ,
grid : "Raster" ,
},
files : {
2026-06-05 22:31:28 +08:00
myFiles : "My Files" ,
2026-06-05 23:14:57 +08:00
recentTab : "Recent" ,
uploadTab : "Upload Files" ,
fileDetailsAriaLabel : "File Details" ,
fileDetailsHeading : "File Details" ,
2026-06-05 22:31:28 +08:00
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" ,
openInPipeline : "Open in Pipeline" ,
name : "Name" ,
format : "Format" ,
size : "Size" ,
dimensions : "Dimensions" ,
version : "Version" ,
toolsUsed : "Tools Used" ,
none : "None" ,
delete : "Delete" ,
pipeline : "Pipeline" ,
download : "Download" ,
2026-05-15 17:02:49 +08:00
},
dropzone : {
unsupportedFileType : "Dieser Dateityp wird von diesem Werkzeug nicht unterstuetzt" ,
urlFetchFailed : "Bild konnte nicht von URL abgerufen werden" ,
ariaLabel : "Datei-Ablagezone" ,
dropPrompt : "Bilder hierher ziehen" ,
browseOrPaste : "Klicken Sie zum Durchsuchen oder fuegen Sie aus der Zwischenablage ein" ,
uploadButton : "Hochladen" ,
defaultFormats : "PNG, JPG, WebP, HEIC, RAW, PSD und 65+ Formate" ,
orSeparator : "oder" ,
urlPlaceholder : "Bild-URL einfuegen..." ,
urlLoadingIndicator : "..." ,
addUrlButton : "Hinzufuegen" ,
importMultipleUrls : "Mehrere URLs importieren..." ,
filesSelected : "{count} Dateien ausgewaehlt" ,
},
reviewPanel : {
processedResultAlt : "Verarbeitetes Ergebnis" ,
sizeLabel : "Groesse: {size}" ,
typeLabel : "Typ: {type}" ,
processedLabel : "Verarbeitet: {time}" ,
undoButton : "Rueckgaengig" ,
downloadButton : "Herunterladen" ,
openInEditor : "Im Editor oeffnen" ,
reviewHeading : "Ueberpruefen" ,
continueEditing : "Weiter bearbeiten" ,
},
features : {
notEnabledTitle : "Funktion nicht aktiviert" ,
notEnabledDescription :
"Diese Funktion ist nicht aktiviert. Bitten Sie Ihren Administrator, sie in den Einstellungen zu aktivieren." ,
requiresDownload : "Diese Funktion erfordert einen zusaetzlichen Download (~{size})" ,
retryButton : "Erneut versuchen" ,
queued : "Zur Installation vorgemerkt..." ,
enableButton : "{name} aktivieren" ,
2026-06-09 23:09:34 +08:00
repairRequired : "Repair Required" ,
repairDescription : "Some model files are missing or corrupted. Repair will re-download them." ,
repairButton : "Repair {name}" ,
2026-05-15 17:02:49 +08:00
lessThanMinute : "Weniger als eine Minute verbleibend" ,
oneMinuteLeft : "~1 Minute verbleibend" ,
minutesLeft : "~{mins} Minuten verbleibend" ,
progressMessages : [
"Fast geschafft... wahrscheinlich..." ,
"Gute Dinge brauchen ihre Zeit..." ,
"Immer noch schneller als Farbe beim Trocknen zuzusehen..." ,
"Ihre Geduld ist wirklich bewundernswert..." ,
"Arbeitet haerter als es aussieht..." ,
"Jetzt kommt der spannende Teil, versprochen..." ,
"Wichtige Dinge passieren im Hintergrund..." ,
"Wenn Sie das hier lesen, funktioniert es..." ,
"Etwas Grossartiges wird vorbereitet..." ,
"Jede Sekunde wert, kleiner Finger drauf..." ,
"Die Spannung gehoert zum Erlebnis..." ,
"Ihrem Computer werden neue Tricks beigebracht..." ,
"Ihre Superkraefte werden eingerichtet..." ,
"Ihre Bilder werden es Ihnen spaeter danken..." ,
"Laden... aber mit Stil..." ,
"Perfekter Moment fuer einen Kaffee..." ,
"Rom wurde auch nicht an einem Tag erbaut..." ,
"Psst... hier arbeitet ein Genie..." ,
"Ihre Fotos werden neidisch auf das, was kommt..." ,
"Das Dreamteam wird zusammengestellt..." ,
"Grossartiges wird ausgepackt..." ,
"Fast fertig mit dem Nachdenken ueber den Anfang... kleiner Scherz..." ,
"Plottwist: Hier passiert tatsaechlich etwas..." ,
"Die kreativen Motoren werden warmgelaufen..." ,
"Fantasie wird geladen..." ,
"Kein Bildschirmschoner, versprochen..." ,
"Grosse Kunst braucht Zeit zum Installieren..." ,
"Ihr zukuenftiges Ich wird es Ihnen danken..." ,
"Ziemlich schlaue Dateien werden geholt..." ,
"Durchhalten, das Beste kommt noch..." ,
],
},
help : {
heading : "Hilfe" ,
gettingStarted : {
heading : "Erste Schritte" ,
description :
"Waehlen Sie ein Werkzeug aus der Seitenleiste oder suchen Sie nach einem. Laden Sie ein Bild hoch, indem Sie es auf die Seite ziehen oder den Upload-Bereich anklicken. Passen Sie die Einstellungen an und laden Sie Ihr Ergebnis herunter." ,
},
keyboardShortcuts : {
heading : "Tastenkombinationen" ,
focusSearchBar : "Suchleiste fokussieren" ,
goToTools : "Zu Werkzeugen" ,
toggleTheme : "Farbschema wechseln" ,
goToResize : "Zu Groesse aendern" ,
goToCrop : "Zu Zuschneiden" ,
goToCompress : "Zu Komprimieren" ,
goToConvert : "Zu Konvertieren" ,
goToRemoveBackground : "Zu Hintergrund entfernen" ,
goToWatermarkText : "Zu Text-Wasserzeichen" ,
goToStripMetadata : "Zu Metadaten entfernen" ,
goToImageInfo : "Zu Bildinformationen" ,
},
resources : {
heading : "Ressourcen" ,
githubLink : "GitHub-Repository" ,
reportIssueLink : "Problem melden" ,
docsLink : "Dokumentation" ,
apiRefLink : "API-Referenz (Swagger)" ,
},
versionLabel : "SnapOtter v{version}" ,
},
errors : {
generic : "Ein Fehler ist aufgetreten" ,
offline : "Sie sind offline" ,
reconnecting : "Verbindung zum Server wird wiederhergestellt..." ,
connected : "Verbunden" ,
processingFailed : "Verarbeitung fuer diese Datei fehlgeschlagen" ,
timeout :
"Zeitlimit ueberschritten. Der Server ist moeglicherweise ueberlastet. Versuchen Sie es erneut." ,
networkError : "Netzwerkfehler. Ueberpruefen Sie Ihre Verbindung." ,
invalidCredentials : "Ungueltiger Benutzername oder Passwort" ,
connectionError : "Verbindungsfehler" ,
},
analytics : {
consentTitle : "Helfen Sie, SnapOtter zu verbessern" ,
consentDescription :
"Anonyme Nutzungsstatistiken helfen uns, Fehler zu beheben und die Werkzeuge zu entwickeln, die Sie wirklich brauchen. Ihre Bilder und Dateien bleiben auf Ihrem Rechner." ,
consentChangeable : "Sie koennen dies jederzeit in den Einstellungen deaktivieren." ,
acceptButton : "Klar, einverstanden" ,
declineButton : "Jetzt nicht" ,
settingsTitle : "Produktanalytik" ,
settingsDescription : "Anonyme Nutzungsdaten teilen, um SnapOtter zu verbessern." ,
settingsPrivacy : "Ihre Bilder verlassen niemals Ihren Rechner." ,
settingsDisabledByAdmin : "Produktanalytik wurde vom Serveradministrator deaktiviert." ,
learnMore : "Mehr erfahren" ,
},
sidebar : {
tools : "Werkzeuge" ,
grid : "Raster" ,
automate : "Automatisieren" ,
editor : "Editor" ,
files : "Dateien" ,
help : "Hilfe" ,
settings : "Einstellungen" ,
},
toolCard : {
addToFavourites : "Zu Favoriten hinzufuegen" ,
},
appLayout : {
mobileNavTools : "Werkzeuge" ,
mobileNavAutomate : "Automatisieren" ,
mobileNavEditor : "Editor" ,
mobileNavFiles : "Dateien" ,
mobileNavSettings : "Einstellungen" ,
},
2026-06-07 21:48:08 +08:00
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" ,
},
2026-05-15 17:02:49 +08:00
} as const ;