Files
SnapOtter/packages/shared/src/i18n/de.ts
T
SnapOtterandGitHub 129e42b95c feat(feedback): gate onboarding survey on first processing, add prompt lifecycle events (#615)
Defers the onboarding usage survey to the instance's first successful processing (the worker writes a one-time onboarding.firstProcessedAt marker and the overlay gates on it), so it reaches engaged users instead of first-landing visitors.

Replaces the two questions telemetry already answers (modality preference from tool_used, install method from instance_started) with what it can't infer: prior tool, self-host motivation, and discovery source.

Adds feedback_prompt_shown and feedback_prompt_dismissed on all five feedback surfaces (usage survey, per-job prompt, admin install card, global nav dialog, search-miss) so skip and completion rates are measurable, not just submissions. New survey strings translated into all 20 non-English locales.
2026-07-21 16:31:30 +00:00

4151 lines
153 KiB
TypeScript

import type { TranslationKeys } from "./en.js";
export const de: TranslationKeys = {
migrationBanner: {
successTitle: "SnapOtter 1.x-Daten importiert.",
successBody:
"{users} Benutzer und {files} gespeicherte Dateien aus deiner vorherigen Version übernommen.",
warningTitle: "1.x-Datenbank gefunden, aber nicht importiert.",
warningBody:
"Diese Instanz enthält bereits Daten, daher wurde deine 1.x-Datenbank nicht importiert. Der Import erfordert eine leere Instanz. Siehe die Upgrade-Anleitung.",
dismiss: "Schließen",
},
common: {
upload: "Vom Computer hochladen",
process: "Verarbeiten",
download: "Herunterladen",
cancel: "Abbrechen",
save: "Speichern",
delete: "Löschen",
settings: "Einstellungen",
search: "Werkzeuge suchen...",
dropFiles: "Dateien hierher ziehen oder auf die Schaltfläche klicken",
loading: "Wird geladen...",
saving: "Wird gespeichert...",
error: "Ein Fehler ist aufgetreten",
confirm: "Bestätigen",
close: "Schließen",
back: "Zurück",
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: "Datenschutzerklärung",
pageNotFound: "Seite nicht gefunden",
pageNotFoundDescription: "Die gesuchte Seite existiert nicht oder wurde verschoben.",
},
feedback: {
navLabel: "Feedback geben",
navButtonLabel: "Feedback",
dialogTitle: "Feedback geben",
toolDialogTitle: "Wie hat dieses Tool funktioniert?",
failedDialogTitle: "Ein Tool-Problem melden",
adminDialogTitle: "Wie lief die Einrichtung?",
closeLabel: "Feedback-Dialog schließen",
privacyNote:
"Feedback wird nur gesendet, wenn du es absendest. SnapOtter überträgt dabei keine Dateien, Dateiinhalte, Dateinamen oder privaten Ergebnisse.",
typeLabel: "Art des Feedbacks",
sentimentLabel: "Schnellbewertung",
messageLabel: "Feedback",
messagePlaceholder:
"Sag uns, was gut lief, was nicht funktioniert hat oder was SnapOtter besser machen würde.",
improveFirstLabel: "Was sollten wir zuerst verbessern?",
improveFirstPlaceholder: "Sag uns, was die Einrichtung schwieriger gemacht hat als nötig.",
contactOkLabel: "Ihr dürft mich zu diesem Feedback kontaktieren.",
emailPlaceholder: "E-Mail (optional)",
namePlaceholder: "Name (optional)",
companyPlaceholder: "Firma oder Organisation (optional)",
submit: "Feedback senden",
submitting: "Wird gesendet...",
submitFailed: "Feedback konnte nicht gesendet werden. Bitte versuche es erneut.",
searchMissTitle: "Tool anfragen",
searchMissContext: "Du hast gesucht nach: {query}",
searchMissDiscussionsFallback:
"Das konnten wir nicht speichern. Stelle eine Anfrage in Discussions.",
offlineDescription:
"Für diese Instanz ist die Analyse deaktiviert, daher wird Feedback hier nicht erfasst. Du kannst das SnapOtter-Team weiterhin direkt erreichen.",
offlinePublicNote: "GitHub-Issues sind öffentlich.",
offlineGithubButton: "Ein GitHub-Issue öffnen",
offlineEmailButton: "Schreib uns",
thanksTitle: "Danke für dein Feedback.",
thanksDescription:
"Es hilft uns, SnapOtter zu verbessern, ohne Dateien oder private Inhalte zu erfassen.",
quickThanks: "Danke für die Rückmeldung.",
reportIssue: "Problem melden",
toolPromptTitle: "Wie hat dieses Tool funktioniert?",
toolPromptDescription: "Eine kurze Rückmeldung hilft uns, SnapOtter zu verbessern.",
dismissPrompt: "Feedback-Hinweis ausblenden",
workedWell: "Hat gut funktioniert",
dontAskAgain: "Nicht mehr fragen",
shareFeedback: "Feedback geben",
remindLater: "Später erinnern",
adminCardTitle: "Wie lief die Einrichtung?",
adminCardDescription:
"Eine kurze Rückmeldung von Admins hilft uns, Docker, Quell-Installationen und die Dokumentation zu verbessern.",
installMethodLabel: "Installationsmethode",
frictionAreaLabel: "Schwierigster Bereich der Einrichtung",
importantAreasLabel: "Wichtigste Bereiche",
sentiments: {
great: "Super",
okay: "Okay",
issue: "Hatte ein Problem",
missing: "Etwas fehlt",
bug: "Fehler",
idea: "Idee",
other: "Sonstiges",
},
types: {
bug: "Fehler",
feature_request: "Funktionswunsch",
confusing_ux: "Verwirrende Bedienung",
performance: "Performance",
other: "Sonstiges",
},
installMethods: {
docker: "Docker",
docker_compose: "Docker Compose",
source: "Aus Quellcode gebaut",
cloud: "Cloud/Demo",
other: "Sonstiges",
},
usageTypes: {
personal: "Nur ich",
team_internal: "Kleines Team",
business_workflow: "Unternehmen oder Organisation",
education: "Bildung",
evaluating: "Evaluierung",
},
frictionAreas: {
smooth: "Nichts, die Einrichtung lief reibungslos",
docker: "Docker-/Container-Einrichtung",
environment_variables: "Umgebungsvariablen",
auth: "Authentifizierung/SSO",
storage: "Speicher/Uploads",
workers: "Worker/Warteschlangen",
ai_tools: "AI-Tools",
docs: "Dokumentation",
performance: "Performance/Ressourcen",
other: "Sonstiges",
},
importantAreas: {
images: "Bilder",
pdf_docs: "PDF/Dokumente",
video_audio: "Video/Audio",
batch_workflows: "Stapel-Workflows",
ai_tools: "AI-Tools",
},
priorTools: {
online_tools: "Online-Tools",
desktop_apps: "Desktop-Programme (Photoshop, GIMP)",
command_line: "Kommandozeile (ffmpeg, ImageMagick)",
self_hosted: "Ein anderes selbstgehostetes Tool",
nothing: "Nichts, das ist neu für mich",
},
selfHostMotivations: {
privacy_control: "Datenschutz und Datenkontrolle",
upload_limits: "Upload-Limits und Wasserzeichen",
cost: "Kosten",
offline: "Offline oder abgeschottet",
trying: "Ich probiere es nur aus",
},
discoverySources: {
github: "GitHub",
reddit_hn: "Reddit oder Hacker News",
search: "Suchmaschine",
word_of_mouth: "Freund oder Kollege",
other: "Sonstiges",
},
},
onboarding: {
usageSurveyTitle: "Wie nutzt du SnapOtter?",
priorToolLabel: "Was hast du vorher verwendet?",
selfHostMotivationLabel: "Warum selbst hosten?",
discoverySourceLabel: "Wie hast du von uns erfahren?",
optionalHint: "(optional)",
continueLabel: "Weiter",
},
categories: {
essentials: "Grundlagen",
adjustments: "Anpassungen",
enhance: "Verbessern & AI",
watermark: "Wasserzeichen & Overlay",
layout: "Layout & Komposition",
utilities: "Hilfswerkzeuge",
optimization: "Optimierung",
format: "Format & Konvertierung",
"video-edit": "Video",
"video-convert": "Konvertieren",
"video-effects": "Effekte & Zusammensetzen",
"video-subtitles": "Untertitel",
"video-metadata": "Metadaten",
"audio-edit": "Bearbeiten",
"audio-convert": "Konvertieren",
"audio-effects": "Effekte & Zusammensetzen",
"audio-metadata": "Metadaten",
"pdf-organize": "Organisieren",
"pdf-edit": "Bearbeiten & Annotieren",
"pdf-security": "Sicherheit",
"pdf-optimize": "Optimieren",
"doc-convert": "Konvertieren",
data: "Dateien",
archives: "Archive",
},
modalities: {
image: "Bild",
video: "Video",
audio: "Audio",
documentsAndFiles: "PDF & Dateien",
},
tools: {
// BEGIN conversion-presets (generated by scripts/generate-conversion-i18n.mjs)
"jpg-to-png": {
name: "JPG in PNG umwandeln",
description: "JPG online in PNG umwandeln. Schnell, kostenlos und privat.",
},
"png-to-jpg": {
name: "PNG in JPG umwandeln",
description: "PNG online in JPG umwandeln. Schnell, kostenlos und privat.",
},
"jpg-to-webp": {
name: "JPG in WebP umwandeln",
description: "JPG online in WebP umwandeln. Schnell, kostenlos und privat.",
},
"png-to-webp": {
name: "PNG in WebP umwandeln",
description: "PNG online in WebP umwandeln. Schnell, kostenlos und privat.",
},
"webp-to-jpg": {
name: "WebP in JPG umwandeln",
description: "WebP online in JPG umwandeln. Schnell, kostenlos und privat.",
},
"webp-to-png": {
name: "WebP in PNG umwandeln",
description: "WebP online in PNG umwandeln. Schnell, kostenlos und privat.",
},
"jpg-to-avif": {
name: "JPG in AVIF umwandeln",
description: "JPG online in AVIF umwandeln. Schnell, kostenlos und privat.",
},
"png-to-avif": {
name: "PNG in AVIF umwandeln",
description: "PNG online in AVIF umwandeln. Schnell, kostenlos und privat.",
},
"webp-to-avif": {
name: "WebP in AVIF umwandeln",
description: "WebP online in AVIF umwandeln. Schnell, kostenlos und privat.",
},
"heic-to-jpg": {
name: "HEIC in JPG umwandeln",
description: "HEIC online in JPG umwandeln. Schnell, kostenlos und privat.",
},
"heic-to-png": {
name: "HEIC in PNG umwandeln",
description: "HEIC online in PNG umwandeln. Schnell, kostenlos und privat.",
},
"heic-to-avif": {
name: "HEIC in AVIF umwandeln",
description: "HEIC online in AVIF umwandeln. Schnell, kostenlos und privat.",
},
"jpg-to-gif": {
name: "JPG in GIF umwandeln",
description: "JPG online in GIF umwandeln. Schnell, kostenlos und privat.",
},
"png-to-gif": {
name: "PNG in GIF umwandeln",
description: "PNG online in GIF umwandeln. Schnell, kostenlos und privat.",
},
"gif-to-jpg": {
name: "GIF in JPG umwandeln",
description: "GIF online in JPG umwandeln. Schnell, kostenlos und privat.",
},
"gif-to-png": {
name: "GIF in PNG umwandeln",
description: "GIF online in PNG umwandeln. Schnell, kostenlos und privat.",
},
"webp-to-gif": {
name: "WebP in GIF umwandeln",
description: "WebP online in GIF umwandeln. Schnell, kostenlos und privat.",
},
"jpg-to-tiff": {
name: "JPG in TIFF umwandeln",
description: "JPG online in TIFF umwandeln. Schnell, kostenlos und privat.",
},
"png-to-tiff": {
name: "PNG in TIFF umwandeln",
description: "PNG online in TIFF umwandeln. Schnell, kostenlos und privat.",
},
"tiff-to-jpg": {
name: "TIFF in JPG umwandeln",
description: "TIFF online in JPG umwandeln. Schnell, kostenlos und privat.",
},
"tiff-to-png": {
name: "TIFF in PNG umwandeln",
description: "TIFF online in PNG umwandeln. Schnell, kostenlos und privat.",
},
"psd-to-jpg": {
name: "PSD in JPG umwandeln",
description: "PSD online in JPG umwandeln. Schnell, kostenlos und privat.",
},
"psd-to-png": {
name: "PSD in PNG umwandeln",
description: "PSD online in PNG umwandeln. Schnell, kostenlos und privat.",
},
"png-to-eps": {
name: "PNG in EPS umwandeln",
description: "PNG online in EPS umwandeln. Schnell, kostenlos und privat.",
},
"jpg-to-eps": {
name: "JPG in EPS umwandeln",
description: "JPG online in EPS umwandeln. Schnell, kostenlos und privat.",
},
"eps-to-png": {
name: "EPS in PNG umwandeln",
description: "EPS online in PNG umwandeln. Schnell, kostenlos und privat.",
},
"eps-to-jpg": {
name: "EPS in JPG umwandeln",
description: "EPS online in JPG umwandeln. Schnell, kostenlos und privat.",
},
"png-to-svg": {
name: "PNG in SVG umwandeln",
description: "PNG online in SVG umwandeln. Schnell, kostenlos und privat.",
},
"jpg-to-svg": {
name: "JPG in SVG umwandeln",
description: "JPG online in SVG umwandeln. Schnell, kostenlos und privat.",
},
"tiff-to-svg": {
name: "TIFF in SVG umwandeln",
description: "TIFF online in SVG umwandeln. Schnell, kostenlos und privat.",
},
"psd-to-svg": {
name: "PSD in SVG umwandeln",
description: "PSD online in SVG umwandeln. Schnell, kostenlos und privat.",
},
"eps-to-svg": {
name: "EPS in SVG umwandeln",
description: "EPS online in SVG umwandeln. Schnell, kostenlos und privat.",
},
"svg-to-png": {
name: "SVG in PNG umwandeln",
description: "SVG online in PNG umwandeln. Schnell, kostenlos und privat.",
},
"svg-to-jpg": {
name: "SVG in JPG umwandeln",
description: "SVG online in JPG umwandeln. Schnell, kostenlos und privat.",
},
"jpg-to-pdf": {
name: "JPG in PDF umwandeln",
description: "JPG online in PDF umwandeln. Schnell, kostenlos und privat.",
},
"png-to-pdf": {
name: "PNG in PDF umwandeln",
description: "PNG online in PDF umwandeln. Schnell, kostenlos und privat.",
},
"heic-to-pdf": {
name: "HEIC in PDF umwandeln",
description: "HEIC online in PDF umwandeln. Schnell, kostenlos und privat.",
},
"tiff-to-pdf": {
name: "TIFF in PDF umwandeln",
description: "TIFF online in PDF umwandeln. Schnell, kostenlos und privat.",
},
"webp-to-pdf": {
name: "WebP in PDF umwandeln",
description: "WebP online in PDF umwandeln. Schnell, kostenlos und privat.",
},
"gif-to-pdf": {
name: "GIF in PDF umwandeln",
description: "GIF online in PDF umwandeln. Schnell, kostenlos und privat.",
},
"eps-to-pdf": {
name: "EPS in PDF umwandeln",
description: "EPS online in PDF umwandeln. Schnell, kostenlos und privat.",
},
"pdf-to-jpg": {
name: "PDF in JPG umwandeln",
description: "PDF online in JPG umwandeln. Schnell, kostenlos und privat.",
},
"pdf-to-png": {
name: "PDF in PNG umwandeln",
description: "PDF online in PNG umwandeln. Schnell, kostenlos und privat.",
},
"pdf-to-tiff": {
name: "PDF in TIFF umwandeln",
description: "PDF online in TIFF umwandeln. Schnell, kostenlos und privat.",
},
"mov-to-mp4": {
name: "MOV in MP4 umwandeln",
description: "MOV online in MP4 umwandeln. Schnell, kostenlos und privat.",
},
"webm-to-mp4": {
name: "WEBM in MP4 umwandeln",
description: "WEBM online in MP4 umwandeln. Schnell, kostenlos und privat.",
},
"mkv-to-mp4": {
name: "MKV in MP4 umwandeln",
description: "MKV online in MP4 umwandeln. Schnell, kostenlos und privat.",
},
"avi-to-mp4": {
name: "AVI in MP4 umwandeln",
description: "AVI online in MP4 umwandeln. Schnell, kostenlos und privat.",
},
"mp4-to-mov": {
name: "MP4 in MOV umwandeln",
description: "MP4 online in MOV umwandeln. Schnell, kostenlos und privat.",
},
"mp4-to-webm": {
name: "MP4 in WEBM umwandeln",
description: "MP4 online in WEBM umwandeln. Schnell, kostenlos und privat.",
},
"webm-to-mov": {
name: "WEBM in MOV umwandeln",
description: "WEBM online in MOV umwandeln. Schnell, kostenlos und privat.",
},
"mkv-to-mov": {
name: "MKV in MOV umwandeln",
description: "MKV online in MOV umwandeln. Schnell, kostenlos und privat.",
},
"avi-to-mov": {
name: "AVI in MOV umwandeln",
description: "AVI online in MOV umwandeln. Schnell, kostenlos und privat.",
},
"mp4-to-avi": {
name: "MP4 in AVI umwandeln",
description: "MP4 online in AVI umwandeln. Schnell, kostenlos und privat.",
},
"mov-to-avi": {
name: "MOV in AVI umwandeln",
description: "MOV online in AVI umwandeln. Schnell, kostenlos und privat.",
},
"mkv-to-avi": {
name: "MKV in AVI umwandeln",
description: "MKV online in AVI umwandeln. Schnell, kostenlos und privat.",
},
"avi-to-mkv": {
name: "AVI in MKV umwandeln",
description: "AVI online in MKV umwandeln. Schnell, kostenlos und privat.",
},
"mp4-to-gif": {
name: "MP4 in GIF umwandeln",
description: "MP4 online in GIF umwandeln. Schnell, kostenlos und privat.",
},
"mov-to-gif": {
name: "MOV in GIF umwandeln",
description: "MOV online in GIF umwandeln. Schnell, kostenlos und privat.",
},
"mkv-to-gif": {
name: "MKV in GIF umwandeln",
description: "MKV online in GIF umwandeln. Schnell, kostenlos und privat.",
},
"avi-to-gif": {
name: "AVI in GIF umwandeln",
description: "AVI online in GIF umwandeln. Schnell, kostenlos und privat.",
},
"gif-to-mp4": {
name: "GIF in MP4 umwandeln",
description: "GIF online in MP4 umwandeln. Schnell, kostenlos und privat.",
},
"gif-to-webm": {
name: "GIF in WEBM umwandeln",
description: "GIF online in WEBM umwandeln. Schnell, kostenlos und privat.",
},
"gif-to-mov": {
name: "GIF in MOV umwandeln",
description: "GIF online in MOV umwandeln. Schnell, kostenlos und privat.",
},
"mp4-to-mp3": {
name: "MP4 in MP3 umwandeln",
description: "MP4 online in MP3 umwandeln. Schnell, kostenlos und privat.",
},
"mov-to-mp3": {
name: "MOV in MP3 umwandeln",
description: "MOV online in MP3 umwandeln. Schnell, kostenlos und privat.",
},
"mkv-to-mp3": {
name: "MKV in MP3 umwandeln",
description: "MKV online in MP3 umwandeln. Schnell, kostenlos und privat.",
},
"webm-to-mp3": {
name: "WEBM in MP3 umwandeln",
description: "WEBM online in MP3 umwandeln. Schnell, kostenlos und privat.",
},
"avi-to-mp3": {
name: "AVI in MP3 umwandeln",
description: "AVI online in MP3 umwandeln. Schnell, kostenlos und privat.",
},
"mp4-to-wav": {
name: "MP4 in WAV umwandeln",
description: "MP4 online in WAV umwandeln. Schnell, kostenlos und privat.",
},
"mov-to-wav": {
name: "MOV in WAV umwandeln",
description: "MOV online in WAV umwandeln. Schnell, kostenlos und privat.",
},
"mp4-to-ogg": {
name: "MP4 in OGG umwandeln",
description: "MP4 online in OGG umwandeln. Schnell, kostenlos und privat.",
},
"m4a-to-mp3": {
name: "M4A in MP3 umwandeln",
description: "M4A online in MP3 umwandeln. Schnell, kostenlos und privat.",
},
"m4a-to-wav": {
name: "M4A in WAV umwandeln",
description: "M4A online in WAV umwandeln. Schnell, kostenlos und privat.",
},
"aac-to-mp3": {
name: "AAC in MP3 umwandeln",
description: "AAC online in MP3 umwandeln. Schnell, kostenlos und privat.",
},
"aac-to-wav": {
name: "AAC in WAV umwandeln",
description: "AAC online in WAV umwandeln. Schnell, kostenlos und privat.",
},
"aac-to-flac": {
name: "AAC in FLAC umwandeln",
description: "AAC online in FLAC umwandeln. Schnell, kostenlos und privat.",
},
"ogg-to-mp3": {
name: "OGG in MP3 umwandeln",
description: "OGG online in MP3 umwandeln. Schnell, kostenlos und privat.",
},
"ogg-to-wav": {
name: "OGG in WAV umwandeln",
description: "OGG online in WAV umwandeln. Schnell, kostenlos und privat.",
},
"wav-to-mp3": {
name: "WAV in MP3 umwandeln",
description: "WAV online in MP3 umwandeln. Schnell, kostenlos und privat.",
},
"mp3-to-wav": {
name: "MP3 in WAV umwandeln",
description: "MP3 online in WAV umwandeln. Schnell, kostenlos und privat.",
},
"flac-to-mp3": {
name: "FLAC in MP3 umwandeln",
description: "FLAC online in MP3 umwandeln. Schnell, kostenlos und privat.",
},
"excel-to-csv": {
name: "Excel in CSV umwandeln",
description: "Excel online in CSV umwandeln. Schnell, kostenlos und privat.",
},
// END conversion-presets
resize: {
name: "Bildgröße ändern",
description: "Größe nach Pixeln, Prozent oder Social-Media-Vorlagen ändern",
},
crop: {
name: "Bild zuschneiden",
description: "Freies Zuschneiden, Seitenverhältnis-Vorlagen, Formzuschnitt",
},
rotate: {
name: "Bild drehen & spiegeln",
description: "Bilder drehen, spiegeln und begradigen",
},
convert: {
name: "Bild konvertieren",
description: "Zwischen Bildformaten konvertieren",
},
compress: {
name: "Bild komprimieren",
description: "Dateigröße durch Qualität oder Zielgröße reduzieren",
},
"optimize-for-web": {
name: "Für Web optimieren",
description:
"Bilder für das Web optimieren mit Formatkonvertierung, Qualitätssteuerung und Vorschau",
},
"strip-metadata": {
name: "Bildmetadaten entfernen",
description: "EXIF-, GPS- und Kamerainformationen entfernen",
},
"edit-metadata": {
name: "Bildmetadaten bearbeiten",
description: "EXIF, IPTC, XMP, GPS, Schlüsselwörter 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 zusammenfügen",
},
"pdf-to-image": {
name: "PDF zu Bild",
description: "PDF-Seiten in Bilder konvertieren",
},
favicon: {
name: "Favicon-Generator",
description: "Alle Favicon- und App-Symbolgrößen generieren",
},
"adjust-colors": {
name: "Farben anpassen",
description: "Helligkeit, Kontrast, Belichtung, Sättigung, Temperatur, Schärfe und Effekte",
},
sharpening: {
name: "Bild schärfen",
description: "Adaptives, Unscharf-Maskieren- und Hochpass-Schärfen 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 Farbsehschwächen erscheinen",
},
"remove-background": {
name: "Hintergrund entfernen",
description: "AI-gestützte Hintergrundentfernung",
},
upscale: {
name: "Bildskalierung",
description: "AI-Superauflösung zur Bildverbesserung",
},
"erase-object": {
name: "Objektentferner",
description: "Unerwünschte Objekte mit AI entfernen",
},
ocr: {
name: "Text aus Bild extrahieren (OCR)",
description: "Text aus Bildern mit AI-gestützter Genauigkeit extrahieren",
},
"ocr-pdf": {
name: "PDF-OCR",
description: "Text aus PDF-Dokumenten mit KI-gestützter OCR extrahieren",
},
"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 Schärfekorrektur",
},
"noise-removal": {
name: "Rauschentfernung",
description: "AI-gestützte Rausch- und Körnungsentfernung",
},
"red-eye-removal": {
name: "Rote-Augen-Korrektur",
description: "AI-gestützte Rote-Augen-Erkennung und -Korrektur für Blitzfotos",
},
"restore-photo": {
name: "Fotorestaurierung",
description: "Kratzer, Risse und Schäden an alten Fotos mit AI reparieren",
},
"content-aware-resize": {
name: "Inhaltsabhängige Größenänderung",
description: "Bilder intelligent skalieren und wichtige Inhalte beibehalten",
},
"ai-canvas-expand": {
name: "AI-Leinwanderweiterung",
description: "Leinwand mit AI-gestützter Füllung erweitern",
},
colorize: {
name: "AI-Kolorierung",
description: "Schwarz-Weiß-Fotos mit AI-Deep-Learning-Modellen in Vollfarbe umwandeln",
},
"passport-photo": {
name: "Passfoto",
description:
"Normgerechte Pass-, Visa- und Ausweisfotos mit automatischer Gesichtserkennung erstellen",
},
"transcribe-audio": {
name: "Audio transkribieren",
description: "Sprache mit KI-gestützter Transkription in Text umwandeln",
},
"auto-subtitles": {
name: "Automatische Untertitel",
description: "Untertiteldateien aus Video-Audiospuren generieren",
},
"transparency-fixer": {
name: "PNG-Transparenzkorrektur",
description: "Unechte transparente PNGs mit einem Klick reparieren",
},
"background-replace": {
name: "Hintergrund ersetzen",
description: "Bildhintergrund durch eine einfarbige Fläche ersetzen",
},
"blur-background": {
name: "Hintergrund unscharf",
description: "Hintergrund unscharf stellen und Motiv scharf halten",
},
"watermark-text": {
name: "Text-Wasserzeichen",
description: "Text-Wasserzeichen hinzufügen",
},
"watermark-image": {
name: "Bild-Wasserzeichen",
description: "Logo als Wasserzeichen überlagern",
},
"text-overlay": {
name: "Textüberlagerung",
description: "Formatierten Text auf Bilder legen",
},
compose: {
name: "Bildkomposition",
description: "Bilder mit Position und Deckkraft übereinanderlegen",
},
"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",
},
"html-to-image": {
name: "HTML zu Bild",
description: "Webseiten als hochwertige Bilder aufnehmen",
},
"barcode-read": {
name: "Barcode-Leser",
description: "Bilder nach QR-Codes, Barcodes und 2D-Codes scannen",
},
collage: {
name: "Collage & Raster",
description: "Bilder in Rastercollages mit über 25 Vorlagen zusammenfügen",
},
stitch: {
name: "Bilder zusammenfügen",
description: "Bilder nebeneinander, gestapelt oder im Raster verbinden",
},
split: {
name: "Bild aufteilen",
description: "Bilder in Rasterkacheln oder nach Pixelgröße aufteilen mit Vorschau",
},
border: {
name: "Rahmen & Rand",
description:
"Ränder, Abstände, abgerundete Ecken und Schatten mit Ein-Klick-Vorlagen hinzufügen",
},
beautify: {
name: "Screenshot verschönern",
description:
"Verlaufshintergründe, Geräterahmen, Schatten und Social-Media-Formate für Screenshots",
},
"circle-crop": {
name: "Kreiszuschnitt",
description: "Bild auf einen zentrierten Kreis mit transparenten Ecken zuschneiden",
},
"rounded-crop": {
name: "Abgerundeter Zuschnitt",
description:
"Bild auf ein abgerundetes Quadrat oder Squircle mit transparenten Ecken zuschneiden",
},
duotone: {
name: "Duotone",
description: "Zweifarbigen Duotone-Effekt mit eigenen Schatten- und Lichtfarben anwenden",
},
"image-pad": {
name: "Bild auffüllen",
description: "Bild auf ein Seitenverhältnis mit einfarbigem Hintergrund auffüllen",
},
pixelate: {
name: "Verpixeln",
description: "Verpixelungseffekt auf das gesamte Bild oder einen bestimmten Bereich anwenden",
},
vignette: {
name: "Vignette",
description: "Vignetteneffekt mit einstellbarer Stärke und Farbe hinzufügen",
},
"gif-webp": {
name: "GIF/WebP-Konverter",
description:
"Animiertes GIF in WebP und umgekehrt konvertieren, alle Einzelbilder bleiben erhalten",
},
histogram: {
name: "Histogramm",
description: "RGB-Histogramm aus einem Bild erstellen",
},
"lqip-placeholder": {
name: "LQIP-Platzhalter",
description: "Kleinen Platzhalter in niedriger Qualität mit Base64-Data-URI erstellen",
},
"sprite-sheet": {
name: "Sprite-Sheet",
description: "Mehrere Bilder zu einem Sprite-Sheet-Raster zusammenfügen",
},
"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 ändern, 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",
},
"barcode-generate": {
name: "Barcode-Generator",
description: "Barcodes in Code 128, EAN-13, UPC-A, Code 39, ITF-14 und Data Matrix erstellen",
},
"chart-maker": {
name: "Diagramm-Ersteller",
description: "Balken-, Linien- oder Kreisdiagramme aus CSV- oder JSON-Daten erstellen",
},
"convert-video": {
name: "Video konvertieren",
description: "Videos zwischen MP4, MOV und WebM konvertieren",
},
"compress-video": {
name: "Video komprimieren",
description: "Videodateigröße mit Qualitätskontrolle reduzieren",
},
"trim-video": {
name: "Video schneiden",
description: "Einen Ausschnitt aus einem Video schneiden",
},
"mute-video": {
name: "Video stummschalten",
description: "Audiospur aus einem Video entfernen",
},
"video-to-gif": {
name: "Video zu GIF",
description: "Videoclip in ein animiertes GIF umwandeln",
},
"resize-video": {
name: "Video skalieren",
description: "Video auf eine neue Auflösung oder voreingestellte Größe skalieren",
},
"crop-video": {
name: "Video zuschneiden",
description: "Einen Bereich aus einem Video zuschneiden",
},
"rotate-video": {
name: "Video drehen",
description: "Video drehen oder spiegeln",
},
"change-fps": {
name: "FPS ändern",
description: "Bildrate eines Videos ändern",
},
"video-color": {
name: "Videofarbe",
description: "Helligkeit, Kontrast, Sättigung und Gamma anpassen",
},
"video-speed": {
name: "Videogeschwindigkeit",
description: "Video beschleunigen oder verlangsamen",
},
"reverse-video": {
name: "Video rückwärts",
description: "Videoclip rückwärts abspielen",
},
"video-loudnorm": {
name: "Videoaudio normalisieren",
description: "Audio-Lautstärke des Videos auf Sendestandard normalisieren",
},
"aspect-pad": {
name: "Seitenverhältnis auffüllen",
description: "Einfarbige Balken für ein bestimmtes Seitenverhältnis hinzufügen",
},
"blur-pad": {
name: "Weichzeichner-Auffüllung",
description: "Balken mit einer unscharfen Kopie des Videos füllen",
},
"watermark-video": {
name: "Video-Wasserzeichen",
description: "Text-Wasserzeichen in Videobilder einbrennen",
},
"stabilize-video": {
name: "Video stabilisieren",
description: "Kamerawackeln mit Zwei-Pass-Stabilisierung reduzieren",
},
"gif-to-video": {
name: "GIF zu Video",
description: "Animiertes GIF in ein MP4- oder WebM-Video konvertieren",
},
"video-to-webp": {
name: "Video zu WebP",
description: "Videoclip in ein animiertes WebP-Bild konvertieren",
},
"video-to-frames": {
name: "Video zu Einzelbildern",
description: "Einzelbilder aus einem Video als ZIP mit Bildern extrahieren",
},
"merge-videos": {
name: "Videos zusammenführen",
description: "Mehrere Videoclips zu einer Datei zusammenführen",
},
"replace-audio": {
name: "Audio ersetzen",
description: "Audiospur eines Videos durch eine andere Datei ersetzen",
},
"burn-subtitles": {
name: "Untertitel einbrennen",
description: "Untertitel dauerhaft in Videobilder einbrennen",
},
"embed-subtitles": {
name: "Untertitel einbetten",
description: "Untertitelspur in den Videocontainer einbetten",
},
"extract-subtitles": {
name: "Untertitel extrahieren",
description: "Untertitelspur aus einem Video als SRT-Datei extrahieren",
},
"images-to-video": {
name: "Bilder zu Video",
description: "Bildersammlung in ein Diashow-Video umwandeln",
},
"video-metadata": {
name: "Video-Metadaten bereinigen",
description: "Metadaten aus einem Video entfernen und Ergebnis anzeigen",
},
"convert-audio": {
name: "Audio konvertieren",
description: "Audio zwischen MP3, WAV, OGG und weiteren Formaten konvertieren",
},
"trim-audio": {
name: "Audio schneiden",
description: "Einen Abschnitt aus einer Audiodatei schneiden",
},
"extract-audio": {
name: "Audio extrahieren",
description: "Audiospur aus einem Video extrahieren",
},
"volume-adjust": {
name: "Lautstärke anpassen",
description: "Audio-Lautstärke um einen festen Wert erhöhen oder verringern",
},
"normalize-audio": {
name: "Audio normalisieren",
description: "Lautstärke auf Sendestandard-Pegel angleichen",
},
"fade-audio": {
name: "Audio ein-/ausblenden",
description: "Ein- und Ausblendeffekte zu Audio hinzufügen",
},
"reverse-audio": {
name: "Audio rückwärts",
description: "Audio rückwärts abspielen",
},
"audio-speed": {
name: "Audiogeschwindigkeit",
description: "Audiowiedergabe beschleunigen oder verlangsamen",
},
"pitch-shift": {
name: "Tonhöhe ändern",
description: "Tonhöhe um Halbtöne anheben oder absenken, ohne das Tempo zu ändern",
},
"audio-channels": {
name: "Audiokanäle",
description: "Zwischen Mono und Stereo konvertieren oder linken und rechten Kanal tauschen",
},
"silence-removal": {
name: "Stille entfernen",
description: "Stille Abschnitte aus Audio entfernen",
},
"noise-reduction": {
name: "Rauschunterdrückung",
description: "Hintergrundgeräusche mit FFT-basierter Entrauschung reduzieren",
},
"merge-audio": {
name: "Audio zusammenführen",
description: "Mehrere Audiodateien zu einer zusammenführen",
},
"split-audio": {
name: "Audio aufteilen",
description: "Audio nach Zeit, gleichen Teilen oder Stille-Erkennung aufteilen",
},
"ringtone-maker": {
name: "Klingelton-Ersteller",
description: "Klingelton aus einer beliebigen Audiodatei erstellen",
},
"waveform-image": {
name: "Wellenform-Bild",
description: "Wellenform-Visualisierung als PNG-Bild erstellen",
},
"audio-metadata": {
name: "Audio-Metadaten",
description: "Audio-Tags (ID3) anzeigen, bearbeiten oder entfernen",
},
"merge-pdf": {
name: "PDFs zusammenführen",
description: "Mehrere PDFs zu einem zusammenführen",
},
"split-pdf": {
name: "PDF aufteilen",
description: "Seiten extrahieren oder in Teile aufteilen",
},
"compress-pdf": {
name: "PDF komprimieren",
description: "PDF-Dateigröße reduzieren",
},
"rotate-pdf": {
name: "PDF drehen",
description: "Seiten in einem PDF drehen",
},
"convert-document": {
name: "Dokument konvertieren",
description: "Zwischen Word, OpenDocument, RTF und Nur-Text-Formaten konvertieren",
},
"convert-presentation": {
name: "Präsentation konvertieren",
description: "Zwischen PowerPoint- und OpenDocument-Präsentationsformaten konvertieren",
},
"convert-spreadsheet": {
name: "Tabelle konvertieren",
description:
"Zwischen Excel, OpenDocument und CSV konvertieren. Bei Arbeitsmappen mit mehreren Blättern wird das erste Blatt als CSV exportiert.",
},
"excel-to-pdf": {
name: "Excel zu PDF",
description:
"Tabellen zu PDF konvertieren. Breite Blätter werden ggf. auf mehrere Seiten verteilt.",
},
"word-to-pdf": {
name: "Word zu PDF",
description: "Word-Dokumente zu PDF konvertieren",
},
"extract-pages": {
name: "Seiten extrahieren",
description: "Ausgewählte Seiten in ein neues PDF extrahieren",
},
"remove-pages": {
name: "Seiten entfernen",
description: "Bestimmte Seiten aus einem PDF entfernen",
},
"organize-pdf": {
name: "PDF organisieren",
description: "Seiten mit festgelegter Reihenfolge neu ordnen",
},
"protect-pdf": {
name: "PDF schützen",
description: "Passwortschutz hinzufügen (AES-256-Verschlüsselung)",
},
"unlock-pdf": {
name: "PDF entsperren",
description: "Passwortschutz von einem PDF entfernen",
},
"repair-pdf": {
name: "PDF reparieren",
description: "Beschädigtes oder fehlerhaftes PDF reparieren",
},
"linearize-pdf": {
name: "PDF für Web optimieren",
description: "PDF für schnelle Webanzeige linearisieren",
},
"grayscale-pdf": {
name: "PDF in Graustufen",
description: "Alle Farben in Graustufen konvertieren",
},
"pdfa-convert": {
name: "PDF/A-Konverter",
description: "In Archivformat PDF/A-2 konvertieren",
},
"crop-pdf": {
name: "PDF zuschneiden",
description: "Alle Seiten mit einheitlichem Rand zuschneiden",
},
"nup-pdf": {
name: "Seiten pro Blatt (N-up)",
description: "Mehrere Seiten pro Blatt anordnen",
},
"booklet-pdf": {
name: "Broschüren-PDF",
description: "Seiten zum Falten als Broschüre anordnen",
},
"watermark-pdf": {
name: "PDF-Wasserzeichen",
description: "Text-Wasserzeichen auf jede Seite hinzufügen",
},
"pdf-page-numbers": {
name: "PDF-Seitenzahlen",
description: "Seitenzahlen auf jede Seite hinzufügen",
},
"flatten-pdf": {
name: "PDF reduzieren",
description: "Formulare und Anmerkungen in den Seiteninhalt einbetten",
},
"redact-pdf": {
name: "PDF schwärzen",
description: "Textvorkommen dauerhaft entfernen (verifizierte Schwärzung)",
},
"pdf-to-text": {
name: "PDF zu Text",
description: "Nur-Text aus einem PDF extrahieren",
},
"pdf-to-word": {
name: "PDF zu Word",
description: "Ideal für textbasierte PDFs; gescannte Seiten benötigen OCR",
},
"pdf-metadata": {
name: "PDF-Metadaten",
description: "PDF-Dokumentmetadaten lesen und schreiben",
},
"powerpoint-to-pdf": {
name: "PowerPoint zu PDF",
description: "Präsentationen zu PDF konvertieren",
},
"html-to-pdf": {
name: "HTML zu PDF",
description:
"HTML-Datei zu PDF konvertieren. Externe Ressourcen sind aus Datenschutzgründen deaktiviert.",
},
"markdown-to-docx": {
name: "Markdown zu Word",
description: "Markdown-Datei in ein Word-Dokument (DOCX) konvertieren",
},
"markdown-to-html": {
name: "Markdown zu HTML",
description:
"Markdown-Datei in eine eigenständige HTML-Seite konvertieren. Externe Bilder im Quelltext bleiben in der Ausgabe unverändert.",
},
"markdown-to-pdf": {
name: "Markdown zu PDF",
description:
"Markdown-Datei in ein gestaltetes PDF konvertieren. Externe Ressourcen sind aus Datenschutzgründen deaktiviert.",
},
"epub-convert": {
name: "Aus EPUB konvertieren",
description:
"EPUB in PDF, DOCX, HTML oder Markdown konvertieren. Externe Ressourcen im Buch werden nicht geladen.",
},
"to-epub": {
name: "Zu EPUB konvertieren",
description: "Word-, Markdown-, HTML- oder Nur-Text-Dateien zu EPUB konvertieren",
},
"csv-excel": {
name: "CSV zu Excel",
description: "Zwischen CSV und Excel (XLSX) konvertieren, in beide Richtungen",
},
"csv-json": {
name: "CSV zu JSON",
description: "Zwischen CSV und JSON konvertieren, in beide Richtungen",
},
"json-xml": {
name: "JSON zu XML",
description: "Zwischen JSON und XML konvertieren, in beide Richtungen",
},
"split-csv": {
name: "CSV aufteilen",
description: "CSV nach Zeilenanzahl in kleinere Dateien aufteilen",
},
"merge-csvs": {
name: "CSVs zusammenführen",
description: "Mehrere CSV- oder TSV-Dateien mit übereinstimmenden Spalten zusammenführen",
},
"yaml-json": {
name: "YAML / JSON konvertieren",
description: "Zwischen YAML und JSON konvertieren, in beide Richtungen",
},
"xml-to-csv": {
name: "XML zu CSV",
description: "Wiederkehrende Elemente aus XML in eine CSV-Tabelle extrahieren",
},
"create-zip": {
name: "ZIP erstellen",
description: "Mehrere Dateien in ein einzelnes ZIP-Archiv bündeln",
},
"extract-zip": {
name: "ZIP entpacken",
description:
"Dateien sicher aus einem ZIP-Archiv mit Bomben-Schutz entpacken. Archive mit einer einzelnen Datei geben die Datei direkt zurück.",
},
pipeline: {
name: "Pipeline-Builder",
description: "Mehrere Werkzeuge zu einem Workflow verketten",
},
processing: { canceled: "Verarbeitung abgebrochen" },
mediaPlayer: {
unsupported: "Ihr Browser unterstützt dieses Medienformat nicht.",
},
documentView: {
loadFailed: "Dokument konnte nicht geladen werden.",
previousPage: "Vorherige Seite",
nextPage: "Nächste Seite",
inputNotPreviewable: "Vorschau für diesen Dateityp nicht verfügbar",
},
},
toolSettings: {
compress: {
compressionMode: "Komprimierungsmodus",
targetSize: "Zielgröße",
quality: "Qualität",
smallestFile: "Kleinste Datei",
bestQuality: "Beste Qualität",
submit: "Komprimieren",
submitBatch: "Komprimieren ({count} Dateien)",
progressLabel: "Wird komprimiert",
original: "Original: {size} KB",
processed: "Verarbeitet: {size} KB",
saved: "Gespart: {percent}%",
},
resize: {
customSize: "Benutzerdefinierte Größe",
scale: "Skalierung",
presets: "Vorlagen",
contentAware: "Inhaltsabhängig",
aspectRatio: "Seitenverhältnis",
ratioFree: "Frei",
ratioOriginal: "Original",
widthPx: "Breite (px)",
heightPx: "Höhe (px)",
fitMode: "Anpassungsmodus",
cropToFit: "Zuschneiden",
fitInside: "Einpassen",
stretch: "Strecken",
limitToOriginalSize: "Auf Originalgröße begrenzen",
limitToOriginalSizeHint:
"Wenn Ihr Bild bereits kleiner als die Zielgröße ist, bleibt es unverändert statt hochskaliert zu werden",
scalePercent: "Skalierung (%)",
resizeToSquare: "Quadratisch skalieren",
protectFaces: "Gesichter schützen",
smoothing: "Glättung",
edgeSensitivity: "Kantenempfindlichkeit",
submit: "Größe ändern",
submitBatch: "Größe ändern ({count} Dateien)",
progressLabel: "Größe wird geändert",
},
crop: {
aspectRatio: "Seitenverhältnis",
custom: "Benutzerdefiniert",
positionAndSize: "Position & Größe",
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 Änderungen zurücksetzen",
submit: "Anwenden",
submitBatch: "Anwenden ({count} Dateien)",
progressLabel: "Wird angewendet",
},
convert: {
targetFormat: "Zielformat",
sourceFormat: "Quellformat",
quality: "Qualität",
submit: "Konvertieren",
submitBatch: "Konvertieren ({count} Dateien)",
progressLabel: "Wird konvertiert",
},
"optimize-for-web": {
outputFormat: "Ausgabeformat",
quality: "Qualität",
smallestFile: "Kleinste Datei",
bestQuality: "Beste Qualität",
maxDimensions: "Maximale Abmessungen",
maxWidth: "Maximale Breite",
maxHeight: "Maximale Höhe",
stripMetadata: "Metadaten entfernen",
sizeComparison: "Größenvergleich",
optimized: "Optimiert:",
smaller: "{percent}% kleiner",
larger: "{percent}% größer",
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 auswählen:",
stripExif: "EXIF entfernen (Kamerainformationen, Datum, Belichtung)",
stripGps: "GPS entfernen (Standortdaten)",
stripIcc: "ICC entfernen (Farbprofil)",
stripXmp: "XMP entfernen (erweiterte Metadaten)",
locationFound: "Standort gefunden",
viewOnMap: "Auf Karte anzeigen",
locationWarning:
"Dieses Bild enthält Ihren genauen Standort. Erwägen 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: "Künstler",
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: "Änderungsdatum",
dateTaken: "Aufnahmedatum",
shiftHint:
"Alle Datumsfelder um einen Versatz verschieben (nützlich für Zeitzonenkorrekturen)",
direction: "Richtung",
forward: "+ Vorwärts",
backward: "- Rückwärts",
hoursMinutes: "Stunden:Minuten",
locationGps: "Standort (GPS)",
locationDataFound: "Standortdaten gefunden",
noGpsData: "Keine GPS-Daten. Koordinaten unten hinzufügen.",
latitude: "Breitengrad",
longitude: "Längengrad",
altitudeMeters: "Höhe (Meter)",
removeAllGpsData: "Alle GPS-Daten entfernen",
keywords: "Schlüsselwörter",
addKeywordPlaceholder: "Schlüsselwort eingeben und Enter drücken",
addToExisting: "Zu vorhandenen hinzufügen",
replaceAll: "Alle ersetzen",
allMetadata: "Alle Metadaten",
templates: "Vorlagen",
templateNamePlaceholder: "Vorlagenname",
uploadPrompt: "Laden Sie ein Bild hoch, um seine Metadaten zu bearbeiten.",
changes: "{count} Änderungen:",
modified: "{count} geändert",
removed: "{count} entfernt",
gpsCleared: "GPS gelöscht",
gpsAdded: "GPS hinzugefügt",
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 läuft...",
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 zusammenfügen",
pageSize: "Seitengröße",
orientation: "Ausrichtung",
portrait: "Hochformat",
landscape: "Querformat",
margin: "Rand",
targetSizeLabel: "Zieldateigröße (optional)",
targetSizePlaceholder: "z. B. 2",
targetSizeHint: "Leer lassen für maximale Qualität",
targetSizeMet: "Ziel erreicht",
targetSizeNotMet:
"Ziel konnte nicht erreicht werden. Datei auf minimale Qualität komprimiert.",
targetSizeTooSmall: "Zielgröße muss mindestens 50KB betragen",
jpegQualityLabel: "Verwendete JPEG-Qualität",
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 Auswählen klicken",
readingPdf: "PDF wird gelesen...",
pageCount: "{count} Seite",
pageCountPlural: "{count} Seiten",
outputFormat: "Ausgabeformat",
quality: "Qualität",
resolutionDpi: "Auflösung (DPI)",
dpiScreen: "Bildschirm",
dpiStandard: "Standard",
dpiPrint: "Druck",
dpiHighQuality: "Hohe Qualität",
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 größer), um alle Favicon- und App-Symbolgrößen zu generieren.",
multipleHint: "Jedes der {count} Bilder erhält einen eigenen Ordner im ZIP.",
generatedSizes: "Generierte Größen (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: "Sättigung",
temperature: "Temperatur",
temperatureHint: "kühl / warm",
tint: "Tönung",
tintHint: "grün / magenta",
hue: "Farbton",
detail: "Detail",
sharpness: "Schärfe",
effects: "Effekte",
none: "Keine",
grayscale: "Graustufen",
sepia: "Sepia",
invert: "Invertieren",
colorChannels: "Farbkanäle",
channelModified: "geändert",
red: "Rot",
green: "Grün",
blue: "Blau",
resetAll: "Alles zurücksetzen",
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: "Stärke",
strength: "Intensität",
noiseReduction: "Rauschreduzierung",
off: "Aus",
lightDenoise: "Leicht",
mediumDenoise: "Mittel",
strongDenoise: "Stark",
advancedControls: "Erweiterte Steuerung",
radius: "Radius",
flatProtection: "Flächenschutz",
detailThreshold: "Detailschwelle",
haloLimitLight: "Halogrenze (Hell)",
haloLimitDark: "Halogrenze (Dunkel)",
threshold: "Schwellenwert",
kernelSize: "Kerngröße",
submit: "Schärfen",
submitBatch: "Schärfen ({count} Dateien)",
progressLabel: "Wird geschärft",
},
"replace-color": {
sourceColor: "Quellfarbe (zu ersetzen)",
targetColor: "Zielfarbe (Ersatz)",
makeTransparent: "Stattdessen transparent machen",
tolerance: "Toleranz",
exactMatch: "Exakte Übereinstimmung",
wideRange: "Breiter Bereich",
submit: "Farbe ersetzen",
submitBatch: "Farbe ersetzen ({count} Dateien)",
progressLabel: "Farbe wird ersetzt",
},
"color-blindness": {
simulationType: "Simulationstyp",
redGreen: "Rot-Grün",
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: "Qualität",
fast: "Schnell",
hd: "HD",
max: "Max",
ultra: "Ultra",
background: "Hintergrund",
transparent: "Transparent",
bgColor: "Farbe",
gradient: "Verlauf",
image: "Bild",
gradientDirection: "Richtung",
chooseBackgroundImage: "Hintergrundbild auswählen",
effectsSection: "Effekte",
effectsActive: "aktiv",
blurBackground: "Hintergrund weichzeichnen",
intensity: "Intensität",
addShadow: "Schatten hinzufügen",
opacity: "Deckkraft",
outputFormat: "Ausgabeformat",
edgeSmoothing: "Kantenglättung",
edgeSmoothingOff: "Aus",
edgeSmoothingLight: "Leicht",
edgeSmoothingMedium: "Mittel",
edgeSmoothingStrong: "Stark",
colorDecontamination: "Farbbereinigung",
rendering: "Wird gerendert...",
submit: "Hintergrund entfernen",
submitBatch: "Hintergrund entfernen ({count} Dateien)",
progressLabel: "Hintergrund wird entfernt",
cpuNote: "Nutzt ein KI-Modell. Ohne GPU kann ein großes Bild eine Weile dauern.",
},
"remove-gif-background": {
quality: "Qualität",
qualityFast: "Schnell",
qualityBalanced: "Ausgewogen",
qualityBest: "Beste",
qualityNote:
"Jedes Bild durchläuft das Modell, daher ist höhere Qualität bei langen Clips deutlich langsamer.",
outputFormat: "Ausgabeformat",
formatWebp: "WebP",
formatApng: "APNG",
formatGif: "GIF",
formatWebpHint: "WebP und APNG behalten weiche, vollständige Transparenz.",
gifCaveat: "GIF unterstützt nur 1-Bit-Transparenz, daher wirken die Kanten hart.",
background: "Hintergrund",
bgTransparent: "Transparent",
bgColor: "Farbe",
bgGradient: "Verlauf",
bgBlur: "Weichzeichnen",
bgImage: "Bild",
gradientStart: "Anfang",
gradientEnd: "Ende",
gradientAngle: "Winkel ({deg}°)",
blurStrength: "Weichzeichnungsstärke ({value})",
shadow: "Schatten hinzufügen",
shadowStrength: "Schattendeckkraft ({value})",
advanced: "Erweitert",
edgeRefine: "Kantenverfeinerung (Stufe {level})",
edgeRefineOff: "Kantenverfeinerung: aus",
decontaminate: "Farbüberlauf entfernen",
uploadBg: "Hintergrundbild hochladen",
frameNote:
"Jedes Bild wird verarbeitet, daher sind lange Animationen langsam. Eine GPU wird empfohlen.",
submit: "Hintergrund entfernen",
submitBatch: "Hintergrund entfernen ({count} Dateien)",
progressLabel: "Hintergrund wird aus Bildern entfernt",
download: "Herunterladen",
},
upscale: {
scaleFactor: "Skalierungsfaktor",
quality: "Qualität",
enhanceFaces: "Gesichter verbessern",
noiseReduction: "Rauschreduzierung",
noiseReductionHint:
"Glättet Körnung und Rauschen. Höhere Werte entfernen mehr Rauschen, können aber Details aufweichen.",
outputFormat: "Ausgabeformat",
submit: "Hochskalieren {scale}x",
submitBatch: "Hochskalieren {scale}x ({count} Dateien)",
progressLabel: "Bild wird hochskaliert",
progressLabelBatch: "{count} Bilder werden hochskaliert",
cpuNote:
"KI-Hochskalierung ist rechenintensiv. Ohne GPU kann ein großes Bild mehrere Minuten dauern.",
},
"erase-object": {
qualityFast: "Schnell",
qualityHq: "Hohe Qualität",
qualityHint: "Hohe Qualität nutzt ein Diffusionsmodell für große Objekte und feine Texturen.",
brushMode: "Pinsel",
lassoMode: "Lasso",
brushSize: "Pinselgröße",
fine: "Fein",
wide: "Breit",
undo: "Rückgängig",
clear: "Leeren",
outputFormat: "Ausgabeformat",
quality: "Qualität",
paintHint:
"Malen Sie über die Objekte, die Sie entfernen möchten. Strg+Z zum Rückgängigmachen.",
lassoHint:
"Ziehen Sie eine Schlaufe um das Objekt, das Sie entfernen möchten. Strg+Z zum Rückgängigmachen.",
submit: "Objekt entfernen",
submitBatch: "Alle entfernen ({count})",
progressLabel: "Objekt wird entfernt",
},
ocr: {
quality: "Qualität",
enhanceBeforeScanning: "Vor dem Scannen verbessern",
enhanceHint:
"Verbessert den lokalen Kontrast vor der Erkennung. Schnell wendet dies direkt an; Ausgewogen und Beste Qualität übernehmen die Variante nur, wenn die kalibrierte Bewertung das Ergebnis verbessert.",
fastKoreanUnsupported:
"Schnelles OCR unterstützt Koreanisch nicht. Installiere das Paket für präzises OCR und wähle Ausgewogen oder Beste Qualität.",
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",
},
"ocr-pdf": {
quality: "Qualität",
language: "Sprache",
autoDetect: "Automatisch erkennen",
pages: "Seiten",
pagesPlaceholder: "alle, 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",
},
"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: "Qualität",
enhancementStrength: "Verbesserungsstärke",
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 Größe",
socialPresets: "Social-Media-Vorlagen",
detectionStrategy: "Erkennungsstrategie",
detectionStrategyHint:
"Aufmerksamkeit findet den visuell auffälligsten Bereich. Entropie findet den Bereich mit den meisten Details.",
attention: "Aufmerksamkeit",
entropy: "Entropie",
padding: "Abstand",
paddingHint: "Zusätzlicher Freiraum um den Fokusbereich",
outputQuality: "Ausgabequalität",
outputQualityHint: "Für JPEG- und WebP-Ausgaben. PNG ist immer verlustfrei.",
subjectDescription:
"Erkennt den interessantesten Bereich per Salienzanalyse und schneidet auf die Zielgröße zu.",
framing: "Bildausschnitt",
facePadding: "Gesichtsabstand",
facePaddingHint: "Zusätzlicher Raum um erkannte Gesichter",
fewerFalsePositives: "Weniger Fehlerkennungen",
faceDescription:
"Verwendet AI-Gesichtserkennung, um Gesichter korrekt im Bild zu halten. Bei fehlender Erkennung wird auf Motivfokus zurückgegriffen.",
trimTolerance: "Toleranz",
trimDescription:
"Wie stark sich ein Randpixel von der Kantenfarbe unterscheiden darf und trotzdem beschnitten wird. Höher = aggressiver.",
padToSquare: "Auf Quadrat auffüllen",
targetSizePx: "Zielgröße (px)",
padColor: "Auffüllfarbe",
trimHint:
'Entfernt einfarbige Ränder um Ihr Motiv. Aktivieren Sie "Auf Quadrat auffüllen" für E-Commerce-Bilder.',
submitSubject: "Intelligenter Zuschnitt",
submitFace: "Gesichtszuschnitt",
submitTrim: "Ränder beschneiden",
},
imageEnhancement: {
enhancementMode: "Verbesserungsmodus",
auto: "Automatisch",
portrait: "Porträt",
landscape: "Landschaft",
lowLight: "Schwaches Licht",
food: "Lebensmittel",
document: "Dokument",
intensity: "Intensität",
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 Intensitätsregler.",
issueUnderexposed: "Unterbelichtet",
issueOverexposed: "Überbelichtet",
issueLowContrast: "Flacher Kontrast",
issueColorCast: "Farbstich",
issueDesaturated: "Entsättigt",
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: "Qualität",
maximum: "Maximum",
quickDesc: "Schnell, ressourcenschonend",
balancedDesc: "Gute Qualität, moderate Geschwindigkeit",
qualityDesc: "AI-gestützt, langsam",
maximumDesc: "Bestes AI-Modell, am langsamsten",
strength: "Stärke",
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. Für 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: "Korrekturstärke",
subtle: "Dezent",
dark: "Dunkel",
outputFormat: "Ausgabeformat",
quality: "Qualität",
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: "Beschädigte Gesichter mit CodeFormer-AI wiederherstellen",
faceFidelity: "Gesichtstreue",
enhanced: "Verbessert",
faithful: "Originalgetreu",
noiseReduction: "Rauschreduzierung",
noiseReductionDesc: "Körnung und Rauschen aus alten Fotos entfernen",
denoiseStrength: "Entrauschungsstärke",
autoColorize: "Automatisch kolorieren",
autoColorizeDesc: "Farbe zu S/W-Fotos mit DDColor-AI hinzufügen",
colorizeStrength: "Kolorierungsstärke",
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: "Höhe (px)",
resizeToSquare: "Quadratisch skalieren",
protectFaces: "Gesichter schützen",
protectFacesHint:
"Gesichtsbereiche per Gesichtserkennung erkennen und vor Nahtentfernung schützen",
smoothing: "Glättung",
edgeSensitivity: "Kantenempfindlichkeit",
submit: "Größe ändern",
submitBatch: "Größe ändern ({count} Dateien)",
progressLabel: "Inhaltsabhängige Größenänderung",
},
"ai-canvas-expand": {
quality: "Qualität",
fast: "Schnell",
balanced: "Ausgewogen",
highQuality: "Hohe Qualität",
fastDesc: "Schnelle Vorschau, weniger AI-Durchläufe",
balancedDesc: "Gute Qualität, moderate Geschwindigkeit",
highQualityDesc: "Beste Ergebnisse, langsamer",
extendToAspectRatio: "Auf Seitenverhältnis erweitern",
extendByPixels: "Erweitern um (Pixel)",
top: "Oben",
right: "Rechts",
bottom: "Unten",
left: "Links",
newSize: "Neue Größe: {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: "Bestmögliche Qualität",
best: "Beste",
bestDesc: "Höchste Qualität",
colorIntensity: "Farbintensität",
grayscaleLabel: "Graustufen",
subtleLabel: "Dezent",
naturalLabel: "Natürlich",
vividLabel: "Lebhaft",
intensityHint: "Niedrigere Werte erzeugen gedämpftere Farben im Vintage-Stil.",
strength: "Kolorierungsstärke",
submit: "Kolorieren",
submitBatch: "Kolorieren ({count} Dateien)",
progressLabel: "Wird koloriert",
progressLabelBatch: "{count} Bilder werden koloriert",
},
"passport-photo": {
country: "Land",
searchCountries: "Länder suchen...",
noCountriesFound: "Keine Länder gefunden",
customDimensions: "Benutzerdefinierte Maße",
documentType: "Dokumenttyp",
dimensionsMm: "Abmessungen (mm)",
dpi: "DPI",
pixelsPerInch: "Pixel pro Zoll",
backgroundColor: "Hintergrundfarbe",
maxFileSize: "Maximale Dateigröße",
noLimit: "Kein Limit",
customKb: "Benutzerdefiniert (KB)...",
uploadPortrait: "Porträtfoto 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: "Gesichtsgröße",
whatYouSee: "Was Sie sehen, wird heruntergeladen",
dragToAdjust: "Ziehen zum Anpassen",
scrollToZoom: "Scrollen zum Zoomen",
photoGenerated: "Foto generiert. Laden Sie es im linken Bereich herunter.",
},
"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",
},
"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",
},
"background-replace": {
color: "Hintergrundfarbe",
submit: "Hintergrund ersetzen",
submitBatch: "Hintergrund ersetzen ({count} Dateien)",
progressLabel: "Hintergrund wird ersetzt",
},
"blur-background": {
intensity: "Unschärfe-Intensität",
submit: "Hintergrund unscharf stellen",
submitBatch: "Hintergrund unscharf stellen ({count} Dateien)",
progressLabel: "Hintergrund wird unscharf gestellt",
},
"watermark-text": {
watermarkText: "Wasserzeichen-Text",
fontSize: "Schriftgröße",
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 hinzufügen",
submitBatch: "Wasserzeichen hinzufügen ({count} Dateien)",
progressLabel: "Wasserzeichen wird hinzugefügt",
},
"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: "Schriftgröße",
color: "Farbe",
position: "Position",
top: "Oben",
center: "Mitte",
bottom: "Unten",
backgroundBox: "Hintergrundfeld",
backgroundColor: "Hintergrundfarbe",
shadow: "Schatten",
submit: "Text hinzufügen",
submitBatch: "Text hinzufügen ({count} Dateien)",
progressLabel: "Textüberlagerung wird hinzugefügt",
download: "Herunterladen",
defaultText: "Ihr Text hier",
},
compose: {
uploadOverlay: "Overlay-Bild hochladen",
xPosition: "X-Position",
yPosition: "Y-Position",
opacity: "Deckkraft",
blendMode: "Mischmodus",
submit: "Zusammenfügen",
},
"meme-generator": {
selectTemplate:
"Wählen Sie eine Vorlage aus der Galerie oder laden Sie Ihr eigenes Bild hoch.",
chooseLayout: "Wählen Sie ein Textlayout für Ihr Bild.",
textContent: "Textinhalt",
textStyle: "Textstil",
font: "Schriftart",
fontSize: "Schriftgröße",
textColor: "Textfarbe",
strokeColor: "Konturfarbe",
allCaps: "GROSSBUCHSTABEN",
generate: "Meme erstellen",
generating: "Wird erstellt...",
downloadMeme: "Meme herunterladen",
backToGallery: "Zurück zur Galerie",
},
info: {
loadingInfo: "Informationen werden geladen...",
filename: "Dateiname",
fileSize: "Dateigröße",
dimensions: "Abmessungen",
format: "Format",
channels: "Kanäle",
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",
readInfo: "Info lesen",
reading: "Wird gelesen...",
channelStats: "Kanalstatistiken",
yes: "Ja",
no: "Nein",
na: "N/V",
failedToRead: "Info konnte nicht gelesen werden",
},
compare: {
uploadSecondImage: "Zweites Bild hochladen",
similarity: "Ähnlichkeit: {percent}%",
submit: "Vergleichen",
downloadDiff: "Differenz herunterladen",
},
"find-duplicates": {
preset: "Vorlage",
exact: "Exakt",
similar: "Ähnlich",
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",
},
"html-to-image": {
modeUrl: "URL",
modeHtml: "HTML-Datei",
htmlFile: "HTML-Datei",
url: "URL",
urlPlaceholder: "https://snapotter.com",
format: "Ausgabeformat",
quality: "Qualität",
devicePreset: "Gerät",
viewportWidth: "Breite",
viewportHeight: "Höhe",
fullPage: "Ganze Seite",
submit: "Aufnehmen",
download: "Screenshot herunterladen",
capturing: "Webseite wird aufgenommen...",
errorTimeout: "Seite hat zu lange zum Laden gebraucht",
errorBlocked: "Diese URL kann nicht aufgenommen werden",
errorUnavailable: "Screenshot-Dienst ist nicht verfügbar",
errorFailed: "Seite konnte nicht aufgenommen werden",
placeholder: "URL eingeben und auf Aufnehmen klicken",
presets: {
desktop: "Desktop",
tablet: "Tablet",
mobile: "Mobil",
custom: "Benutzerdefiniert",
},
},
"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: "Seitenverhältnis",
gap: "Abstand",
cornerRadius: "Eckenradius",
backgroundColor: "Hintergrundfarbe",
outputFormat: "Ausgabeformat",
quality: "Qualität",
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: "Qualität",
submit: "Bilder zusammenfügen",
},
split: {
modeGrid: "Raster",
modeTileSize: "Kachelgröße",
presets: "Vorlagen",
columns: "Spalten",
rows: "Zeilen",
tileWidth: "Kachelbreite",
tileHeight: "Kachelhöhe",
outputFormat: "Ausgabeformat",
quality: "Qualität",
submit: "Bild aufteilen",
downloadAll: "Alle herunterladen (ZIP)",
},
border: {
presets: "Vorlagen",
borderWidth: "Randbreite",
borderColor: "Randfarbe",
padding: "Abstand",
paddingColor: "Abstandsfarbe",
cornerRadius: "Eckenradius",
shadow: "Schatten",
shadowBlur: "Schattenunschärfe",
shadowOffsetX: "Schattenversatz X",
shadowOffsetY: "Schattenversatz Y",
shadowColor: "Schattenfarbe",
shadowOpacity: "Schattendeckkraft",
submit: "Rand hinzufügen",
submitBatch: "Rand hinzufügen ({count} Dateien)",
progressLabel: "Rand wird hinzugefügt",
},
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: "Geräterahmen",
submit: "Verschönern",
submitBatch: "Verschönern ({count} Dateien)",
progressLabel: "Screenshot wird verschönert",
},
"circle-crop": {
submit: "Kreiszuschnitt",
submitBatch: "Kreiszuschnitt ({count} Dateien)",
progressLabel: "Wird kreisförmig zugeschnitten",
},
"rounded-crop": {
submit: "Abgerundeter Zuschnitt",
submitBatch: "Abgerundeter Zuschnitt ({count} Dateien)",
progressLabel: "Wird abgerundet zugeschnitten",
},
duotone: {
shadow: "Schattenfarbe",
highlight: "Lichtfarbe",
submit: "Duotone anwenden",
submitBatch: "Duotone anwenden ({count} Dateien)",
progressLabel: "Duotone wird angewendet",
},
"image-pad": {
target: "Zielverhältnis",
color: "Hintergrundfarbe",
submit: "Bild auffüllen",
submitBatch: "Bild auffüllen ({count} Dateien)",
progressLabel: "Bild wird aufgefüllt",
},
pixelate: {
blockSize: "Blockgröße",
submit: "Verpixeln",
submitBatch: "Verpixeln ({count} Dateien)",
progressLabel: "Wird verpixelt",
},
vignette: {
strength: "Stärke",
color: "Vignettenfarbe",
submit: "Vignette anwenden",
submitBatch: "Vignette anwenden ({count} Dateien)",
progressLabel: "Vignette wird angewendet",
},
"gif-webp": {
submit: "Konvertieren",
submitBatch: "Konvertieren ({count} Dateien)",
progressLabel: "Animation wird konvertiert",
},
histogram: {
submit: "Histogramm erstellen",
submitBatch: "Histogramm erstellen ({count} Dateien)",
progressLabel: "Histogramm wird erstellt",
},
"lqip-placeholder": {
width: "Breite",
blur: "Unschärfe",
submit: "Platzhalter erstellen",
submitBatch: "Platzhalter erstellen ({count} Dateien)",
progressLabel: "Platzhalter wird erstellt",
},
"sprite-sheet": {
columns: "Spalten",
padding: "Abstand",
background: "Hintergrundfarbe",
submit: "Sprite-Sheet erstellen",
submitBatch: "Sprite-Sheet erstellen",
progressLabel: "Sprite-Sheet wird erstellt",
},
"svg-to-raster": {
outputFormat: "Ausgabeformat",
sizing: "Größe",
scaleMode: "Skalierung",
customMode: "Benutzerdefiniert",
scalePresets: "Skalierungsvorlagen",
dpiPresets: "DPI-Vorlagen",
customWidth: "Breite (px)",
customHeight: "Höhe (px)",
background: "Hintergrund",
bgTransparent: "Transparent",
bgColor: "Farbe",
quality: "Qualität",
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: "Farbpräzision",
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: "Größe ändern",
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: "Qualität",
maxWidth: "Maximale Breite",
maxHeight: "Maximale Höhe",
submit: "In Base64 konvertieren",
submitBatch: "Konvertieren ({count} Dateien)",
copyBase64: "Base64 kopieren",
copyDataUri: "Data-URI kopieren",
copyImgTag: "<img>-Tag kopieren",
copyCssUrl: "CSS url() kopieren",
},
"barcode-generate": {
text: "Text",
type: "Barcode-Typ",
scale: "Skalierung",
includeText: "Text einblenden",
submit: "Barcode erstellen",
download: "Barcode herunterladen",
},
"chart-maker": {
kind: "Diagrammtyp",
title: "Titel",
width: "Breite",
height: "Höhe",
submit: "Diagramm erstellen",
submitBatch: "Diagramm erstellen ({count} Dateien)",
progressLabel: "Diagramm wird erstellt",
},
"enhance-faces-standalone": {
model: "Modell",
fast: "Schnell",
balanced: "Ausgewogen",
best: "Beste",
},
"convert-video": {
format: "Ausgabeformat",
quality: "Qualität",
high: "Hoch",
balanced: "Ausgewogen",
small: "Kleinste",
submit: "Konvertieren",
submitBatch: "Konvertieren ({count} Dateien)",
progressLabel: "Wird konvertiert",
},
"compress-video": {
quality: "Komprimierung",
light: "Leicht",
balanced: "Ausgewogen",
strong: "Stark",
resolution: "Auflösung",
original: "Original",
submit: "Komprimieren",
submitBatch: "Komprimieren ({count} Dateien)",
progressLabel: "Wird komprimiert",
},
"trim-video": {
start: "Start (Sekunden)",
end: "Ende (Sekunden)",
precise: "Bildgenau (neu kodiert)",
submit: "Kürzen",
submitBatch: "Kürzen ({count} Dateien)",
progressLabel: "Wird gekürzt",
},
"mute-video": {
submit: "Audio entfernen",
submitBatch: "Audio entfernen ({count} Dateien)",
progressLabel: "Audio wird entfernt",
},
"video-to-gif": {
fps: "Bilder pro Sekunde",
width: "Breite (px)",
start: "Start (Sekunden)",
duration: "Dauer (Sekunden)",
submit: "GIF erstellen",
submitBatch: "GIFs erstellen ({count} Dateien)",
progressLabel: "GIF wird erstellt",
},
"resize-video": {
preset: "Voreinstellung",
width: "Breite (px)",
height: "Höhe (px)",
hint: "Ein Feld leer lassen, um das Seitenverhältnis beizubehalten",
submit: "Skalieren",
submitBatch: "Skalieren ({count} Dateien)",
progressLabel: "Wird skaliert",
},
"crop-video": {
width: "Breite (px)",
height: "Höhe (px)",
x: "X-Versatz",
y: "Y-Versatz",
submit: "Zuschneiden",
submitBatch: "Zuschneiden ({count} Dateien)",
progressLabel: "Wird zugeschnitten",
},
"rotate-video": {
transform: "Transformation",
cw90: "90° im Uhrzeigersinn drehen",
ccw90: "90° gegen den Uhrzeigersinn drehen",
rotate180: "180° drehen",
hflip: "Horizontal spiegeln",
vflip: "Vertikal spiegeln",
submit: "Drehen",
submitBatch: "Drehen ({count} Dateien)",
progressLabel: "Wird gedreht",
},
"change-fps": {
fps: "Bilder pro Sekunde",
submit: "FPS ändern",
submitBatch: "FPS ändern ({count} Dateien)",
progressLabel: "FPS wird geändert",
},
"video-color": {
brightness: "Helligkeit",
contrast: "Kontrast",
saturation: "Sättigung",
gamma: "Gamma",
submit: "Anwenden",
submitBatch: "Anwenden ({count} Dateien)",
progressLabel: "Farbe wird angepasst",
},
"video-speed": {
factor: "Geschwindigkeitsfaktor",
keepPitch: "Originaltonhöhe beibehalten",
submit: "Geschwindigkeit ändern",
submitBatch: "Geschwindigkeit ändern ({count} Dateien)",
progressLabel: "Geschwindigkeit wird geändert",
},
"reverse-video": {
hint: "Begrenzt auf Clips bis zu 5 Minuten",
submit: "Umkehren",
submitBatch: "Umkehren ({count} Dateien)",
progressLabel: "Wird umgekehrt",
},
"video-loudnorm": {
hint: "Normalisiert Audio auf den EBU-R128-Sendestandard",
submit: "Normalisieren",
submitBatch: "Normalisieren ({count} Dateien)",
progressLabel: "Wird normalisiert",
},
"aspect-pad": {
target: "Zielverhältnis",
color: "Hintergrundfarbe",
colorHint: "HEX-Farbe, z. B. #000000",
submit: "Auffüllen",
submitBatch: "Auffüllen ({count} Dateien)",
progressLabel: "Wird aufgefüllt",
},
"blur-pad": {
target: "Zielverhältnis",
blur: "Unschärfestärke",
submit: "Auffüllen",
submitBatch: "Auffüllen ({count} Dateien)",
progressLabel: "Wird aufgefüllt",
},
"watermark-video": {
text: "Wasserzeichentext",
position: "Position",
fontSize: "Schriftgröße",
opacity: "Deckkraft",
color: "Farbe",
colorHint: "HEX-Farbe, z. B. #ffffff",
submit: "Wasserzeichen",
submitBatch: "Wasserzeichen ({count} Dateien)",
progressLabel: "Wasserzeichen wird hinzugefügt",
},
"stabilize-video": {
smoothing: "Glättung",
hint: "Benötigt zwei Durchläufe und dauert länger als die meisten Werkzeuge",
submit: "Stabilisieren",
submitBatch: "Stabilisieren ({count} Dateien)",
progressLabel: "Wird stabilisiert",
},
"gif-to-video": {
format: "Ausgabeformat",
submit: "Konvertieren",
submitBatch: "Konvertieren ({count} Dateien)",
progressLabel: "Wird konvertiert",
},
"video-to-webp": {
fps: "Bilder pro Sekunde",
width: "Breite (px)",
quality: "Qualität",
loop: "Animation wiederholen",
submit: "Konvertieren",
submitBatch: "Konvertieren ({count} Dateien)",
progressLabel: "Wird konvertiert",
},
"video-to-frames": {
mode: "Extraktionsmodus",
modeAll: "Alle Einzelbilder",
modeNth: "Jedes N-te Einzelbild",
modeTimestamps: "Bestimmte Zeitstempel",
n: "Jedes N-te Einzelbild extrahieren",
timestamps: "Zeitstempel (Sekunden)",
timestampsHint: "Kommagetrennt, z. B. 0.5, 2, 4.5",
format: "Bildformat",
submit: "Einzelbilder extrahieren",
submitBatch: "Einzelbilder extrahieren ({count} Dateien)",
progressLabel: "Einzelbilder werden extrahiert",
},
"merge-videos": {
hint: "Dateien werden in der Reihenfolge des Uploads zusammengefügt",
submit: "Zusammenfügen",
submitBatch: "Zusammenfügen ({count} Dateien)",
progressLabel: "Wird zusammengefügt",
},
"replace-audio": {
hint: "Zuerst das Video, dann die Audiodatei hochladen",
submit: "Audio ersetzen",
submitBatch: "Audio ersetzen ({count} Dateien)",
progressLabel: "Audio wird ersetzt",
},
"burn-subtitles": {
fontSize: "Schriftgröße",
hint: "Ein Video und eine Untertiteldatei (.srt oder .vtt) hochladen",
submit: "Untertitel einbrennen",
submitBatch: "Untertitel einbrennen ({count} Dateien)",
progressLabel: "Untertitel werden eingebrannt",
},
"embed-subtitles": {
language: "Sprachcode",
languageHint: "Dreistelliger ISO-639-2-Code, z. B. eng, spa, fra",
submit: "Untertitel einbetten",
submitBatch: "Untertitel einbetten ({count} Dateien)",
progressLabel: "Untertitel werden eingebettet",
},
"extract-subtitles": {
submit: "Untertitel extrahieren",
submitBatch: "Untertitel extrahieren ({count} Dateien)",
progressLabel: "Untertitel werden extrahiert",
},
"images-to-video": {
secondsPerImage: "Sekunden pro Bild",
resolution: "Auflösung",
fps: "Bilder pro Sekunde",
submit: "Video erstellen",
submitBatch: "Video erstellen ({count} Dateien)",
progressLabel: "Diashow wird erstellt",
},
"video-metadata": {
hint: "Metadatenbericht erscheint im Ergebnis",
submit: "Metadaten entfernen",
submitBatch: "Metadaten entfernen ({count} Dateien)",
progressLabel: "Metadaten werden entfernt",
},
"convert-audio": {
format: "Ausgabeformat",
bitrate: "Bitrate (kbps)",
sampleRate: "Abtastrate (Hz)",
sampleRatePreserve: "Original beibehalten",
submit: "Konvertieren",
submitBatch: "Konvertieren ({count} Dateien)",
progressLabel: "Wird konvertiert",
},
"trim-audio": {
start: "Start (Sekunden)",
end: "Ende (Sekunden)",
submit: "Kürzen",
submitBatch: "Kürzen ({count} Dateien)",
progressLabel: "Wird gekürzt",
},
"extract-audio": {
format: "Ausgabeformat",
submit: "Extrahieren",
submitBatch: "Extrahieren ({count} Dateien)",
progressLabel: "Wird extrahiert",
},
"volume-adjust": {
"gain-db": "Verstärkung (dB)",
submit: "Lautstärke anpassen",
submitBatch: "Lautstärke anpassen ({count} Dateien)",
progressLabel: "Lautstärke wird angepasst",
},
"normalize-audio": {
hint: "EBU R128 Lautheitsnormalisierung",
submit: "Normalisieren",
submitBatch: "Normalisieren ({count} Dateien)",
progressLabel: "Wird normalisiert",
},
"fade-audio": {
"fade-in-s": "Einblenden (Sekunden)",
"fade-out-s": "Ausblenden (Sekunden)",
submit: "Blende anwenden",
submitBatch: "Blende anwenden ({count} Dateien)",
progressLabel: "Blende wird angewendet",
},
"reverse-audio": {
submit: "Umkehren",
submitBatch: "Umkehren ({count} Dateien)",
progressLabel: "Wird umgekehrt",
},
"audio-speed": {
factor: "Geschwindigkeitsfaktor",
submit: "Geschwindigkeit ändern",
submitBatch: "Geschwindigkeit ändern ({count} Dateien)",
progressLabel: "Geschwindigkeit wird geändert",
},
"pitch-shift": {
semitones: "Halbtöne",
hint: "0 Halbtöne ist nicht erlaubt",
submit: "Tonhöhe verschieben",
submitBatch: "Tonhöhe verschieben ({count} Dateien)",
progressLabel: "Tonhöhe wird verschoben",
},
"audio-channels": {
mode: "Kanalmodus",
"stereo-to-mono": "Stereo zu Mono",
"mono-to-stereo": "Mono zu Stereo",
swap: "Links/Rechts tauschen",
submit: "Kanäle konvertieren",
submitBatch: "Kanäle konvertieren ({count} Dateien)",
progressLabel: "Kanäle werden konvertiert",
},
"silence-removal": {
"threshold-db": "Stilleschwelle (dB)",
"min-silence-s": "Minimale Stilledauer (Sekunden)",
submit: "Stille entfernen",
submitBatch: "Stille entfernen ({count} Dateien)",
progressLabel: "Stille wird entfernt",
},
"noise-reduction": {
strength: "Stärke",
light: "Leicht",
medium: "Mittel",
strong: "Stark",
submit: "Rauschen reduzieren",
submitBatch: "Rauschen reduzieren ({count} Dateien)",
progressLabel: "Rauschen wird reduziert",
},
"merge-audio": {
format: "Ausgabeformat",
mp3: "MP3",
wav: "WAV",
flac: "FLAC",
m4a: "M4A",
"order-hint": "Dateien werden in Upload-Reihenfolge verbunden",
submit: "Audio zusammenführen",
submitBatch: "Audio zusammenführen ({count} Dateien)",
progressLabel: "Audio wird zusammengeführt",
},
"split-audio": {
mode: "Teilungsmodus",
time: "Nach Zeit",
parts: "Gleiche Teile",
silence: "Nach Stille",
"segment-s": "Segmentlänge (Sekunden)",
"num-parts": "Anzahl der Teile",
"threshold-db": "Stilleschwelle (dB)",
"min-silence-s": "Minimale Stilledauer (Sekunden)",
submit: "Audio aufteilen",
submitBatch: "Audio aufteilen ({count} Dateien)",
progressLabel: "Audio wird aufgeteilt",
},
"ringtone-maker": {
"start-s": "Startzeit (Sekunden)",
"duration-s": "Dauer (Sekunden)",
"max-hint": "Maximal 30 Sekunden",
submit: "Klingelton erstellen",
submitBatch: "Klingelton erstellen ({count} Dateien)",
progressLabel: "Klingelton wird erstellt",
},
"waveform-image": {
width: "Breite (px)",
height: "Höhe (px)",
color: "Wellenformfarbe",
submit: "Wellenform erzeugen",
submitBatch: "Wellenform erzeugen ({count} Dateien)",
progressLabel: "Wellenform wird erzeugt",
},
"audio-metadata": {
strip: "Alle Metadaten entfernen",
title: "Titel",
artist: "Künstler",
album: "Album",
submit: "Metadaten anwenden",
submitBatch: "Metadaten anwenden ({count} Dateien)",
progressLabel: "Metadaten werden angewendet",
},
"merge-pdf": {
addFiles: "PDFs zum Zusammenführen hinzufügen",
needTwo: "Mindestens zwei PDFs erforderlich",
orderHint: "{count} PDFs werden in dieser Reihenfolge zusammengeführt",
submit: "Zusammenführen",
submitBatch: "Zusammenführen ({count} Dateien)",
progressLabel: "Wird zusammengeführt",
},
"split-pdf": {
mode: "Teilungsmodus",
range: "Seitenbereich",
rangeHint: "z. B. 1-3, 5, 7-z",
everyN: "Seiten pro Teil",
submit: "Aufteilen",
submitBatch: "Aufteilen ({count} Dateien)",
progressLabel: "Wird aufgeteilt",
},
"compress-pdf": {
preset: "Qualitätsstufe",
screen: "Bildschirm (kleinste)",
ebook: "E-Book (ausgewogen)",
printer: "Drucker (beste Qualität)",
submit: "Komprimieren",
submitBatch: "Komprimieren ({count} Dateien)",
progressLabel: "Wird komprimiert",
bestEffortHint:
"Bestmögliches Maximum. Bildbasierte PDFs kommen nah heran; reine Text-PDFs schrumpfen womöglich nicht auf diese Größe.",
targetReached: "Zielgröße {target} erreicht (Ergebnis: {size}).",
targetMissed:
"{target} konnte nicht erreicht werden. Die kleinstmögliche Größe war {size}, weil dieses PDF überwiegend aus Text oder Vektoren besteht, die die Bildkomprimierung nicht verkleinern kann.",
},
"rotate-pdf": {
angle: "Drehwinkel",
range: "Seitenbereich",
rangeHint: "z. B. 1-3, 5, 1-z (alle Seiten)",
submit: "Drehen",
submitBatch: "Drehen ({count} Dateien)",
progressLabel: "Wird gedreht",
},
"convert-document": {
format: "Ausgabeformat",
submit: "Konvertieren",
submitBatch: "Konvertieren ({count} Dateien)",
progressLabel: "Wird konvertiert",
},
"convert-presentation": {
format: "Ausgabeformat",
submit: "Konvertieren",
submitBatch: "Konvertieren ({count} Dateien)",
progressLabel: "Wird konvertiert",
},
"convert-spreadsheet": {
format: "Ausgabeformat",
hint: "Arbeitsmappen mit mehreren Blättern exportieren nur das erste Blatt als CSV.",
submit: "Konvertieren",
submitBatch: "Konvertieren ({count} Dateien)",
progressLabel: "Wird konvertiert",
},
"excel-to-pdf": {
submit: "In PDF konvertieren",
submitBatch: "Konvertieren ({count} Dateien)",
progressLabel: "Wird konvertiert",
},
"powerpoint-to-pdf": {
submit: "In PDF konvertieren",
submitBatch: "Konvertieren ({count} Dateien)",
progressLabel: "Wird konvertiert",
},
"word-to-pdf": {
submit: "In PDF konvertieren",
submitBatch: "Konvertieren ({count} Dateien)",
progressLabel: "Wird konvertiert",
},
"extract-pages": {
range: "Seitenbereich",
rangeHint: "z. B. 1-3, 5, 7-z",
submit: "Extrahieren",
submitBatch: "Extrahieren ({count} Dateien)",
progressLabel: "Wird extrahiert",
},
"remove-pages": {
pages: "Zu entfernende Seiten",
pagesHint: "z. B. 2, 4-6, z (letzte Seite)",
submit: "Entfernen",
submitBatch: "Entfernen ({count} Dateien)",
progressLabel: "Wird entfernt",
},
"organize-pdf": {
order: "Seitenreihenfolge",
orderHint: "z. B. 3,1,2 oder 1-z (unverändert)",
submit: "Neu anordnen",
submitBatch: "Neu anordnen ({count} Dateien)",
progressLabel: "Wird neu angeordnet",
},
"protect-pdf": {
userPassword: "Benutzerkennwort",
ownerPassword: "Besitzerkennwort (optional)",
ownerPasswordHint: "Standardmäßig das Benutzerkennwort, wenn leer",
submit: "Schützen",
submitBatch: "Schützen ({count} Dateien)",
progressLabel: "Wird verschlüsselt",
},
"unlock-pdf": {
password: "Passwort",
submit: "Entsperren",
submitBatch: "Entsperren ({count} Dateien)",
progressLabel: "Wird entschlüsselt",
},
"repair-pdf": {
submit: "Reparieren",
submitBatch: "Reparieren ({count} Dateien)",
progressLabel: "Wird repariert",
},
"linearize-pdf": {
submit: "Optimieren",
submitBatch: "Optimieren ({count} Dateien)",
progressLabel: "Wird linearisiert",
},
"grayscale-pdf": {
submit: "Konvertieren",
submitBatch: "Konvertieren ({count} Dateien)",
progressLabel: "Wird konvertiert",
},
"pdfa-convert": {
submit: "Konvertieren",
submitBatch: "Konvertieren ({count} Dateien)",
progressLabel: "Wird konvertiert",
},
"crop-pdf": {
margin: "Rand (Punkte)",
submit: "Zuschneiden",
submitBatch: "Zuschneiden ({count} Dateien)",
progressLabel: "Wird zugeschnitten",
},
"nup-pdf": {
perSheet: "Seiten pro Blatt",
submit: "Anordnen",
submitBatch: "Anordnen ({count} Dateien)",
progressLabel: "Wird angeordnet",
},
"booklet-pdf": {
perSheet: "Seiten pro Blatt",
submit: "Broschüre erstellen",
submitBatch: "Broschüre erstellen ({count} Dateien)",
progressLabel: "Broschüre wird erstellt",
},
"watermark-pdf": {
text: "Wasserzeichentext",
position: "Position",
fontSize: "Schriftgröße",
opacity: "Deckkraft",
rotation: "Drehung",
submit: "Wasserzeichen",
submitBatch: "Wasserzeichen ({count} Dateien)",
progressLabel: "Wasserzeichen wird hinzugefügt",
},
"pdf-page-numbers": {
position: "Position",
fontSize: "Schriftgröße",
submit: "Nummerierung hinzufügen",
submitBatch: "Nummerierung hinzufügen ({count} Dateien)",
progressLabel: "Wird nummeriert",
},
"flatten-pdf": {
submit: "Reduzieren",
submitBatch: "Reduzieren ({count} Dateien)",
progressLabel: "Wird reduziert",
},
"sign-pdf": {
yourSignatures: "Ihre Unterschriften",
newSignature: "Neu",
clickToPlace:
"Klicken Sie auf eine Unterschrift, um sie auf der aktuellen Seite zu platzieren.",
selectedSignature: "Ausgewählte Unterschrift",
dragToAdjust: "Ziehen Sie an den Griffen, um die Größe zu ändern oder zu drehen.",
disclaimer:
"Fügt ein sichtbares Unterschriftsbild hinzu. Dies ist keine zertifikatbasierte digitale Signatur.",
signing: "Wird unterschrieben…",
signingPercent: "Wird unterschrieben… {percent}%",
downloadSigned: "Unterschriebenes PDF herunterladen",
addFirst: "Fügen Sie vor dem Herunterladen mindestens eine Unterschrift hinzu.",
loadFailed:
"Dieses PDF konnte nicht angezeigt werden. Die Datei ist möglicherweise beschädigt oder passwortgeschützt; falls sie verschlüsselt ist, entfernen Sie das Passwort zuerst mit dem Werkzeug „PDF entsperren“.",
pad: {
title: "Unterschrift erstellen",
draw: "Zeichnen",
type: "Tippen",
upload: "Hochladen",
color: "Farbe",
pen: "Stift",
namePlaceholder: "Geben Sie Ihren Namen ein",
yourName: "Ihr Name",
remember: "Auf diesem Gerät merken",
save: "Speichern und platzieren",
uploadHint:
"Legen Sie ein PNG / JPG ab oder klicken Sie zum Auswählen. Ein transparentes PNG funktioniert am besten.",
},
},
"redact-pdf": {
terms: "Zu schwärzende Begriffe",
termsHint: "Ein Begriff pro Zeile (max. 50)",
caseSensitive: "Groß-/Kleinschreibung beachten",
submit: "Schwärzen",
submitBatch: "Schwärzen ({count} Dateien)",
progressLabel: "Wird geschwärzt",
},
"pdf-to-text": {
submit: "Text extrahieren",
submitBatch: "Text extrahieren ({count} Dateien)",
progressLabel: "Wird extrahiert",
},
"pdf-to-word": {
hint: "Optimal für textbasierte PDFs; gescannte Seiten benötigen OCR",
submit: "In Word konvertieren",
submitBatch: "In Word konvertieren ({count} Dateien)",
progressLabel: "Wird konvertiert",
},
"pdf-metadata": {
title: "Titel",
author: "Autor",
subject: "Betreff",
keywords: "Schlüsselwörter",
submit: "Metadaten setzen",
submitBatch: "Metadaten setzen ({count} Dateien)",
progressLabel: "Metadaten werden gesetzt",
},
"html-to-pdf": {
hint: "Externe Ressourcen sind aus Datenschutzgründen deaktiviert.",
submit: "In PDF konvertieren",
submitBatch: "In PDF konvertieren ({count} Dateien)",
progressLabel: "Wird konvertiert",
},
"markdown-to-docx": {
submit: "In DOCX konvertieren",
submitBatch: "Konvertieren ({count} Dateien)",
progressLabel: "Wird konvertiert",
},
"markdown-to-html": {
hint: "Externe Bilder in der Quelle bleiben in der Ausgabe unverändert.",
submit: "In HTML konvertieren",
submitBatch: "Konvertieren ({count} Dateien)",
progressLabel: "Wird konvertiert",
},
"markdown-to-pdf": {
hint: "Externe Ressourcen sind aus Datenschutzgründen deaktiviert.",
submit: "In PDF konvertieren",
submitBatch: "In PDF konvertieren ({count} Dateien)",
progressLabel: "Wird konvertiert",
},
"epub-convert": {
format: "Ausgabeformat",
hint: "Externe Ressourcen im Buch werden nicht abgerufen.",
submit: "Konvertieren",
submitBatch: "Konvertieren ({count} Dateien)",
progressLabel: "Wird konvertiert",
},
"to-epub": {
submit: "In EPUB konvertieren",
submitBatch: "Konvertieren ({count} Dateien)",
progressLabel: "Wird konvertiert",
},
"csv-excel": {
sheet: "Arbeitsblattnummer",
submit: "Konvertieren",
submitBatch: "Konvertieren ({count} Dateien)",
progressLabel: "Wird konvertiert",
},
"csv-json": {
pretty: "Formatierte Ausgabe",
submit: "Konvertieren",
submitBatch: "Konvertieren ({count} Dateien)",
progressLabel: "Wird konvertiert",
},
"json-xml": {
pretty: "Formatierte Ausgabe",
submit: "Konvertieren",
submitBatch: "Konvertieren ({count} Dateien)",
progressLabel: "Wird konvertiert",
},
"split-csv": {
rowsPerFile: "Zeilen pro Datei",
keepHeader: "Kopfzeile in jeder Datei beibehalten",
submit: "Aufteilen",
submitBatch: "Aufteilen ({count} Dateien)",
progressLabel: "Wird aufgeteilt",
},
"merge-csvs": {
submit: "Zusammenführen",
submitBatch: "Zusammenführen ({count} Dateien)",
progressLabel: "Wird zusammengeführt",
},
"yaml-json": {
submit: "Konvertieren",
submitBatch: "Konvertieren ({count} Dateien)",
progressLabel: "Wird konvertiert",
},
"xml-to-csv": {
submit: "Konvertieren",
submitBatch: "Konvertieren ({count} Dateien)",
progressLabel: "Wird konvertiert",
},
"create-zip": {
submit: "ZIP erstellen",
submitBatch: "ZIP erstellen ({count} Dateien)",
progressLabel: "Wird komprimiert",
},
"extract-zip": {
submit: "Entpacken",
submitBatch: "Entpacken ({count} Dateien)",
progressLabel: "Wird entpackt",
},
},
urlImport: {
title: "Von URLs importieren",
placeholder: "Bild-URLs einfügen, eine pro Zeile...",
importButton: "URLs importieren",
addButton: "{count} Dateien hinzufügen",
adding: "Wird hinzugefügt...",
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 hinzufügen",
clearAll: "Alle entfernen",
acceptDescription: "Nur {exts}-Dateien",
notFound: "Werkzeug nicht gefunden",
configureAndGenerate: "Einstellungen konfigurieren und generieren.",
processingFailed: "Verarbeitung für diese Datei fehlgeschlagen",
conversionComplete: "Konvertierung abgeschlossen",
cannotPreviewDownload:
"{type}-Dateien können im Browser nicht angezeigt werden. Verwenden Sie die Download-Schaltfläche, um Ihre Datei zu speichern.",
generatingPreview: "Vorschau wird generiert...",
cannotPreviewWillProcess:
"{ext}-Dateien können im Browser nicht angezeigt werden. Das Werkzeug verarbeitet diese Datei trotzdem.",
previousImage: "Vorherige Datei",
nextImage: "Nächste Datei",
imageCounter: "{current} / {total}",
settingsLabel: "Einstellungen",
downloadAllZip: "Alle herunterladen (ZIP)",
hideSettings: "Einstellungen ausblenden",
imageArea: "Vorschaubereich",
disabledByAdmin: "Dieses Werkzeug wurde von Ihrem Administrator deaktiviert",
browseOtherTools: "Andere Werkzeuge durchsuchen",
privacyNote: "Dateien werden auf Ihrem Server verarbeitet und verlassen nie Ihr Netzwerk",
applyAndDownload: "Anwenden & Herunterladen",
andMore: "und {count} weitere",
importFromFiles: "Aus Dateien importieren",
saveToFiles: "In Dateien speichern",
savedToFiles: "In Dateien gespeichert",
librarySaveTitle: "Diese Datei stammt aus deinen Dateien",
librarySaveAsNew: "Ergebnis als neue Datei speichern",
librarySaveAsNewHint: "Das Original bleibt in deinen Dateien erhalten",
libraryOverwrite: "Original überschreiben",
libraryOverwriteHint: "Das Ergebnis ersetzt das Original in deinen Dateien",
viewInFiles: "In Dateien anzeigen",
adjustSettings: "Einstellungen anpassen",
startOver: "Mit einer neuen Datei neu beginnen",
newFile: "Neue Datei",
previewUnavailable: "Vorschau ist nach der Verarbeitung verfügbar",
generatePreview: "Vorschau erzeugen",
previewFailed: "Vorschauerzeugung fehlgeschlagen",
backToTools: "Zurück zu Werkzeugen",
original: "Original",
processed: "Verarbeitet",
saved: "Gespeichert",
noChange: "keine Änderung",
download: "Herunterladen",
settingsSaved: "Ihre Einstellungen wurden gespeichert.",
tryAgain: "Erneut versuchen",
tryDifferentFile: "Andere Datei versuchen",
batchPartialSuccess: "{success} von {total} verarbeitet. {failed} fehlgeschlagen.",
dataResultsHint:
"Ergebnisse oben angezeigt. Verwenden Sie die Kopierschaltfläche im Ergebnisbereich.",
downloadAsFile: "Als Datei herunterladen",
downloadAll: "Alle herunterladen",
downloadFiles: "{count} Dateien herunterladen",
audioDecodeUnsupported: "Dieses Audioformat kann im Browser nicht wiedergegeben werden",
},
homePage: {
generatingPreview: "Vorschau wird generiert...",
loadingPreview: "Vorschau wird geladen...",
changeFile: "Datei ändern",
quickActions: "Schnellaktionen",
allTools: "Alle Werkzeuge",
searchPlaceholder: "{count} Werkzeuge durchsuchen...",
recent: "Zuletzt verwendet",
pinned: "Angeheftet",
popular: "Beliebt",
browseByCategory: "Nach Kategorie durchsuchen",
gettingStarted: "Erste Schritte",
noToolsMatch: "Keine Werkzeuge für '{query}' gefunden",
clearSearch: "Suche zurücksetzen",
requestToolCta: "'{query}' anfragen",
requestToolBelowResults: "Nicht gefunden? Tool anfragen",
all: "Alle",
documents: "PDF",
data: "Dateien",
pdf: "PDF",
files: "Dateien",
toolCount: "{count} Werkzeuge",
heading: "SnapOtter 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: "Öffnen",
save: "Speichern",
exportAs: "Exportieren als...",
quickExportPng: "Schnellexport als PNG",
close: "Schließen",
},
edit: {
label: "Bearbeiten",
undo: "Rückgängig",
redo: "Wiederholen",
cut: "Ausschneiden",
copy: "Kopieren",
copyMerged: "Zusammengefügt kopieren",
paste: "Einfügen",
pasteInPlace: "An gleicher Stelle einfügen",
delete: "Löschen",
freeTransform: "Frei transformieren",
transform: {
label: "Transformieren",
scale: "Skalieren",
rotate: "Drehen",
skew: "Neigen",
flipHorizontal: "Horizontal spiegeln",
flipVertical: "Vertikal spiegeln",
},
},
image: {
label: "Bild",
imageSize: "Bildgröße...",
canvasSize: "Leinwandgröße...",
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/Sättigung",
colorBalance: "Farbbalance",
levels: "Tonwerte",
curves: "Gradationskurven",
},
},
layer: {
label: "Ebene",
newLayer: "Neue Ebene",
duplicateLayer: "Ebene duplizieren",
deleteLayer: "Ebene löschen",
arrange: {
label: "Anordnen",
bringToFront: "In den Vordergrund",
bringForward: "Eine Ebene nach vorne",
sendBackward: "Eine Ebene nach hinten",
sendToBack: "In den Hintergrund",
},
mergeDown: "Nach unten zusammenfügen",
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: "Bewegungsunschärfe",
radial: "Radialer Weichzeichner",
surface: "Oberflächenweichzeichner",
},
sharpen: {
label: "Schärfen",
sharpen: "Schärfen",
unsharpMask: "Unscharf maskieren",
},
noise: {
label: "Rauschen",
addNoise: "Rauschen hinzufügen",
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: "Vergrößern",
zoomOut: "Verkleinern",
fitOnScreen: "An Bildschirm anpassen",
actualPixels: "Tatsächliche Pixel",
rulers: "Lineale",
grid: "Raster",
guides: "Hilfslinien",
snap: "Einrasten",
panels: "Bedienfelder",
},
},
menuBar: {
backTitle: "Zurück zu SnapOtter",
},
welcome: {
ariaLabel: "Bild-Ablagezone",
heading: "Bild-Editor",
dropDescription: "Ziehen Sie ein Bild hierher, um zu beginnen",
openImageButton: "Bild öffnen",
newDocumentButton: "Neues Dokument",
pasteHint: "Oder aus der Zwischenablage einfügen (Strg+V)",
},
mobile: {
heading: "Desktop empfohlen",
description:
"Der Bild-Editor funktioniert am besten auf Desktopbildschirmen. Bitte wechseln Sie für das volle Bearbeitungserlebnis zu einem Gerät mit größerem Display.",
},
errors: {
serverDecodeFailed: "Server-Dekodierung fehlgeschlagen",
},
shapes: {
shape: "Form",
fill: "Füllung",
stroke: "Kontur",
strokeWidth: "Breite",
cornerRadius: "Radius",
sides: "Seiten",
points: "Punkte",
dashStyle: "Strichart",
solid: "Durchgezogen",
dashed: "Gestrichelt",
dotted: "Gepunktet",
none: "Keine",
opacity: "Deckkraft",
rectangle: "Rechteck",
ellipse: "Ellipse",
line: "Linie",
arrow: "Pfeil",
polygon: "Polygon",
star: "Stern",
},
},
settings: {
heading: "Einstellungen",
nav: {
general: "Allgemein",
systemSettings: "Systemeinstellungen",
security: "Sicherheit",
people: "Personen",
teams: "Teams",
roles: "Rollen",
auditLog: "Audit-Protokoll",
usage: "Nutzung",
apiKeys: "API-Schlüssel",
aiFeatures: "AI-Funktionen",
tools: "Werkzeuge",
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 Dateigröße pro Upload",
defaultThemeLabel: "Standard-Farbschema",
defaultThemeDescription: "Farbschema für neue Sitzungen",
lightOption: "Hell",
darkOption: "Dunkel",
systemOption: "System",
languageLabel: "Sprache",
languageDescription: "Sprache der Benutzeroberfläche",
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 temporäre Dateien beim Serverstart bereinigen",
saveButton: "Einstellungen speichern",
saveSuccess: "Einstellungen gespeichert.",
saveFailed: "Einstellungen konnten nicht gespeichert werden.",
limitsAndResources: "Limits & Ressourcen",
maxFileSize: "Maximale Dateigröße",
maxBatchSize: "Maximale Stapelgröße",
concurrentJobs: "Gleichzeitige Aufträge",
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-Größe",
maxSplitGrid: "Maximales Aufteilungsraster",
maxPdfPages: "Maximale PDF-Seiten",
sessionDuration: "Sitzungsdauer",
supportBundleButton: "Support-Paket herunterladen",
supportBundleDescription:
"Diagnosearchiv mit bereinigter Konfiguration, Protokollen und Auftragsdaten zur Fehlerbehebung herunterladen.",
supportBundleFailed: "Support-Paket konnte nicht heruntergeladen werden.",
},
privacy: {
title: "Datenschutz",
description:
"Anonyme Produktanalysen helfen, SnapOtter zu verbessern. Sie sind standardmäßig aktiviert und werden von einem Administrator für die gesamte Instanz festgelegt.",
analyticsLabel: "Anonyme Produktanalysen",
analyticsDescription:
"Teilen Sie anonyme Nutzungsdaten (welche Tools ausgeführt werden, Dauer, Fehlercodes) und Absturzberichte. Keine IP-Adresse, keine Kontoidentität. Wir erfassen niemals Ihre Dateinamen, Dateiinhalte, OCR-Ausgaben, Bildmetadaten oder Dokumenttexte. Schalten Sie dies aus, um alles davon zu beenden.",
},
security: {
heading: "Sicherheit",
description: "Passwort- und Authentifizierungseinstellungen.",
changePasswordHeading: "Passwort ändern",
currentPasswordPlaceholder: "Aktuelles Passwort",
newPasswordPlaceholder: "Neues Passwort",
confirmPasswordPlaceholder: "Neues Passwort bestätigen",
passwordsMismatch: "Passwörter stimmen nicht überein",
passwordTooShort: "Passwort muss mindestens 4 Zeichen lang sein",
changeSuccess: "Passwort erfolgreich geändert",
changeFailed: "Passwort konnte nicht geändert werden",
currentPasswordIncorrect: "Aktuelles Passwort ist falsch",
changePasswordButton: "Passwort ändern",
loginAttemptLimitNote:
"Anmeldeversuchslimits können in den Systemeinstellungen konfiguriert werden.",
twoFactorHeading: "Zwei-Faktor-Authentifizierung",
twoFactorDescription: "Schützen Sie Ihr Konto zusätzlich mit einer Authentifizierungs-App.",
twoFactorEnabledStatus: "Zwei-Faktor-Authentifizierung ist aktiviert.",
twoFactorDisabledStatus: "Zwei-Faktor-Authentifizierung ist nicht aktiviert.",
enableTwoFactorButton: "Zwei-Faktor-Authentifizierung aktivieren",
disableTwoFactorButton: "Zwei-Faktor-Authentifizierung deaktivieren",
twoFactorScanQr:
"Scannen Sie diesen QR-Code mit Ihrer Authentifizierungs-App (zum Beispiel Google Authenticator, Authy oder 1Password).",
twoFactorManualEntry:
"Code lässt sich nicht scannen? Geben Sie diesen Schlüssel manuell ein:",
twoFactorRecoveryCodesHeading: "Wiederherstellungscodes",
twoFactorRecoveryCodesDescription:
"Bewahren Sie diese Codes sicher auf. Jeder Code lässt sich einmal verwenden, um sich anzumelden, falls Sie den Zugriff auf Ihre Authentifizierungs-App verlieren.",
twoFactorCopyRecoveryCodes: "Codes kopieren",
twoFactorCodesCopied: "Kopiert",
twoFactorCopyFailed:
"Automatisches Kopieren fehlgeschlagen. Wählen Sie die Codes oben aus und kopieren Sie sie manuell.",
twoFactorEnterCode:
"Geben Sie den 6-stelligen Code aus Ihrer App ein, um die Einrichtung zu bestätigen.",
twoFactorCodePlaceholder: "000000",
twoFactorConfirmButton: "Bestätigen und aktivieren",
twoFactorCancelButton: "Abbrechen",
twoFactorEnableSuccess: "Zwei-Faktor-Authentifizierung ist jetzt aktiviert.",
twoFactorDisableSuccess: "Zwei-Faktor-Authentifizierung wurde deaktiviert.",
twoFactorDisablePrompt:
"Geben Sie Ihren aktuellen Code aus der Authentifizierungs-App ein, um die Zwei-Faktor-Authentifizierung zu deaktivieren.",
adminHeading: "Admin-Sicherheitseinstellungen",
adminDescription: "Enterprise-Sicherheitsrichtlinien. Diese gelten für alle Benutzer.",
sessionIdleTimeout: "Sitzungszeitlimit bei Inaktivität (Minuten)",
sessionIdleTimeoutDesc: "Inaktive Sitzungen automatisch abmelden. 0 = deaktiviert.",
maxSessionsPerUser: "Max. Sitzungen pro Benutzer",
maxSessionsPerUserDesc: "Gleichzeitige Sitzungen pro Benutzer begrenzen. 0 = unbegrenzt.",
mfaPolicy: "MFA-Richtlinie",
mfaPolicyDesc: "Multi-Faktor-Authentifizierung für Benutzer vorschreiben.",
mfaPolicyOptional: "Optional",
mfaPolicyAdminsOnly: "Erforderlich für Admins",
mfaPolicyRequired: "Erforderlich für alle Benutzer",
ssoEnforcement: "SSO-Erzwingung",
ssoEnforcementDesc: "SSO-Anmeldung für alle Benutzer ohne Notfallzugang vorschreiben.",
ssoBreakGlassUsername: "Notfallzugang-Admin-Benutzername",
ssoBreakGlassUsernameDesc:
"Dieser Admin kann sich bei erzwungenem SSO weiterhin mit lokalen Zugangsdaten anmelden.",
passwordMinLength: "Mindestlänge Passwort",
passwordMinLengthDesc: "Mindestanzahl der Zeichen für Passwörter.",
passwordRequireUppercase: "Großbuchstabe erforderlich",
passwordRequireUppercaseDesc: "Mindestens ein Großbuchstabe erforderlich.",
passwordRequireNumber: "Zahl erforderlich",
passwordRequireNumberDesc: "Mindestens eine Zahl erforderlich.",
passwordRequireSpecial: "Sonderzeichen erforderlich",
passwordRequireSpecialDesc: "Mindestens ein Sonderzeichen erforderlich.",
passwordPolicyHeading: "Passwortrichtlinie",
securitySettingsSaved: "Sicherheitseinstellungen gespeichert",
securitySettingsFailed: "Sicherheitseinstellungen konnten nicht gespeichert werden",
},
people: {
heading: "Personen",
description: "Arbeitsbereich-Mitglieder und deren Berechtigungen verwalten",
userCount: "{count} Benutzer",
userCountPlural: "{count} Benutzer",
searchPlaceholder: "Mitglieder suchen...",
addMembersButton: "Mitglieder hinzufügen",
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}" löschen? Dies kann nicht rückgängig gemacht werden.',
deleteSuccess: 'Benutzer "{username}" gelöscht',
deleteFailed: "Benutzer konnte nicht gelöscht werden",
editHeading: "{username} bearbeiten",
updateSuccess: "Benutzer aktualisiert",
updateFailed: "Benutzer konnte nicht aktualisiert werden",
cannotRemoveOwnAdmin: "Sie können Ihre eigene Administratorrolle nicht entfernen",
resetPasswordHeading: "Passwort zurücksetzen für {username}",
newPasswordLabel: "Neues Passwort (mind. 8 Zeichen)",
resetPasswordButton: "Passwort zurücksetzen",
resetPasswordWarning:
"Dadurch werden alle Sitzungen und API-Schlüssel dieses Benutzers ungültig.",
resetSuccess: "Passwort erfolgreich zurückgesetzt",
resetFailed: "Passwort konnte nicht zurückgesetzt 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 zurücksetzen",
deleteUserAction: "Benutzer löschen",
saveButton: "Speichern",
copyPasswordButton: "Passwort kopieren",
passwordCopied: "Kopiert!",
copyPasswordWarning:
"Kopieren Sie dieses Passwort jetzt. Nach dem Erstellen des Benutzers ist es nicht mehr sichtbar.",
},
teams: {
heading: "Teams",
description: "Mitglieder in Teams organisieren für 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}" löschen? Mitglieder werden abgemeldet.',
deleteSuccess: 'Team "{name}" gelöscht',
deleteFailed: "Team konnte nicht gelöscht werden",
cannotDeleteDefault:
"Das Standardteam oder ein Team mit Mitgliedern kann nicht gelöscht werden",
tableHeaderTeamName: "Teamname",
tableHeaderMembers: "Mitglieder",
emptyState: "Keine Teams gefunden.",
renameSaveButton: "Speichern",
renameCancelButton: "Abbrechen",
renameAction: "Umbenennen",
deleteAction: "Löschen",
totalMembers: "Mitglieder gesamt",
nameRequired: "Teamname ist erforderlich",
nameTooLong: "Teamname darf maximal 50 Zeichen lang sein",
duplicateName: "Ein Team mit diesem Namen existiert bereits",
teamStorageQuota: "Speicherkontingent (MB)",
teamStorageQuotaDesc:
"Maximaler Speicherplatz für dieses Team in MB. Leer lassen für unbegrenzt.",
teamRetentionHours: "Aufbewahrung (Stunden)",
teamRetentionHoursDesc:
"Aufbewahrungsdauer für Verarbeitungsdateien dieses Teams. Leer lassen für globalen Standard.",
quotaSaved: "Team-Einstellungen gespeichert",
},
roles: {
heading: "Rollen",
description:
"Rollen und deren Berechtigungen verwalten. Integrierte Rollen können nicht geändert 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}" löschen? {count} Benutzer müssen neu zugewiesen werden.',
deleteConfirmSimple: 'Rolle "{name}" löschen?',
deleteSuccess: 'Rolle "{name}" gelöscht',
deleteFailed: "Rolle konnte nicht gelöscht werden",
emptyState: "Keine Rollen gefunden.",
builtInBadge: "Integriert",
userCountBadge: "{count} Benutzer",
editRoleTitle: "Rolle bearbeiten",
deleteRoleTitle: "Rolle löschen",
permGroup: {
tools: "Werkzeuge",
files: "Dateien",
apiKeys: "API-Schlüssel",
pipelines: "Pipelines",
settings: "Einstellungen",
users: "Benutzer",
teams: "Teams",
system: "System",
},
},
auditLog: {
heading: "Audit-Protokoll",
allActionsFilter: "Alle Aktionen",
emptyState: "Keine Audit-Protokolleinträge.",
tableHeaderTime: "Zeit",
tableHeaderUser: "Benutzer",
tableHeaderAction: "Aktion",
tableHeaderTarget: "Ziel",
paginationInfo: "Seite {page} von {totalPages} ({total} Einträge)",
previousButton: "Zurück",
nextButton: "Weiter",
justNow: "Gerade eben",
minutesAgo: "Vor {mins} Min.",
hoursAgo: "Vor {hrs} Std.",
daysAgo: "Vor {days} Tagen",
},
usage: {
heading: "Nutzung",
description: "Lokale Nutzungsstatistiken zu Aufträgen und Dateispeicher.",
periodLabel: "Zeitraum",
days7: "7 Tage",
days30: "30 Tage",
days90: "90 Tage",
jobsPerDayHeading: "Aufträge pro Tag",
topToolsHeading: "Meistgenutzte Werkzeuge",
perUserHeading: "Volumen pro Benutzer",
durationsHeading: "Dauer-Perzentile",
noData: "Keine Daten für diesen Zeitraum.",
dayColumn: "Tag",
totalColumn: "Gesamt",
completedColumn: "Abgeschlossen",
failedColumn: "Fehlgeschlagen",
toolColumn: "Werkzeug",
runsColumn: "Ausführungen",
userColumn: "Benutzer",
bytesInColumn: "Bytes ein",
poolColumn: "Pool",
p50Column: "p50",
p95Column: "p95",
storageHeading: "Bibliotheksspeicher",
storageFiles: "{count} Dateien",
unknownUser: "(unbekannt)",
storageByTeam: "Speicher nach Team",
teamColumn: "Team",
storageColumn: "Speicher",
usersColumn: "Benutzer",
},
apiKeys: {
heading: "API-Schlüssel",
description: "API-Schlüssel für programmatischen Zugriff auf SnapOtter verwalten.",
keyNamePlaceholder: "Schlüsselname (optional)",
generateButton: "API-Schlüssel generieren",
removeScopingLabel: "Berechtigungsbeschränkung entfernen",
restrictPermissionsLabel: "Berechtigungen einschränken (optional)",
expiresLabel: "Läuft ab:",
clearButton: "Leeren",
copyTitle: "Kopieren",
keyWarning: "Bewahren Sie diesen Schlüssel sicher auf. Er wird nicht erneut angezeigt.",
existingKeysHeading: "Vorhandene Schlüssel",
createdPrefix: "Erstellt {date}",
scopedPrefix: "Beschränkt:",
expiresPrefix: "Läuft ab {date}",
deleteKeyTitle: "Schlüssel löschen",
deleteConfirm:
"Diesen API-Schlüssel löschen? Alle Integrationen, die ihn nutzen, werden nicht mehr funktionieren.",
emptyState: "Noch keine API-Schlüssel. Generieren Sie einen, um zu beginnen.",
},
tools: {
heading: "Werkzeuge",
description:
"Einzelne Werkzeuge aktivieren oder deaktivieren. Deaktivierte Werkzeuge sind für alle Benutzer ausgeblendet.",
restartBanner: "Neustart erforderlich, damit Änderungen 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 können 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 temporäre Dateien beim Serverstart bereinigen",
},
dataRetention: {
title: "Datenaufbewahrung",
fileMaxAgeHours: "Aufbewahrung von Verarbeitungsdateien (Stunden)",
fileMaxAgeHoursDesc:
"Wie lange hochgeladene und verarbeitete Dateien aufbewahrt werden. Standard: 72 Stunden.",
jobsRetentionDays: "Aufbewahrung von Auftragsdaten (Tage)",
jobsRetentionDaysDesc:
"Wie lange Auftragsmetadaten aufbewahrt werden. 0 = unbegrenzt. Standard: 30 Tage.",
auditRetentionDays: "Aufbewahrung von Audit-Protokollen (Tage)",
auditRetentionDaysDesc:
"Wie lange Audit-Protokolleinträge aufbewahrt werden. 0 = unbegrenzt. Standard: unbegrenzt.",
},
aiFeatures: {
title: "AI-Funktionen",
description: "AI-Modellpakete für erweiterte Dateiverarbeitung verwalten.",
installAll: "Alle installieren",
diskUsage: "Speicherplatznutzung: {size}",
sizeOnDisk: "{size} auf der Festplatte",
installed: "Installiert",
notInstalled: "Nicht installiert",
queued: "In Warteschlange",
install: "Installieren",
repair: "Reparieren",
uninstall: "Deinstallieren",
installing: "Wird installiert...",
importBundle: "Paket importieren",
importDescription:
"Importieren Sie eine signierte OCR-Laufzeit oder ein altes AI-Paket zur Offline-Nutzung.",
importButton: "Aus Datei importieren",
importing: "Wird importiert...",
importSuccess: "Paket erfolgreich importiert.",
importError: "Paketimport fehlgeschlagen: {error}",
importType: "Pakettyp",
importOcr: "Präzises OCR-Paket",
importLegacy: "Altes AI-Paket",
importOcrIndex: "Signierter OCR-Index (.json)",
importOcrArchive: "OCR-Laufzeitarchiv (.tar.gz)",
importLegacyArchive: "Archiv des alten Pakets (.tar.gz)",
resetTitle: "AI-Umgebung zurücksetzen",
resetDescription:
"Löscht alle installierten AI-Funktionen und heruntergeladenen Modelle und beginnt anschließend neu. Verwenden Sie dies, wenn sich AI-Tools nach einem Update unerwartet verhalten und die Neuinstallation eines Pakets das Problem nicht behebt.",
resetButton: "Zurücksetzen",
resetConfirmMessage:
"Dadurch werden alle installierten AI-Funktionen und Modelle gelöscht. Sie müssen sie erneut von Hugging Face installieren. Dies kann nicht rückgängig gemacht werden.",
resetFailed: "Zurücksetzen fehlgeschlagen: {error}",
},
about: {
heading: "Info",
appName: "SnapOtter",
appDescription:
"Eine selbst gehostete, datenschutzorientierte Dateiverarbeitungssuite mit 200+ Werkzeugen. Konvertieren, komprimieren, bearbeiten, transkribieren, OCR und Bild-, Video-, Audio-, PDF- und Dateiabläufe automatisieren, ohne Daten in die Cloud zu senden.",
versionLabel: "Version:",
linksHeading: "Links",
githubLink: "GitHub-Repository",
docsLink: "Dokumentation",
apiRefLink: "API-Referenz (Swagger)",
licenseLabel: "Lizenz:",
licenseDescription:
"SnapOtter ist Open-Source-Software, lizenziert unter der GNU Affero General Public License v3 (AGPLv3).",
},
},
auth: {
login: "Anmelden",
logout: "Abmelden",
username: "Benutzername",
password: "Passwort",
loginButton: "Anmelden",
loggingIn: "Anmeldung läuft...",
invalidCredentials: "Ungültiger 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 Identitätsanbieter ist nicht erreichbar. Bitte versuchen Sie es später erneut.",
oidcSessionExpired: "Anmeldesitzung abgelaufen. Bitte versuchen Sie es erneut.",
oidcUserNotAuthorized:
"Ihr Konto ist nicht für den Zugriff auf diese Anwendung autorisiert. Kontaktieren Sie Ihren Administrator.",
oidcUserLimitReached: "Benutzerlimit erreicht. Kontaktieren Sie Ihren Administrator.",
oidcGenericError: "Authentifizierungsfehler. Bitte versuchen Sie es erneut.",
samlAuthFailed: "SAML-Authentifizierung fehlgeschlagen. Bitte versuchen Sie es erneut.",
samlUserNotAuthorized:
"Ihr Konto ist nicht berechtigt, auf diese Anwendung zuzugreifen. Kontaktieren Sie Ihren Administrator.",
samlUserLimitReached: "Benutzerlimit erreicht. Kontaktieren Sie Ihren Administrator.",
ssoEnforcedLocalRestricted: "Lokale Anmeldung ist auf autorisierte Administratoren beschränkt.",
mfaRequired: "Geben Sie Ihren Authentifizierungscode ein",
mfaRecoveryHint: "Sie können auch einen Wiederherstellungscode verwenden",
verify: "Bestätigen",
verifying: "Wird überprüft...",
mfaInvalidCode: "Ungültiger Code. Bitte versuchen Sie es erneut.",
mfaEnrollmentRequired:
"Ihre Organisation erfordert Multi-Faktor-Authentifizierung. Bitte richten Sie MFA in Ihren Kontoeinstellungen ein.",
methodSaml: "SAML",
passwordManagedByProvider: "Passwortänderungen werden von Ihrem Identitätsanbieter verwaltet.",
enterUsername: "Benutzernamen eingeben",
enterPassword: "Passwort eingeben",
heroTitle: "Ihre Dateien. Bleiben Ihre.",
heroSubtitle: "Jedes Werkzeug, das Sie brauchen.",
rotatingPhrases: [
"Keine Registrierung. Keine Konten.",
"Kein Upload in die Cloud. Niemals.",
"100% lokale Verarbeitung.",
"Kostenlos. Für immer.",
"Keine Limits. Keine versteckten Grenzen.",
"Funktioniert komplett offline.",
"Unbegrenzte Stapelverarbeitung.",
"200+ Werkzeuge.",
"16 AI-Modelle. Ihre Hardware.",
"Blitzschnell. Basiert auf Sharp.",
"Geeignet für 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.",
"Massendateiverarbeitung. Unbegrenzt.",
"Hintergrund offline entfernen.",
"Die selbst gehostete Canva-Alternative.",
"Keine API-Schlüssel nötig.",
"DSGVO-konform von Grund auf.",
"Funktioniert ohne Internet.",
],
},
changePassword: {
title: "Passwort ändern",
description:
"Sie müssen ein neues Passwort festlegen, bevor Sie fortfahren können. Ihr Passwort muss mindestens 8 Zeichen mit Groß- 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 bestätigen",
confirmPasswordPlaceholder: "Neues Passwort wiederholen",
passwordsMismatch: "Passwörter stimmen nicht überein",
failedError: "Passwort konnte nicht geändert werden",
connectionError: "Verbindungsfehler",
changingButton: "Wird geändert...",
changeButton: "Passwort ändern",
sidebarTitle: "Fast geschafft",
sidebarDescription:
"Legen Sie ein sicheres Passwort fest, um Ihr Konto zu schützen. Dann kann es losgehen.",
},
automate: {
title: "Automatisieren",
invalidPipelineFile: "Keine gültige 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: "+ Hinzufügen",
libraryButton: "Bibliothek",
clearButton: "Leeren",
processingFailed: "Verarbeitung für diese Datei fehlgeschlagen",
processingMultiple: "{count} Dateien werden verarbeitet...",
processingPipeline: "Pipeline wird verarbeitet...",
processButton: "Verarbeiten",
processButtonMultiple: "Verarbeiten ({count})",
processAllButton: "Alle verarbeiten ({count})",
addTool: "Werkzeug hinzufügen",
toolPalette: "Werkzeugpalette",
clickToAdd: "Zum Hinzufügen zur Pipeline klicken",
savedLabel: "Gespeichert",
templatesLabel: "Vorlagen",
importButton: "Importieren",
noSavedPipelines: "Keine gespeicherten Pipelines",
stepCount: "({count} Schritt)",
stepCountPlural: "({count} Schritte)",
exportPipeline: "Pipeline exportieren",
deletePipeline: "Pipeline löschen",
moreCount: "+{count} weitere",
pipelineBuilder: "Pipeline-Builder",
addToolsPrompt: "Fügen 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: "Vorherige Datei",
nextImage: "Nächste Datei",
imageCounter: "{current} / {total}",
imageArea: "Vorschaubereich",
templateSocialMedia: "Social Media fertig",
templatePrivacyClean: "Datenschutzbereinigung",
templateWebOptimization: "Weboptimierung",
templateProfilePicture: "Profilbild",
templateWatermarkBatch: "Wasserzeichen-Stapel",
createNew: "Neue Automatisierung erstellen",
savedAutomations: "Gespeicherte Automatisierungen",
templates: "Vorlagen",
addStep: "Schritt hinzufügen",
removeStep: "Entfernen",
moveUp: "Nach oben",
moveDown: "Nach unten",
savePipeline: "Pipeline speichern",
runPipeline: "Verarbeiten",
pipelineName: "Pipeline-Name",
pipelineDescription: "Beschreibung (optional)",
noStepsPrompt: "Fügen Sie Schritte hinzu, um Ihre Automatisierung zu erstellen",
noStepsHeading: "Noch keine Schritte",
searchToolsPlaceholder: "Werkzeuge suchen...",
step: "Schritt",
modalityWarning: "Modalitätskonflikt",
modalityWarningTooltip:
"Dieser Schritt erwartet {expected}, erhält aber {received}; er kann beim Ausführen der Pipeline fehlschlagen.",
},
nav: {
tools: "Werkzeuge",
reader: "Leser",
automate: "Automatisieren",
editor: "Editor",
files: "Dateien",
help: "Hilfe",
settings: "Einstellungen",
grid: "Raster",
},
files: {
myFiles: "Meine Dateien",
recentTab: "Zuletzt",
uploadTab: "Dateien hochladen",
fileDetailsAriaLabel: "Dateidetails",
fileDetailsHeading: "Dateidetails",
searchPlaceholder: "Dateien suchen...",
selectedCount: "{count} ausgewählt",
fileCount: "{count} Dateien",
fileCountSingular: "{count} Datei",
noFilesFound: "Keine Dateien gefunden",
selectFilePrompt: "Datei auswählen, um Details anzuzeigen",
openFile: "Datei öffnen",
selectFile: "Datei auswählen",
openInPipeline: "In Pipeline öffnen",
dropFilesHere: "Dateien hier ablegen",
orClickToSelect: "oder klicken, um Dateien auszuwählen",
name: "Name",
format: "Format",
size: "Größe",
dimensions: "Abmessungen",
version: "Version",
toolsUsed: "Verwendete Werkzeuge",
none: "Keine",
delete: "Löschen",
pipeline: "Pipeline",
download: "Herunterladen",
},
dropzone: {
unsupportedFileType: "Dieser Dateityp wird von diesem Werkzeug nicht unterstützt",
urlFetchFailed: "Bild konnte nicht von URL abgerufen werden",
ariaLabel: "Datei-Ablagezone",
dropPrompt: "Bilder hierher ziehen",
browseOrPaste:
"Verwenden Sie die Upload-Schaltfläche oder fügen Sie aus der Zwischenablage ein",
uploadButton: "Hochladen",
defaultFormats: "Bilder, Videos, Audio, PDF, Dateien und 150+ Formate",
orSeparator: "oder",
urlPlaceholder: "Bild-URL einfügen...",
urlLoadingIndicator: "...",
addUrlButton: "Hinzufügen",
importMultipleUrls: "Mehrere URLs importieren...",
filesSelected: "{count} Dateien ausgewählt",
dropToAdd: "Ablegen, um Dateien hinzuzufügen",
dropToReplace: "Ablegen, um Datei zu ersetzen",
},
reviewPanel: {
processedResultAlt: "Verarbeitetes Ergebnis",
sizeLabel: "Größe: {size}",
typeLabel: "Typ: {type}",
processedLabel: "Verarbeitet: {time}",
undoButton: "Rückgängig",
downloadButton: "Herunterladen",
openInEditor: "Im Editor öffnen",
reviewHeading: "Überprüfen",
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 zusätzlichen Download (~{size})",
retryButton: "Erneut versuchen",
queued: "Zur Installation vorgemerkt...",
enableButton: "{name} aktivieren",
repairRequired: "Reparatur erforderlich",
repairDescription:
"Einige Modelldateien fehlen oder sind beschädigt. Die Reparatur lädt sie erneut herunter.",
repairButton: "{name} reparieren",
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 härter als es aussieht...",
"Jetzt kommt der spannende Teil, versprochen...",
"Wichtige Dinge passieren im Hintergrund...",
"Wenn Sie das hier lesen, funktioniert es...",
"Etwas Großartiges wird vorbereitet...",
"Jede Sekunde wert, kleiner Finger drauf...",
"Die Spannung gehört zum Erlebnis...",
"Ihrem Computer werden neue Tricks beigebracht...",
"Ihre Superkräfte werden eingerichtet...",
"Ihre Dateien werden es Ihnen später danken...",
"Laden... aber mit Stil...",
"Perfekter Moment für einen Kaffee...",
"Rom wurde auch nicht an einem Tag erbaut...",
"Psst... hier arbeitet ein Genie...",
"Ihre Projekte werden neidisch auf das, was kommt...",
"Das Dreamteam wird zusammengestellt...",
"Großartiges wird ausgepackt...",
"Fast fertig mit dem Nachdenken über den Anfang... kleiner Scherz...",
"Plottwist: Hier passiert tatsächlich etwas...",
"Die kreativen Motoren werden warmgelaufen...",
"Fantasie wird geladen...",
"Kein Bildschirmschoner, versprochen...",
"Große Kunst braucht Zeit zum Installieren...",
"Ihr zukünftiges Ich wird es Ihnen danken...",
"Ziemlich schlaue Dateien werden geholt...",
"Durchhalten, das Beste kommt noch...",
],
},
help: {
heading: "Hilfe",
gettingStarted: {
heading: "Erste Schritte",
description:
"Wählen Sie ein Werkzeug aus der Seitenleiste oder suchen Sie nach einem. Laden Sie eine Datei hoch, indem Sie sie 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 Größe ändern",
goToCrop: "Zu Zuschneiden",
goToCompress: "Zu Komprimieren",
goToConvert: "Zu Konvertieren",
goToRemoveBackground: "Zu Hintergrund entfernen",
goToWatermarkText: "Zu Text-Wasserzeichen",
goToStripMetadata: "Zu Metadaten entfernen",
goToImageInfo: "Zu Bildinformationen",
processFile: "Datei verarbeiten",
downloadResult: "Ergebnis herunterladen",
},
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 für diese Datei fehlgeschlagen",
timeout:
"Zeitlimit überschritten. Der Server ist möglicherweise überlastet. Versuchen Sie es erneut.",
networkError: "Netzwerkfehler. Überprüfen Sie Ihre Verbindung.",
invalidCredentials: "Ungültiger Benutzername oder Passwort",
connectionError: "Verbindungsfehler",
},
sidebar: {
sponsor: "Uns unterstützen",
tools: "Werkzeuge",
grid: "Raster",
automate: "Automatisieren",
editor: "Editor",
files: "Dateien",
help: "Hilfe",
settings: "Einstellungen",
},
toolCard: {
pin: "Anheften",
unpin: "Lösen",
},
appLayout: {
mobileNavTools: "Werkzeuge",
mobileNavAutomate: "Automatisieren",
mobileNavEditor: "Editor",
mobileNavFiles: "Dateien",
mobileNavSettings: "Einstellungen",
},
a11y: {
sponsorLink: "SnapOtter auf GitHub Sponsors unterstützen",
skipToContent: "Zum Hauptinhalt springen",
openSidebar: "Seitenleiste öffnen",
closeSidebar: "Seitenleiste schließen",
closeSettings: "Einstellungen schließen",
closeHelp: "Hilfe schließen",
closeDialog: "Dialog schließen",
zoomIn: "Vergrößern",
zoomOut: "Verkleinern",
fitToView: "Einpassen",
actualSize: "Originalgröße",
pan: "Verschieben",
previousImage: "Vorherige Datei",
nextImage: "Nächste Datei",
imageArea: "Vorschaubereich",
imageViewer: "Dateibetrachter",
fileDropZone: "Datei-Ablagezone",
imageDropZone: "Datei-Ablagezone",
beforeAfterSlider: "Vorher/Nachher-Vergleichsregler",
imageControls: "Vorschausteuerung",
zoomControls: "Zoom-Steuerung",
dragToReorder: "Ziehen zum Neuordnen",
whiteBackground: "Weißer Hintergrund",
blackBackground: "Schwarzer Hintergrund",
expandPanel: "Bereich erweitern",
collapsePanel: "Bereich einklappen",
swapDimensions: "Abmessungen tauschen",
applyCrop: "Zuschnitt anwenden",
cancelCrop: "Zuschnitt abbrechen",
fontFamily: "Schriftart",
textColor: "Textfarbe",
flipHorizontal: "Horizontal spiegeln",
flipVertical: "Vertikal spiegeln",
hexColorValue: "HEX-Farbwert",
backgroundColor: "Hintergrundfarbe",
foregroundColor: "Vordergrundfarbe",
swapColors: "Vorder- und Hintergrundfarbe tauschen",
resetColors: "Auf Standard Schwarz und Weiß zurücksetzen",
foregroundHex: "HEX-Wert der Vordergrundfarbe",
undo: "Rückgängig",
redo: "Wiederherstellen",
layers: "Ebenen",
addLayer: "Ebene hinzufügen",
deleteLayer: "Ebene löschen",
cancelOperation: "Vorgang abbrechen",
fill: "Füllen",
fileDetails: "Dateidetails",
language: "Sprache",
selected: "Ausgewählt",
deleteKey: "Schlüssel löschen",
editRole: "Rolle bearbeiten",
deleteRole: "Rolle löschen",
notInstalled: "Nicht installiert",
queued: "In Warteschlange zur Installation",
installing: "Wird installiert",
imageNOfTotal: "Bild {n} von {total}",
processingComplete: "Bild erfolgreich verarbeitet",
processingFailed: "Verarbeitung fehlgeschlagen",
settingsDialog: "Einstellungen",
helpDialog: "Hilfe",
navigationMenu: "Navigation",
homeLink: "SnapOtter Startseite",
},
pipelineTemplates: {
"web-optimize": {
name: "Web-optimieren",
description:
"Bild verkleinern, in WebP umwandeln und komprimieren für schnelles Laden im Web.",
},
"email-friendly": {
name: "E-Mail-tauglich",
description: "Bild so verkleinern, dass es als E-Mail-Anhang klein genug ist.",
},
"privacy-scrub": {
name: "Metadaten entfernen",
description: "EXIF, GPS und andere Metadaten entfernen, dann komprimieren.",
},
"social-square": {
name: "Social-Quadrat",
description: "Auf 1:1 zuschneiden und für Social-Media-Beiträge komprimieren.",
},
"watermark-batch": {
name: "Wasserzeichen-Stapel",
description: "Text-Wasserzeichen auf Bilder setzen, dann komprimieren.",
},
"shrink-pdf-email": {
name: "PDF für E-Mail verkleinern",
description: "PDF reduzieren und stark komprimieren, damit es E-Mail-Grenzen einhält.",
},
"podcast-polish": {
name: "Podcast-Feinschliff",
description: "Stille entfernen, Lautstärke normalisieren und Ein-/Ausblendungen hinzufügen.",
},
"cut-out-subject": {
name: "Motiv freistellen",
description:
"Hintergrund per KI entfernen und das transparente Freisteller-Bild komprimieren.",
},
"restore-old-photo": {
name: "Altes Foto restaurieren",
description: "Altes oder beschädigtes Foto per KI reparieren, kolorieren und hochskalieren.",
},
},
} as const;