From 6f2753c0324efda621c0fc7d063aa590bcb0cd9b Mon Sep 17 00:00:00 2001 From: deinzooshop Date: Sat, 24 Oct 2026 14:27:53 +0200 Subject: [PATCH 1/3] i18n: add German translation --- src/Filee.App/Assets/i18n/de.json | 1108 +++++++++++++++++ src/Filee.App/Services/AppLanguages.cs | 1 + src/Filee.App/Services/LocalizationService.cs | 2 + src/Filee.Setup/SetupOptions.cs | 2 +- .../LocalizationResourceTests.cs | 4 + tests/Filee.App.Tests/LocalizationTests.cs | 15 +- tests/Filee.App.Tests/RenderTests.cs | 2 + tests/Filee.Setup.Tests/SetupTextsTests.cs | 6 +- 8 files changed, 1137 insertions(+), 3 deletions(-) create mode 100644 src/Filee.App/Assets/i18n/de.json diff --git a/src/Filee.App/Assets/i18n/de.json b/src/Filee.App/Assets/i18n/de.json new file mode 100644 index 000000000..a398460ed --- /dev/null +++ b/src/Filee.App/Assets/i18n/de.json @@ -0,0 +1,1108 @@ +{ + "app.name": "Filee", + "app.tagline": "Ziehen, ablegen, fertig.", + "nav.home": "Start", + "nav.general": "Allgemein", + "nav.triggers": "Tastenkürzel", + "nav.toolbar": "Ringmenü", + "nav.presets": "Vorlagen", + "nav.watch": "Überwachte Ordner", + "nav.theme": "Design", + "nav.engines": "Module", + "nav.about": "Über Filee", + "tray.open": "Filee öffnen", + "tray.pause": "Tastenkürzel pausieren", + "tray.resume": "Tastenkürzel fortsetzen", + "tray.quit": "Beenden", + "tray.update": "Auf {0} aktualisieren", + "tray.tooltip": "Filee: {0} gedrückt halten und Dateien ziehen", + "close.title": "Filee weiter ausführen?", + "close.text": "Im Infobereich bleiben Ringmenü und Ordnerüberwachung aktiv.\nDas lässt sich später unter Einstellungen → Allgemein ändern.", + "close.tray": "Im Infobereich behalten", + "close.quit": "Beenden", + "close.dont_ask": "Nicht erneut fragen", + "home.title": "Start", + "home.drop_title": "Dateien hier ablegen", + "home.drop_select": "Dateien per Doppelklick auswählen", + "home.drop_hint": "Oder beim Ziehen von Dateien im Explorer {0} gedrückt halten. Das Ringmenü öffnet sich am Mauszeiger.", + "home.drop_hint_macos": "Oder beim Ziehen von Dateien im Finder {0} gedrückt halten. Das Ringmenü öffnet sich am Mauszeiger.", + "home.drop_hint_linux": "Oder beim Ziehen von Dateien im Dateimanager {0} gedrückt halten. Das Ringmenü öffnet sich am Mauszeiger.", + "home.accessibility_needed": "Damit sich das Ringmenü beim Ziehen mit ⌥ Option öffnet, erlaube Filee den Zugriff unter Bedienungshilfen.\nDie Funktion ist sofort nach dem Einschalten verfügbar. Falls Filee bereits eingetragen und eingeschaltet ist, entferne den Eintrag mit − und füge ihn mit + erneut hinzu. macOS übernimmt die Berechtigung nicht nach einem Update oder einer Neuinstallation von Filee.", + "home.elevated": "Filee läuft mit Administratorrechten. Deshalb kann der Explorer keine Dateien an Filee übergeben und dessen Menü nicht verwenden.\nAuch das Tastenkürzel kann die Auswahl im Explorer nicht auslesen.\nStarte Filee ohne Administratorrechte neu, um das zu beheben.", + "home.elevated_restart": "Ohne Administratorrechte neu starten", + "home.elevated_restart_failed": "Filee konnte sich nicht neu starten.\nBeende Filee über den Infobereich und starte es erneut.", + "elevation.notice_title": "Filee läuft mit Administratorrechten", + "elevation.notice_text": "Solange Filee so läuft, kann der Explorer keine Dateien an Filee übergeben und dessen Menü nicht verwenden.\nStarte Filee ohne Administratorrechte neu.", + "startup.elevated_other": "Eine andere Filee-Instanz läuft mit Administratorrechten.\nDer Explorer kann ihr keine Dateien übergeben.\nBeende Filee über den Infobereich und starte es erneut.", + "startup.no_answer": "Filee läuft, hat aber nicht geantwortet.\nFalls es mit Administratorrechten läuft, beende es über den Infobereich und starte es erneut.", + "home.recent": "Letzte Konvertierungen", + "home.recent_empty": "Hier erscheinen deine konvertierten Dateien.", + "home.no_matches": "Keine Konvertierung im Verlauf passt zur Suche.", + "home.open_folder": "Ordner öffnen", + "home.open_file": "Datei öffnen", + "home.open_with": "Öffnen mit", + "home.clear_history": "Leeren", + "home.files": "{0} Dateien", + "home.failed_files": "{0} fehlgeschlagen", + "donut.center_drag": "Dateien hierher ziehen", + "donut.files_same": "{0} × {1}", + "donut.files_mixed": "{0} Dateien", + "donut.drop_to": "Ablegen → {0}", + "donut.pick_in_group": "Zum Auswählen nach außen bewegen", + "donut.group_empty": "Diese Gruppe enthält keine Vorlagen mehr. Bearbeite sie unter Einstellungen → Ringmenü", + "donut.click_to": "Klicken → {0}", + "donut.cancel": "Zum Abbrechen hier ablegen", + "donut.close_hint": "Esc zum Schließen", + "donut.edit": "Vorlage bearbeiten", + "donut.empty": "Vorlagen hierher ziehen", + "donut.same_format": "Gleiches Format", + "donut.group_caption": "Gruppe mit {0}", + "donut.flip_to_back": "{0} ↻ Rückseite", + "donut.flip_to_front": "{0} ↻ Vorderseite", + "toast.converting": "{0} → {1}", + "toast.done": "Fertig", + "toast.done_errors": "{0} von {1} fehlgeschlagen", + "toast.failed": "Konvertierung fehlgeschlagen", + "toast.cancelled": "Abgebrochen", + "toast.skipped": "Übersprungen (Datei vorhanden)", + "toast.open_folder": "Anzeigen", + "toast.cancel": "Abbrechen", + "toast.missing_fonts": "Fehlende Dokumentschriften: {0}", + "toast.get_fonts": "Schriftarten herunterladen", + "download.badge": "{0}/s · {1}", + "download.badge_files": "{0} · {1} von {2} Dateien", + "error.unsupported_source": "Dieser Dateityp wird nicht unterstützt", + "error.empty_file": "Die Datei ist leer (0 Bytes). Eine über „Neu“ im Kontextmenü erstellte Datei bleibt leer, bis du sie in ihrem Programm öffnest und speicherst", + "format_request.request": "Dieses Format vorschlagen", + "format_request.notice_title": "Filee kann {0}-Dateien noch nicht konvertieren", + "format_request.notice_text": "Sag uns, welches Format du brauchst.\nDie Anfragen bestimmen, welche Formate Filee als Nächstes unterstützt.\nVerschlüsselte oder kopiergeschützte Dateien (DRM) lassen sich unabhängig vom Format nicht konvertieren.", + "error.no_route": "Kein Modul kann diese Konvertierung ausführen", + "error.cannot_turn": "Drehen und Spiegeln ist nur bei Bildern möglich", + "error.no_transparency": "Dieses Format unterstützt keine Transparenz. Es gibt daher keine transparenten Ränder zum Abschneiden", + "error.ocr_language_download": "Die OCR-Sprache konnte nicht heruntergeladen werden", + "error.ocr_needs_tesseract": "Apple Vision kann diese Sprache nicht lesen. Installiere Tesseract unter Einstellungen → Module", + "error.too_many_frames": "Zu viele Einzelbilder zum Speichern. Erhöhe den Wert für „Jedes n-te Einzelbild“", + "error.too_many_pictures": "Zu viele Bilder für ein Video. Teile sie auf mehrere Videos auf", + "error.not_enough_space": "Nicht genügend freier Speicherplatz für die Bilder", + "error.no_motion_photo": "Dieses Foto enthält kein für Filee lesbares Video (Android Motion Photo oder iPhone Live Photo mit zugehöriger MOV-Datei im selben Ordner)", + "error.live_photo_start": "Der Clip beginnt nach dem Ende dieses Videos. Wähle einen früheren „Clipbeginn“", + "error.live_photo_hdr": "Dieser FFmpeg-Version fehlt der zscale-Filter. Deshalb lässt sich dieses HDR-Video nicht in ein Live / Motion Photo umwandeln. Der FFmpeg-Download von Filee enthält den Filter", + "error.rhwp_timeout": "rhwp konnte dieses lange Dokument nicht rechtzeitig fertigstellen", + "error.rhwp_timeout_calibre": "rhwp konnte dieses lange Dokument nicht rechtzeitig fertigstellen. Verschiebe bei E-Books Calibre unter Einstellungen → Module über den HWPX-Writer. Calibre erstellt die PDF deutlich schneller", + "error.needs_shaping": "Diese Schrift benötigt LibreOffice für eine korrekte Konvertierung. Installiere es unter Einstellungen → Module", + "error.runtime_missing": "Eine von diesem Modul benötigte Microsoft-Visual-C++-Laufzeitdatei fehlt oder ist veraltet. Aktualisiere Filee, installiere es neu oder installiere Microsoft Visual C++ Redistributable (x64)", + "error.conversion_failed": "Das Modul hat einen Fehler gemeldet", + "error.pdf_no_tables": "Diese PDF enthält keine Tabellen mit eingezeichneten Linien. Es gibt daher nichts für ein Tabellenblatt zu übernehmen. Eine gescannte PDF enthält überhaupt keinen Text.", + "error.pdf_password_gone": "Das PDF-Passwort der Vorlage wird nicht im Verlauf gespeichert, und die Vorlage enthält kein Passwort mehr. Konvertiere die Dateien erneut mit einer Vorlage, die das Passwort enthält.", + "error.web_download_failed": "Die Datei konnte nicht heruntergeladen werden", + "error.web_page": "Der Link öffnet eine Webseite statt einer Datei. Filee kann keine Dateien herunterladen, für die eine Anmeldung nötig ist. Speichere sie zuerst im Browser", + "error.web_too_large": "Die Datei ist größer als 2 GB", + "error.web_blocked": "Programme, Installationsdateien und Skripte werden nicht gespeichert", + "error.web_timeout": "Der Server antwortet nicht mehr", + "error.geo_empty": "Die Datei enthält keine Geoobjekte", + "error.geo_unknown_crs": "Die Koordinaten sind keine Längen- und Breitengrade, und die Datei nennt kein Koordinatensystem. Bewahre die .prj-Datei im selben Ordner wie das Shapefile auf", + "error.geo_unsupported_crs": "Dieses Koordinatensystem wird noch nicht unterstützt", + "error.geo_bad_coordinates": "Die Koordinaten passen nicht zu diesem Koordinatensystem", + "error.geo_csv_no_coordinates": "Die CSV-Datei enthält weder Spalten für Längen- und Breitengrade noch eine WKT-Spalte", + "error.geo_csv_no_locations": "Keine Zeile der CSV-Datei enthält eine verwendbare Position", + "error.geo_unsupported_shape": "Dieser Geometrietyp wird nicht unterstützt", + "error.geo_too_large": "Das Shapefile würde die Formatgrenze von 2 GB überschreiten", + "notice.pdf_not_smaller": "Die Datei ließ sich nicht verkleinern und wurde unverändert kopiert", + "notice.cad_newer_left_out": "Objekte, die die gewählte AutoCAD-Version nicht unterstützt (Multiführungslinien, Netze …), wurden weggelassen", + "notice.original_kept": "Das Original wurde beibehalten und das Ergebnis als Kopie gespeichert", + "notice.original_in_trash": "Das Original liegt im Papierkorb. Das Ergebnis hat seinen eigenen Namen behalten", + "notice.original_unchanged": "Die Datei ließ sich nicht verkleinern. Das Original blieb unverändert", + "trash.no_recycle_bin": "dieses Laufwerk hat keinen Papierkorb", + "trash.in_use": "die Datei ist in einem anderen Programm geöffnet", + "trash.read_only": "die Datei ist schreibgeschützt", + "trash.other_drive": "der Papierkorb liegt auf einem anderen Laufwerk", + "trash.no_folder": "es gibt keinen Papierkorbordner", + "trash.failed": "die Datei konnte nicht in den Papierkorb verschoben werden", + "trash.cannot_place": "das Ergebnis konnte nicht im Ordner des Originals gespeichert werden", + "notice.empty_spreadsheet_pages_removed": "Leere Tabellenseiten wurden entfernt", + "notice.ocr_has_text": "Alle Seiten enthalten bereits Text. Die Datei wurde unverändert kopiert", + "notice.live_photo_pair": "Als Foto und MOV-Datei mit gleichem Namen gespeichert. Importiere beide zusammen (über iCloud-Fotos, AirDrop oder Fotos auf einem Mac), um ein Live Photo zu erhalten", + "notice.geo_datum_assumed": "Das geodätische Datum ist nicht WGS 84. Die Positionen wurden dennoch wie WGS 84 umgerechnet und können um mehrere Hundert Meter abweichen", + "notice.geo_gpx_lossy": "GPX speichert nur Punkte, Routen und Tracks mit wenigen Feldern. Andere Attribute wurden weggelassen und Polygone in Tracks umgewandelt", + "notice.geo_text_cut": "Einige Texte überschritten die Feldlänge von Shapefiles (254 Bytes) und wurden gekürzt", + "notice.geo_columns_dropped": "Ein Shapefile kann höchstens 255 Spalten enthalten. Die übrigen wurden weggelassen", + "notice.geo_rows_without_location": "Einige Zeilen enthalten keine verwendbare Position und wurden ohne Geometrie beibehalten", + "notice.geo_field_names": "Feldnamen in Shapefiles dürfen höchstens 10 Zeichen lang sein. Einige wurden gekürzt", + "notice.geo_shapefile_split": "Ein Shapefile enthält nur einen Geometrietyp. Punkte, Linien und Polygone wurden deshalb in getrennten Dateien gespeichert", + "engine.reason.not_installed": "Nicht installiert", + "engine.reason.error": "Fehler bei der Prüfung", + "engine.reason.unsupported_platform": "Auf dieser Plattform nicht verfügbar", + "engine.reason.needs_package": "Benötigt {0}. Installiere es unter Einstellungen → Module", + "engine.magick.description": "JPG, PNG, WEBP, AVIF, HEIC, TIFF, GIF, APNG, PSD, Kamera-RAW und mehr.\nQualität, Größe und DPI richten sich nach deiner Vorlage.", + "engine.wic.description": "JPEG-XR-Bilder (.jxr, .wdp, .hdp), etwa HDR-Bildschirmfotos von Windows, in PNG, JPG und andere Bildformate – mit dem Windows-Codec.\nHDR wird per Tonemapping angepasst, damit Details in hellen Bereichen erhalten bleiben.", + "engine.pdfium.description": "Wandelt PDF-Seiten in PNG, JPG und TIFF um (auch mehrseitige TIFF und GIF). Die Auflösung richtet sich nach der Vorlage.", + "engine.pdfsharp.description": "Erstellt PDFs aus Bildern, führt PDFs zusammen, teilt sie oder entnimmt Seitenbereiche.\nVerkleinert PDFs auch durch Herunterskalieren der enthaltenen Bilder.", + "engine.rhwp.description": "Wandelt HWP/HWPX in PDF um und konvertiert HWP ↔ HWPX.\nErzeugt auch PDFs aus Dokumenten, die über HWPX konvertiert werden (DOCX, XLSX, PPTX, E-Books…).", + "engine.unhwp.description": "Extrahiert Text, Markdown und HTML aus HWP und HWPX.", + "engine.markdown.description": "Markdown → HTML und reiner Text.\nTextdateien und Skript-Quelltexte → UTF-8-TXT, ohne Skripte auszuführen.", + "engine.spreadsheet.description": "Konvertiert XLSX, XLS, ODS, CSV und TSV untereinander (XLS nur lesend).\nEine CSV-Datei pro Tabellenblatt.", + "engine.ooxml.description": "Dateien mit Makros und Dokumentvorlagen (DOCM, XLSM, PPTM, DOTX…) ↔ DOCX, XLSX, PPTX.\nMakros werden entfernt.", + "engine.hwpx-writer.description": "Erstellt HWPX aus Word, Excel, PowerPoint, PDF, OFD, HTML, E-Books und Markdown.\nDer erste Schritt zur PDF-Konvertierung von Dokumenten ohne Office.", + "engine.docx-writer.description": "Erstellt Word-Dokumente (DOCX) aus PDF, OFD, HWP/HWPX, Markdown, HTML, Tabellen, Folien und E-Books.", + "engine.pdf-text.description": "Extrahiert PDF-Text in Lesereihenfolge, auch aus zweispaltigen Seiten (keine Texterkennung für Scans).", + "engine.pdf-slides.description": "Wandelt PDFs in PowerPoint-Folien um: Jede Seite wird als Bild auf einer eigenen Folie dargestellt (wie im PDF, nicht bearbeitbar). Der Seitentext steht in den Sprechernotizen.", + "engine.pdf-tables.description": "Überträgt Tabellen mit eingezeichneten Linien aus einer PDF in eine Excel-Arbeitsmappe, jeweils auf ein eigenes Blatt. Zahlen und Datumsangaben bleiben echte Werte.", + "engine.email.description": "E-Mails (EML, Outlook MSG) in HTML und Text mit Absender, Empfängern, Datum und Bildern; Anhänge in eine ZIP-Datei.\nMSG in EML. Gespeicherte Webseiten (MHTML) in eine HTML-Datei mit ihren Bildern.", + "engine.data.description": "Konvertiert JSON, JSON Lines, YAML, TOML, XML und CSV untereinander.\nvCard-Kontakte und iCalendar-Termine in CSV und zurück.\nKommentare werden entfernt. CSV speichert nur Tabellen.", + "engine.vector.description": "SVG und SVGZ in Vektor-PDF, Bilder und DXF; Bilder als SVG vektorisieren; Illustrator-Dateien mit eingebettetem PDF-Inhalt.", + "engine.icns.description": "macOS-App-Symbole (ICNS) aus Bildern und in Bilder umwandeln.", + "engine.font.description": "Schriftarten: Konvertiert TTF, OTF, WOFF, WOFF2 und EOT untereinander.", + "engine.cad.description": "AutoCAD-Zeichnungen: DWG ↔ DXF und beide in PDF, SVG und PNG.", + "engine.model3d.description": "3D-Modelle: Konvertiert GLB, glTF, STL, OBJ, 3MF und PLY untereinander, FBX in jedes dieser Formate und erstellt eine PNG-Vorschau.", + "engine.geo.description": "Vektor-Geodaten: Konvertiert GeoJSON, KML, KMZ, GPX, Shapefile und CSV (Längen-/Breitengrad oder WKT) untereinander.\nErgebnisse verwenden WGS-84-Längen- und Breitengrade. Projizierte Shapefiles (UTM, Web Mercator, Lambert, Albers) werden umgerechnet.", + "engine.archive.description": "Entpackt ZIP, 7Z, RAR, TAR, ISO und weitere Formate und erstellt ZIP, 7Z oder TAR.GZ (7-Zip).", + "engine.ebook.description": "EPUB, MOBI, AZW3, FB2 und Comics (CBZ, CBR) in PDF, EPUB, DOCX und Text.\nAußerdem Dokumente in EPUB, EPUB in KEPUB für Kobo und PDF in CBZ.", + "engine.subtitle.description": "Untertitel: Konvertiert SRT, ASS/SSA, WebVTT, SAMI (SMI), LRC, TTML, MicroDVD und SCC untereinander und speichert sie als UTF-8.\nKoreanische SMI- und SRT-Dateien in CP949 / EUC-KR werden korrekt gelesen.", + "engine.ffmpeg.description": "Video und Audio: MP4, MOV, MKV, WEBM, MP3, M4A, WAV, FLAC und mehr.\nExtrahiert auch Ton und Untertitel, erstellt GIF- und APNG-Animationen und speichert Bilder als HEIC.", + "engine.pandoc.description": "Markdown und HTML ↔ ODT und RTF, DOCX → Markdown\nreStructuredText, LaTeX, Org, AsciiDoc, Typst, MediaWiki, DocBook, Jupyter und mehr ↔ Markdown, HTML, DOCX und ODT\nMarkdown und Org → PPTX-Folien", + "engine.ghostscript.description": "EPS, PostScript und ältere Illustrator-Dateien in PDF und Bilder; PDF in EPS und PS.", + "engine.tesseract.description": "Erkennt Text in Scans und Bildern (OCR): durchsuchbare PDF, DOCX, TXT.", + "engine.vision.description": "Erkennt Text in Scans und Bildern mit der Texterkennung von macOS (OCR): durchsuchbare PDF, DOCX, TXT. Kein Download nötig.", + "engine.calibre.description": "Seltene E-Book-Formate (LIT, LRF, CHM, PDB, RB…) und Kindle-Ausgabe (MOBI, AZW3).\nOberhalb des HWPX-Writers erstellt es auch PDFs aus E-Books (bei langen Büchern deutlich schneller).", + "engine.libreoffice.description": "Liest ältere und weniger verbreitete Formate: DOC, PPT, Pages, Keynote, Numbers, WordPerfect, ClarisWorks, Publisher, Visio…\nSpeichert auch als DOC, XLS, PPT, ODT, ODP, OpenDocument-Vorlagen und EMF.", + "profile.images": "Bilder", + "profile.pdf": "PDF", + "profile.office": "Dokumente", + "profile.spreadsheets": "Tabellen", + "profile.presentations": "Präsentationen", + "profile.hwp": "HWP / HWPX", + "profile.text": "Text & Markdown", + "profile.ebooks": "E-Books", + "profile.video": "Video", + "profile.audio": "Audio", + "profile.subtitles": "Untertitel", + "profile.vector": "Vektorgrafiken", + "profile.archives": "Archive", + "profile.cad": "CAD-Zeichnungen", + "profile.fonts": "Schriftarten", + "profile.data": "Daten", + "profile.models": "3D-Modelle", + "profile.geo": "Geodaten", + "profile.mixed": "Gemischte Dateien", + "preset.crop": "Zuschneiden", + "crop.save": "Zuschneiden & Speichern", + "crop.reset": "Zurücksetzen", + "crop.skip": "Überspringen", + "crop.aspect_title": "Seitenverhältnis:", + "crop.aspect_free": "Frei", + "crop.aspect_original": "Original", + "crop.page_counter": "{0} von {1}", + "crop.save_next": "Zuschneiden & Weiter", + "crop.swap": "Hoch- und Querformat tauschen (X)", + "crop.portrait": "Hochformat", + "crop.landscape": "Querformat", + "crop.hint_keys": "Pfeiltasten verschieben den Rahmen, Umschalt × 10 · Esc schließt", + "crop.close_hint": "Schließen (Esc)", + "crop.maximize": "Maximieren", + "crop.restore": "Wiederherstellen", + "crop.state_current": "Gerade geöffnet", + "crop.state_waiting": "Wartend", + "crop.state_done": "Zugeschnitten", + "crop.state_skipped": "Übersprungen", + "crop.state_failed": "Fehlgeschlagen", + "preset.clip": "Clip schneiden", + "clip.start": "Beginn", + "clip.end": "Ende", + "clip.length": "Länge", + "clip.timeline": "Zeitleiste", + "clip.save": "Clip speichern", + "clip.save_next": "Speichern & Weiter", + "clip.seconds": "{0} s", + "clip.length_hint": "Clip mit dieser Dauer in Sekunden ab dem Beginn", + "clip.fast": "Schnell, ohne erneutes Kodieren", + "clip.fast_hint": "Kopiert das Video unverändert: schnell und verlustfrei. Der Clip beginnt jedoch am Schlüsselbild vor dem gewählten Beginn (bis zu wenige Sekunden früher). Deaktivieren, um genau an den gewählten Bildern zu schneiden (kodiert erneut und dauert länger).", + "clip.hint_keys": "Leertaste spielt ab · C teilt · Entf schneidet heraus (mit Lücke), Umschalt+Entf schließt die Lücke · zum Mehrfachauswählen über Abschnitte ziehen oder Strg / Umschalt+klicken, Strg+A wählt alle · Abschnitt am Rand kürzen · ← → um 0,1 s, Umschalt um 1 s · S / E / P für Beginn, Ende oder Abspielposition · Strg+Z macht rückgängig · Z zoomt · Eingabe speichert · Esc schließt", + "clip.playhead": "Abspielposition", + "clip.play": "Mit Ton abspielen (Leertaste)", + "clip.pause": "Pause (Leertaste)", + "clip.fast_needs_encode": "Schnitte, Geschwindigkeit, Lautstärke oder Überblendungen: Der Clip wird erneut kodiert und lässt sich daher nicht unverändert kopieren.", + "clip.cut": "Teilen", + "clip.cut_hint": "Abschnitt an der Abspielposition teilen (C)", + "clip.delete": "Löschen", + "clip.restore": "Wiederherstellen", + "clip.delete_hint": "Ausgewählten Abschnitt herausschneiden und eine Lücke mit einer Schaltfläche zum Schließen lassen (Entf). Umschalt+Entf schließt die Lücke sofort. Auf A1 wird der Abschnitt stummgeschaltet, auf A2 wird die Musik entfernt", + "clip.undo": "Rückgängig (Strg+Z)", + "clip.redo": "Wiederholen (Strg+Y)", + "clip.magnet": "Magnet", + "clip.magnet_hint": "Magnet (M): Abspielposition, Abschnittsränder und Musik rasten an Schnittstellen und an der Abspielposition ein", + "clip.zoom": "Zoom", + "clip.zoom_hint": "Zeitleiste auf den Clip vergrößern oder auf das gesamte Video verkleinern (Z)", + "clip.sequence": "Sequenz: Bilder, Ton und Musik", + "clip.close_gap": "Lücke schließen", + "clip.no_music_yet": "A2: Musik aus einer Datei (Musik…)", + "clip.remove_music": "Musik entfernen", + "clip.mute": "Ton ausschalten", + "clip.unmute": "Ton einschalten", + "clip.mute_hint": "Ton des ausgewählten Abschnitts ausschalten. Das Bild läuft weiter (auch mit Entf auf A1 möglich)", + "clip.music": "Musik", + "clip.music_hint": "Musik aus einer Datei unter den Clip legen (A2). Ziehen verschiebt sie; Ziehen an ihrer Linie ändert die Lautstärke", + "clip.music_pick": "Musik für den Clip", + "clip.music_files": "Audio- und Videodateien", + "clip.no_music": "Diese Datei enthält keinen Ton, der als Musik verwendet werden kann", + "clip.preparing": "Wird vorbereitet…", + "clip.finding_silence": "Stille Abschnitte werden gesucht…", + "clip.loading_music": "Musik wird gelesen…", + "clip.selected_count": "{0} ausgewählt", + "clip.volume": "Lautstärke", + "clip.volume_hint": "Lautstärke des ausgewählten Abschnitts (0–200 %)", + "clip.speed": "Geschwindigkeit", + "clip.speed_hint": "Geschwindigkeit des ausgewählten Abschnitts. Die Tonhöhe bleibt erhalten", + "clip.remove_silence": "Stille entfernen", + "clip.remove_silence_hint": "Stille Abschnitte im Clip suchen und herausschneiden (Strg+Z stellt sie wieder her)", + "clip.close_gaps": "Lücken schließen", + "clip.close_gaps_hint": "Alle durch entfernte Abschnitte entstandenen Lücken schließen", + "clip.fade_in": "Einblenden", + "clip.fade_in_hint": "Bild und Ton innerhalb einer Sekunde aus Schwarz und Stille einblenden", + "clip.fade_out": "Ausblenden", + "clip.fade_out_hint": "Bild und Ton innerhalb einer Sekunde zu Schwarz und Stille ausblenden", + "clip.cannot_cut": "Setze die Abspielposition innerhalb des Clips, nicht direkt auf eine Schnittstelle", + "clip.last_piece": "Der letzte abspielbare Abschnitt lässt sich nicht herausschneiden", + "clip.silence_removed": "Stille entfernt: {0}", + "clip.no_silence": "Keine Stille gefunden", + "clip.cannot_play": "Der Clip lässt sich nicht abspielen", + "preset.half_size": "Halbe Größe", + "preset.grayscale": "Graustufen", + "preset.remove_background": "Hintergrund entfernen", + "preset.trim_transparent": "Transparente Ränder abschneiden", + "preset.group_rotate": "Drehen", + "preset.rotate_left": "Nach links drehen", + "preset.rotate_left.short": "Links", + "preset.rotate_right": "Nach rechts drehen", + "preset.rotate_right.short": "Rechts", + "preset.rotate_180": "Um 180° drehen", + "preset.rotate_180.short": "180°", + "preset.group_flip": "Spiegeln", + "preset.flip_horizontal": "Horizontal spiegeln", + "preset.flip_horizontal.short": "Horizontal", + "preset.flip_vertical": "Vertikal spiegeln", + "preset.flip_vertical.short": "Vertikal", + "preset.merge_pdf": "PDF zusammenführen", + "merge.order_title": "Reihenfolge festlegen", + "merge.order_hint": "Wähle eine Datei und verschiebe sie nach oben oder unten. Dateien werden von oben nach unten zusammengeführt. (Alt+↑ / Alt+↓)", + "preset.group_pdf_edit": "Bearbeiten", + "preset.pdf_crop": "PDF zuschneiden", + "preset.pdf_crop.short": "Zuschneiden", + "preset.pdf_pages": "Seiten umordnen / löschen", + "preset.pdf_pages.short": "Seiten", + "preset.pdf_add": "Seiten hinzufügen", + "preset.pdf_add.short": "Hinzufügen", + "preset.pdf_extract": "Seite extrahieren", + "preset.pdf_extract.short": "Extrahieren", + "preset.split_pdf.short": "Aufteilen", + "pdf_editor.title": "PDF-Seiten bearbeiten", + "pdf_editor.hint": "Seiten umordnen, drehen oder löschen. Seiten aus einer anderen PDF hinzufügen oder die ausgewählte Seite als eigene Datei extrahieren.", + "pdf_editor.add": "PDF hinzufügen", + "pdf_editor.delete": "Löschen", + "pdf_editor.page": "Seite {0}", + "pdf_editor.rotation": "Um {0}° gedreht", + "pdf_editor.loading": "Seiten werden geladen…", + "pdf_editor.saving": "PDF wird gespeichert…", + "pdf_editor.saved": "{0} gespeichert", + "preset.split_pdf": "PDF aufteilen", + "preset.compress_pdf": "PDF komprimieren", + "preset.searchable_pdf": "Durchsuchbare PDF", + "preset.long_image": "Langes Bild", + "preset.pdf_slides": "PPTX (Folien)", + "preset.extract": "Entpacken", + "preset.zip_all": "Eine ZIP-Datei", + "preset.extract_subtitles": "Untertitel extrahieren", + "preset.trace_svg": "Vektor-SVG", + "preset.trace_line_art": "Linien-SVG", + "preset.extract_frames_png": "Einzelbilder (PNG)", + "preset.extract_frames_jpg": "Einzelbilder (JPG)", + "preset.extract_motion": "Live-Photo-Video extrahieren", + "preset.live_photo_iphone": "Live Photo (iPhone)", + "preset.motion_photo_android": "Motion Photo (Android)", + "preset.compress_image": "Bild komprimieren", + "preset.compress_video": "Video komprimieren", + "preset.video_from_images": "Video aus Bildern", + "preset.extract_audio": "Ton extrahieren", + "preset.merge_videos": "Videos zusammenführen", + "preset.compress_audio": "Audio komprimieren", + "preset.merge_audio": "Audio zusammenführen", + "preset.remove_metadata": "Metadaten entfernen", + "format.folder": "Ordner", + "format.category.Image": "Bild", + "format.category.Pdf": "PDF", + "format.category.Document": "Dokument", + "format.category.Spreadsheet": "Tabelle", + "format.category.Presentation": "Präsentation", + "format.category.Hwp": "HWP", + "format.category.Text": "Text", + "format.category.Video": "Video", + "format.category.Audio": "Audio", + "format.category.Ebook": "E-Book", + "format.category.Archive": "Archiv", + "format.category.Vector": "Vektor", + "format.category.Cad": "CAD", + "format.category.Font": "Schriftart", + "format.category.Subtitle": "Untertitel", + "format.category.Data": "Daten", + "format.category.Model3D": "3D-Modell", + "format.category.Geo": "Geodaten", + "general.title": "Allgemein", + "general.language": "Sprache", + "general.language_auto": "Systemstandard", + "general.start_with_system": "Filee bei der Anmeldung starten", + "general.show_in_dock": "Filee im Dock anzeigen", + "general.show_menu_bar_icon": "Filee in der Menüleiste anzeigen", + "general.dock_failed": "Das Dock-Symbol von Filee konnte nicht geändert werden.", + "general.context_menu": "„Mit Filee konvertieren“ im Explorer-Kontextmenü anzeigen", + "general.context_menu_label": "Mit Filee konvertieren", + "general.context_menu_macos": "„Mit Filee konvertieren“ beim Rechtsklick auf Dateien im Finder anzeigen", + "general.context_menu_linux": "„Mit Filee konvertieren“ zum Dateimanager hinzufügen", + "general.integration_macos": "Der Finder zeigt den Eintrag im Kontextmenü (bei langen Menüs unter Schnellaktionen oder Dienste).\nLass Filee im Ordner Programme.", + "general.integration_linux": "Fügt Dateiaktionen zu Thunar, Nautilus, Nemo und Dolphin hinzu.\nUm das Tastenkürzel in Thunar zu ändern, schließe Thunar vorher und öffne es danach erneut.", + "general.integration_failed": "Systemintegration konnte nicht eingerichtet werden: {0}", + "general.startup_entry_missing": "Der Autostarteintrag wurde direkt nach dem Speichern entfernt oder geändert. Möglicherweise blockiert eine Sicherheitssoftware den Eintrag.", + "general.modern_menu_hint": "Unter Windows 11 steht dieser Eintrag unter „Weitere Optionen anzeigen“.\nEr kann auch im Hauptmenü erscheinen (Windows fragt einmal nach Administratorrechten).", + "general.modern_menu_on": "„Mit Filee konvertieren“ steht im Hauptmenü von Windows 11.", + "general.modern_menu_outdated": "Der Eintrag im Hauptmenü gehört zu einer älteren oder verschobenen Filee-Installation.\nFüge ihn erneut hinzu, um ihn zu aktualisieren.", + "general.modern_menu_add": "Zum Hauptmenü hinzufügen", + "general.modern_menu_remove": "Aus dem Hauptmenü entfernen", + "general.modern_menu_busy": "Warten auf Windows…", + "general.modern_menu_cancelled": "Abgebrochen. Der Eintrag bleibt unter „Weitere Optionen anzeigen“.", + "general.modern_menu_failed": "Windows hat den Eintrag nicht hinzugefügt: {0}", + "general.modern_menu_remove_failed": "Windows hat den Eintrag nicht entfernt: {0}", + "general.default_output": "Standardspeicherort", + "general.default_output_hint": "Vorlagen mit der Einstellung „Standardspeicherort“ speichern hier.\nVorlagen mit eigenem Speicherort behalten diesen bei.", + "general.keep_dates": "Ursprüngliche Dateizeitstempel bei jeder Konvertierung beibehalten", + "general.keep_dates_hint": "Konvertierte Dateien behalten bei jeder Vorlage das Erstellungs- und Änderungsdatum des Originals.\nAusgeschaltet: Gilt nur für Vorlagen mit „Ursprüngliche Dateizeitstempel beibehalten“.", + "general.browser_drops": "Aus dem Browser gezogene Dateien", + "general.browser_drops_hint": "Halte die Taste gedrückt und ziehe ein Bild, einen Dateilink oder einen Download aus Chrome, Edge, Firefox oder Safari. Das Ringmenü öffnet sich wie bei deinen eigenen Dateien. Die Datei wird in diesem Ordner gespeichert. Vorlagen, die neben dem Original speichern, legen auch die konvertierte Datei hier ab.\nFilee lädt Links selbst herunter, ohne die Anmeldung deines Browsers zu verwenden.", + "general.browser_drops_folder": "Speichern in", + "general.browser_drops_only_converted": "Nur die konvertierte Datei speichern", + "general.browser_drops_only_converted_hint": "Das Original bleibt in einem temporären Ordner und wird nach der Konvertierung gelöscht.", + "general.zip_geo": "Alle Geodaten-Ergebnisse als ZIP speichern", + "general.zip_geo_hint": "Shapefile, GeoJSON, KML, GPX und andere Geodaten-Ergebnisse werden bei jeder Vorlage in eine ZIP-Datei pro Datei gepackt.\nAusgeschaltet: Gilt nur für Vorlagen mit „Ergebnis als ZIP speichern“.", + "general.check_updates": "Automatisch nach Updates suchen", + "general.close_action": "Beim Schließen des Fensters", + "general.close.Ask": "Jedes Mal fragen", + "general.close.Tray": "Filee im Infobereich weiter ausführen", + "general.close.Quit": "Filee beenden", + "general.history": "Konvertierungsverlauf", + "general.no_history": "Keinen Verlauf der letzten Konvertierungen speichern", + "general.history_limit": "Anzahl der Konvertierungen im Verlauf", + "general.clear_history": "Verlauf leeren", + "general.history_count": "{0} Konvertierung(en) im Verlauf", + "general.history_cleared": "Verlauf geleert.", + "general.check_now": "Jetzt prüfen", + "general.update_available": "Version {0} ist verfügbar", + "general.update_none": "Du bist auf dem neuesten Stand ({0})", + "update.sidebar": "Auf {0} aktualisieren", + "update.notice_title": "Filee {0} ist verfügbar", + "update.notice_text": "Klicke auf Aktualisieren. Filee lädt die neue Version herunter und installiert sie. Deine Einstellungen bleiben erhalten.", + "update.download": "Herunterladen", + "update.later": "Später", + "update.install": "Aktualisieren", + "update.notice_text_portable": "Dies ist die portable Version.\nLade die neue ZIP-Datei herunter und entpacke sie in diesen Ordner. Ersetze dabei die vorhandenen Programmdateien. Deine Einstellungen bleiben erhalten.", + "update.downloading": "Update wird heruntergeladen… {0}%", + "update.installing_short": "Installation läuft…", + "update.installing": "Das Installationsprogramm läuft. Filee startet danach erneut.", + "update.failed": "Automatisches Update fehlgeschlagen. Lade die neue Version von filee.sh herunter.", + "update.failed_alert": "Das Update konnte nicht heruntergeladen werden.\nKlicke auf OK, um filee.sh zu öffnen und die neue Version dort herunterzuladen.", + "update.rolled_back_alert": "Das Update konnte nicht installiert werden. Filee hat deshalb die bisherige Version beibehalten.\nKlicke auf OK, um filee.sh zu öffnen und die neue Version dort herunterzuladen.", + "update.rolled_back_log": "Details stehen im Protokoll: {0}", + "update.cancelled": "Update abgebrochen. Klicke erneut auf Aktualisieren, um es zu installieren.", + "update.level.Required": "Erforderliches Update", + "update.level.Recommended": "Empfohlenes Update", + "update.level.Optional": "Optionales Update", + "update.level_hint.Required": "Behebt Probleme, die deine Dateien betreffen. Bitte aktualisieren.", + "update.level_hint.Recommended": "Behebt Fehler.", + "update.level_hint.Optional": "Neue Funktionen. Aktualisiere, wann du möchtest.", + "update.pill.Required": "Erforderlich", + "update.pill.Optional": "Optional", + "update.more_changes": "… und {0} weitere", + "general.data_folder": "Einstellungsordner", + "general.open_data_folder": "Öffnen", + "general.library": "Vorlagen und Werkzeugleisten", + "general.export": "Exportieren…", + "general.import": "Importieren…", + "general.reset_library": "Auf Standard zurücksetzen", + "general.reset_confirm": "Alle Vorlagen und Werkzeugleistenprofile durch die Standardwerte ersetzen?", + "general.imported": "{0} Einträge importiert", + "triggers.title": "Tastenkürzel", + "triggers.description": "Wähle, wie sich das Ringmenü öffnet. Du kannst beliebig viele Gesten hinzufügen.", + "triggers.macos_permissions": "Erlaube Filee unter Systemeinstellungen > Datenschutz & Sicherheit > Bedienungshilfen.\nFalls Filee bereits eingeschaltet ist, Gesten aber nicht starten, entferne den Eintrag mit − und füge ihn mit + erneut hinzu.\nFinder fragt außerdem beim ersten Tastenkürzel für ausgewählte Dateien nach der Erlaubnis zur Automation.", + "triggers.linux_x11": "Ziehgesten funktionieren unter X11.\nBei aktivierter Dateimanager-Integration führt das erste Tastenkürzel die Filee-Aktion in Thunar aus (Thunar nach Änderungen neu öffnen).\nHaltegesten und Tastenkürzel in anderen Dateimanagern sind nicht verfügbar. Nutze das Filee-Menü oder den Ablagebereich.", + "triggers.linux_gnome_wayland": "GNOME Wayland: Aktiviere „Filee donut at the cursor“ in der App Erweiterungen. Halte dann Strg gedrückt und ziehe eine Datei in Dateien.\nFalls die Erweiterung nach der ersten Installation oder einem Update nicht geladen wurde, melde dich ab und wieder an. Administratorrechte oder die Gruppe input sind nicht erforderlich.\nZiehgesten, eigene Zusatztasten, Pausieren und ausgeschlossene Apps werden unterstützt. Globale Tastenkürzel für ausgewählte Dateien, Haltegesten sowie das Wenden mit Tab oder Mausrad während des Ziehens werden von dieser Integration nicht unterstützt.", + "triggers.gnome_waiting": "Warten auf die Filee-Erweiterung für GNOME.\nAktiviere „Filee donut at the cursor“ unter Erweiterungen. Melde dich nach Installation oder Update bei Bedarf ab und wieder an. Ablagebereich und Dateimanager-Aktionen bleiben verfügbar.", + "triggers.gnome_version_mismatch": "Die laufende Filee-Erweiterung für GNOME gehört zu einer anderen Filee-Version.\nMelde dich ab und wieder an, damit GNOME die installierte Erweiterung lädt. Falls das Problem bleibt, installiere Filee erneut.\nDateimanager-Aktionen und Ablagebereich bleiben verfügbar.", + "triggers.linux_wayland": "Gesten, die dem Mauszeiger folgen, sind unter Wayland nicht verfügbar.\nNutze eine X11-Sitzung oder konvertiere über das Dateimanagermenü und den Ablagebereich.\nThunar kann nach einem Neustart das erste Tastenkürzel verwenden.", + "triggers.linux_wayland_experimental": "Gesten unter Wayland sind experimentell und funktionieren mit KDE Plasma und Hyprland.\nFilee liest die Maus über /dev/input aus. Unter KDE Plasma platziert ein KWin-Skript das Ringmenü am Mauszeiger, unter Hyprland übernimmt das eine Fensterregel in hyprland.conf (siehe INSTALL.txt). Strg+Ziehen in anderen Apps kann unterbrochen werden. Nutze bei Bedarf eine andere Tastenkombination, etwa Strg+Umschalt.", + "triggers.open_accessibility": "Bedienungshilfen öffnen", + "triggers.retry_hook": "Gesten erneut starten", + "triggers.hook_running": "Die globale Eingabeerkennung ist aktiv.", + "triggers.hook_stopped": "Die globale Eingabeerkennung ist gestoppt.\nDateimanager-Aktionen und Ablagebereich bleiben verfügbar.", + "triggers.hook_failed": "Globale Eingabeerkennung fehlgeschlagen: {0}", + "triggers.hook_linux_backend": "Gesten konnten nicht gestartet werden, da die X11-Eingabebibliotheken nicht geladen wurden.\nNutze eine X11-Sitzung, installiere libxtst6 und libxt6 (Ubuntu/Debian: sudo apt install libxtst6 libxt6) und versuche es erneut.\nDateimanager-Aktionen und Ablagebereich bleiben verfügbar.", + "triggers.add": "Geste hinzufügen", + "triggers.remove": "Entfernen", + "triggers.enabled": "Ein", + "triggers.kind": "Geste", + "triggers.kind.Drag": "Zusatztaste + Dateien ziehen", + "triggers.kind.Hold": "Zusatztaste + gedrückt halten", + "triggers.kind.KeyChord": "Tastenkürzel (ausgewählte Dateien)", + "triggers.modifiers": "Zusatztasten", + "triggers.button": "Maustaste", + "triggers.button.None": "Keine", + "triggers.button.Left": "Links", + "triggers.button.Right": "Rechts", + "triggers.button.Middle": "Mitte", + "triggers.button.X1": "Zurück (X1)", + "triggers.button.X2": "Vorwärts (X2)", + "triggers.key": "Taste", + "triggers.record": "Aufzeichnen", + "triggers.recording": "Tastenkombination drücken…", + "triggers.clear": "Leeren", + "triggers.recording_key": "Taste drücken…", + "triggers.flip_title": "Ringmenü wenden", + "triggers.flip_description": "Bei geöffnetem Ringmenü zeigt diese Taste oder das Mausrad die Rückseite. Die Rückseite jedes Ringmenüs wird unter Ringmenü eingerichtet.", + "triggers.flip_wheel": "Ringmenü mit dem Mausrad wenden", + "triggers.flip_reset": "Tab verwenden", + "triggers.flip_key_taken": "{0} kann das Ringmenü nicht wenden: Die Taste wird bereits vom Ringmenü oder einem Tastenkürzel verwendet.", + "triggers.flip_key_unknown": "Diese Taste ist nicht geeignet. Versuche eine andere.", + "triggers.threshold": "Ziehstrecke", + "triggers.threshold_system": "Systemstandard", + "triggers.hold_ms": "Haltedauer", + "triggers.scope": "Aktiv in", + "triggers.scope.FileManager": "Dateimanagern und auf dem Desktop", + "triggers.scope.FileManager_macos": "Finder und auf dem Desktop", + "triggers.scope.FileManager_linux": "Dateimanager und auf dem Desktop", + "triggers.scope.Anywhere": "Überall", + "triggers.excluded": "In diesen Apps nie auslösen", + "triggers.excluded_hint": "App-Namen eingeben und Eingabe drücken, z. B. photoshop", + "triggers.excluded_pick": "Laufende App auswählen", + "triggers.excluded_none_running": "Keine andere App hat ein geöffnetes Fenster.", + "triggers.excluded_note": "Gesten und Tastenkürzel sind wirkungslos, solange sich der Mauszeiger über diesen Apps befindet.", + "triggers.paused": "Tastenkürzel sind pausiert", + "toolbar.title": "Ringmenü", + "toolbar.step_profile": "1. Profil auswählen", + "toolbar.step_arrange": "2. Vorlagen anordnen", + "toolbar.add_profile": "Neues Profil", + "toolbar.profile_new": "Neues Profil", + "toolbar.delete_profile": "Profil löschen", + "toolbar.reset_profile": "Auf Standard zurücksetzen", + "toolbar.reset_profile_confirm": "„{0}“ auf die Standardvorlagen und Dateiendungen zurücksetzen? Andere Profile und Vorlagen bleiben unverändert.", + "toolbar.name": "Name", + "toolbar.extensions": "Für diese Dateiendungen verwenden", + "toolbar.extensions_hint": "Dateiendung hinzufügen, z. B. jpg", + "toolbar.available": "Verfügbare Vorlagen", + "toolbar.hint_add": "Eintrag zum Hinzufügen auf das Ringmenü ziehen", + "toolbar.hint_remove": "Segment zum Entfernen hierher zurückziehen", + "toolbar.hint_reorder": "Segmente aufeinanderziehen, um sie umzuordnen", + "toolbar.hint_edit": "Segment mit Rechtsklick oder ✎ bearbeiten", + "toolbar.max_reached": "Ein Ringmenü fasst bis zu {0} Vorlagen", + "toolbar.appearance": "Darstellung", + "toolbar.size": "Größe", + "toolbar.hole": "Innenöffnung", + "toolbar.opacity": "Deckkraft", + "toolbar.new_preset": "Neue Vorlage", + "toolbar.new_group": "Neue Gruppe", + "toolbar.face_front": "Vorderseite", + "toolbar.face_back": "Rückseite", + "toolbar.face_hint": "Geöffnetes Ringmenü wenden: {0}", + "toolbar.face_hint_wheel": "Mausrad", + "toolbar.face_hint_off": "Unter Tastenkürzel eine Taste oder das Mausrad zum Wenden des geöffneten Ringmenüs wählen", + "toolbar.tab.all": "Alle", + "toolbar.tab.media": "Video & Audio", + "toolbar.tab.edit": "Bearbeiten", + "toolbar.tab.model3d_cad": "3D & CAD", + "group.editor_title": "Gruppe", + "group.hint": "Eine Gruppe bündelt mehrere Vorlagen in einem Ringmenüsegment. Halte den Mauszeiger darüber oder bewege ihn nach außen, um die Vorlagen aufzufächern.", + "group.members": "Vorlagen ({0} / {1})", + "group.empty": "Noch keine Vorlagen. Füge unten welche hinzu.", + "group.add": "Hinzufügen", + "group.add_placeholder": "Vorlage auswählen", + "group.full": "Eine Gruppe fasst bis zu {0} Vorlagen.", + "group.move_up": "Nach oben", + "group.move_down": "Nach unten", + "group.remove": "Aus der Gruppe entfernen", + "group.delete": "Gruppe löschen", + "group.delete_confirm": "Gruppe „{0}“ löschen? Die Vorlagen bleiben erhalten.", + "toolbar.ext_none": "Noch keine Dateiendungen. Dieses Profil wird erst verwendet, wenn du welche hinzufügst.", + "toolbar.ext_invalid": "„{0}“ ist keine Dateiendung (z. B. jpg oder tar.gz).", + "toolbar.ext_duplicate": "{0} steht bereits in der Liste.", + "toolbar.ext_also_in": "Auch in „{0}“", + "toolbar.ext_in_profile": "in {0}", + "toolbar.ext_claimed_first": "{0}: auch in „{1}“. Dieses Profil steht weiter oben in der Liste, daher öffnen diese Dateien weiterhin „{1}“.", + "toolbar.ext_claimed_later": "{0}: auch in „{1}“.\nDieses Profil steht weiter oben in der Liste, daher öffnen diese Dateien jetzt dieses Profil.", + "toolbar.ext_unknown": "{0}: Filee kennt diesen Dateityp nicht.\nDu kannst ihn behalten, die Dateien lassen sich jedoch nicht konvertieren.", + "toolbar.ext_unknown_tip": "Unbekannter Dateityp", + "toolbar.mixed_toggle": "Für gemischte Auswahl verwenden (verschiedene Dateitypen)", + "toolbar.mixed_locked": "Filee benötigt mindestens ein Profil für gemischte Auswahlen. Dieses bleibt daher bestehen.", + "toolbar.mixed_badge": "Für gemischte Auswahlen", + "toolbar.mixed_title": "Diese Werkzeugleiste anzeigen, wenn jede ausgewählte Datei eine dieser Endungen hat:", + "toolbar.mixed_expand": "Dateiendungen anzeigen", + "toolbar.mixed_other_group": "Andere Dateiendungen", + "toolbar.mixed_catch_all": "Nichts ausgewählt: gilt für jede Dateimischung, die kein anderes Profil abdeckt.", + "toolbar.mixed_shadowed": "Nichts ausgewählt, daher übernimmt das weiter oben stehende Profil „{0}“ jede Dateimischung.\nWähle Dateiendungen aus, um dieses Profil zu verwenden.", + "toolbar.mixed_covered": "„{0}“ steht weiter oben und erlaubt alle hier ausgewählten Dateiendungen. Dieses Profil wird daher nie verwendet.", + "toolbar.mixed_others": "Andere Dateimischungen öffnen „{0}“.", + "toolbar.mixed_others_self": "Kein Profil für gemischte Auswahlen ist ohne Auswahl geblieben. Dieses Profil wird daher auch für alle anderen Dateimischungen verwendet.", + "tags.remove": "Entfernen", + "presets.title": "Vorlagen", + "presets.add": "Neu", + "presets.duplicate": "Duplizieren", + "presets.delete": "Löschen", + "presets.save": "Speichern", + "presets.revert": "Zurücksetzen", + "presets.name": "Name", + "presets.target": "Konvertieren in", + "presets.same_as_source": "Gleiches Format wie die Quelldatei", + "presets.cad_version": "AutoCAD-Version", + "presets.cad_version.same": "Wie die Quelldatei", + "presets.cad_version_hint": "Ältere Versionen lassen sich mit älteren AutoCAD- und CAD-Programmen öffnen. Vor Version 2007 wird Text in der passenden Codepage gespeichert (Koreanisch, Chinesisch, Japanisch …), andere Zeichen als \\U+-Code. Nicht unterstützte Objekte wie Multiführungslinien und Netze werden weggelassen. Eine DWG von 2007 wird als Version 2004 gespeichert, die AutoCAD 2007 öffnen kann.", + "presets.group.image": "Bild", + "presets.quality": "Qualität", + "presets.resize": "Größe ändern", + "presets.resize.None": "Originalgröße", + "presets.resize.Percent": "Prozentual skalieren", + "presets.resize.LongEdge": "Lange Kante begrenzen", + "presets.resize.Width": "Breite festlegen", + "presets.rotation": "Drehen", + "presets.rotation.None": "Nicht drehen", + "presets.rotation.Right90": "90° nach rechts", + "presets.rotation.Left90": "90° nach links", + "presets.rotation.Rotate180": "180°", + "presets.flip": "Spiegeln", + "presets.flip.None": "Nicht spiegeln", + "presets.flip.Horizontal": "Links ↔ rechts", + "presets.flip.Vertical": "Oben ↔ unten", + "presets.percent": "Prozent", + "presets.long_edge": "Lange Kante (px)", + "presets.width": "Breite (px)", + "presets.dpi": "DPI", + "presets.dpi_keep": "Beibehalten", + "presets.keep_metadata": "Metadaten beibehalten (EXIF)", + "presets.keep_color_profile": "Farbprofil beibehalten (ICC)", + "presets.keep_color_profile_hint": "Verfügbar, wenn Metadaten entfernt werden.\nOhne Farbprofil können Fotos mit großem Farbraum (Display P3 vom Smartphone) blass wirken.", + "presets.grayscale": "Graustufen", + "presets.remove_background": "Hintergrund entfernen", + "presets.remove_background_hint": "Macht einen einfarbigen Hintergrund transparent, etwa das Papier hinter einer Unterschrift oder einem Stempel oder den Hintergrund eines Logos.\nDie Farbe am Rand gilt als Hintergrund. Lasse daher etwas Papier um das Motiv stehen.\nJPG unterstützt keine Transparenz und erhält die unten gewählte Farbe. Nicht für Personenfotos geeignet.", + "presets.background_tolerance": "Hintergrundtoleranz", + "presets.background_tolerance_hint": "Höhere Werte entfernen mehr, etwa Papierschatten oder Flecken. Zu hohe Werte schwächen helle Striche.\nUm eine helle Füllung innerhalb einer Kontur zu behalten, aktiviere „Eingeschlossene Bereiche behalten“.", + "presets.keep_enclosed_background": "Eingeschlossene Bereiche behalten", + "presets.keep_enclosed_background_hint": "Entfernt nur Hintergrundflächen, die den Rand berühren. So bleibt Weiß innerhalb eines Logos erhalten.\nFür Handschrift deaktiviert lassen, sonst bleibt auch Papier innerhalb von Buchstaben wie „o“ erhalten.", + "presets.background": "Farbe für transparente Bereiche", + "presets.tiff_compression": "TIFF-Komprimierung", + "presets.webp_lossless": "Verlustfreies WEBP", + "presets.multipage_tiff": "Alle Dateien in einem mehrseitigen TIFF zusammenfassen", + "presets.multipage_tiff_hint": "Jedes Bild und jede PDF- oder TIFF-Seite wird der Reihe nach zu einer Seite.\nBereits eine PDF reicht für ein mehrseitiges TIFF aus.", + "presets.fits_tiff": "FITS (Astronomie) in TIFF", + "presets.fits_tiff.Linear": "Linear: unveränderte Daten", + "presets.fits_tiff.Stretched": "Gestreckt, wie in der Vorschau", + "presets.fits_tiff_hint": "Für Bilder einer Teleskopkamera. Das TIFF behält die Bittiefe bei: 8 und 16 Bit bleiben unverändert, 32-Bit- und Gleitkommadaten werden zu 32-Bit-Gleitkomma.", + "presets.fits_debayer": "FITS einer Farbkamera debayern", + "presets.fits_debayer_hint": "FITS-Bilder werden automatisch gestreckt. Eine Rohaufnahme einer Farbkamera wird anhand des Bayer-Musters im Dateikopf in Farbe umgewandelt. Ausgeschaltet bleibt sie monochrom.", + "presets.animation_speed": "Wiedergabegeschwindigkeit", + "presets.animation_speed_hint": "Zeigt jedes Einzelbild einer Animation kürzer oder länger an.\nAbspielprogramme zeigen höchstens 50 Bilder pro Sekunde. Schnellere Animationen lassen deshalb Einzelbilder aus.", + "presets.animation_speed.original": "1× (Original)", + "presets.save_every_frame": "Alle Einzelbilder eines Videos speichern", + "presets.save_every_frame_hint": "Ein Video wird zu einem Ordner mit allen Einzelbildern statt zu einem einzelnen Standbild.\nLange Videos erzeugen viele Dateien.", + "presets.frame_interval": "Jedes n-te Einzelbild", + "presets.frame_estimate": "Eine Minute Video mit 30 Bildern/s ergibt {0} Bilder, höchstens {1} pro Video.", + "presets.extract_motion_photo": "Video aus Live/Motion Photo extrahieren", + "presets.extract_motion_photo_hint": "Ein Foto wird zum darin gespeicherten Video: bei Android Motion Photos zum eingebetteten Video, bei iPhone Live Photos zur zugehörigen MOV-Datei.\nAndere Bilder werden zu einem Video mit Standbild.", + "presets.slide_seconds": "Sekunden pro Bild", + "presets.crossfade": "Zwischen Bildern überblenden", + "presets.crossfade_hint": "Jedes Bild wird innerhalb einer Sekunde in das nächste überblendet, statt direkt zu wechseln.", + "presets.group.live_photo": "Live / Motion Photo", + "presets.live_photo": "Ein Video wird zu", + "presets.live_photo.None": "Einem Standbild", + "presets.live_photo.Apple": "Live Photo (iPhone): Foto + MOV", + "presets.live_photo.Android": "Motion Photo (Android): ein JPG", + "presets.live_photo_hint.apple": "Ein kurzer Clip wird zu einem Foto und einer MOV-Datei mit gleichem Namen und gemeinsamer Live-Photo-Kennung. Importiere beide zusammen in Fotos. Die kürzere Videoseite hat höchstens 1440 px. Experimentell: noch nicht auf jedem iPhone bestätigt.", + "presets.live_photo_hint.android": "Ein kurzer Clip wird zu einem JPG (NAME.MP.jpg) mit eingebettetem Video, wie Pixel-Smartphones Motion Photos speichern. Für Google Fotos und andere kompatible Galerien. Die kürzere Videoseite hat höchstens 1440 px. Experimentell: noch nicht auf jedem Smartphone bestätigt.", + "presets.live_photo_start": "Clipbeginn (s)", + "presets.live_photo_length": "Cliplänge (s)", + "presets.live_photo_cover": "Foto bei (s)", + "presets.live_photo_quality": "Fotoqualität", + "presets.live_photo_video_quality": "Videoqualität", + "presets.ico_sizes": "Symbolgrößen", + "presets.group.pdf": "PDF", + "presets.merge": "Alle Dateien in einer PDF zusammenführen", + "presets.page_size": "Seitengröße", + "presets.page_size.FitImage": "An Bild anpassen", + "presets.page_size.A4": "A4", + "presets.page_size.Letter": "Letter", + "presets.margin": "Rand (mm)", + "presets.render_dpi": "Auflösung in DPI (PDF → Bild)", + "presets.page_range": "Seiten", + "presets.page_range_hint": "Alle Seiten oder z. B. 1-3, 5", + "presets.split": "Eine Datei pro Seite", + "presets.pdf_tables_note": "Jede Tabelle mit eingezeichneten Linien in einer PDF wird zu einem eigenen Tabellenblatt. Eine über mehrere Seiten fortgesetzte Tabelle bleibt auf einem Blatt. Zahlen und Datumsangaben bleiben echte Werte. Text außerhalb der Tabellen wird weggelassen.", + "presets.pdf_compression": "Komprimieren", + "presets.pdf_compression.None": "Nicht komprimieren", + "presets.pdf_compression.Screen": "Kleinste Datei (Bilder mit 72 dpi)", + "presets.pdf_compression.Ebook": "Ausgewogen (Bilder mit 150 dpi)", + "presets.pdf_compression.Print": "Hohe Qualität (Bilder mit 300 dpi)", + "presets.pdf_compression_hint": "Bilder werden verkleinert und als JPEG gespeichert.\nText, Schriften und Zeichnungen bleiben unverändert.\nWird das Ergebnis nicht kleiner, bleibt das Original erhalten.", + "presets.pdf_ghostscript": "Auch Ghostscript versuchen (falls installiert)", + "presets.pdf_ghostscript_hint": "Oft kleiner, schreibt aber die gesamte Datei neu.\nDas kleinste Ergebnis wird behalten.", + "presets.ocr": "Text erkennen (OCR)", + "presets.ocr_hint": "Scans und Bilder erhalten durchsuchbaren und bearbeitbaren Text. Benötigt Tesseract (Einstellungen → Module).\nSeiten, die bereits Text enthalten, bleiben unverändert.", + "presets.ocr_hint_macos": "Scans und Bilder erhalten durchsuchbaren und bearbeitbaren Text mit der Texterkennung von macOS (Apple Vision). Nicht unterstützte Sprachen benötigen Tesseract (Einstellungen → Module).\nSeiten, die bereits Text enthalten, bleiben unverändert.", + "presets.ocr_language": "Sprache des Textes", + "presets.ocr_language_size": "{0} Download", + "presets.pdf_keep_metadata": "Seiten- und Bildmetadaten beibehalten (XMP)", + "presets.watermark": "Wasserzeichen", + "presets.watermark_hint": "z. B. ENTWURF", + "presets.pdf_password": "Passwort zum Öffnen", + "presets.pdf_password_hint": "Für kein Passwort leer lassen. Es wird mit der Vorlage gespeichert. Verwende deshalb ein Passwort nur für diese Art von Dateien. PDF/A erlaubt kein Passwort. Die Option ist daher bei aktiviertem PDF/A ausgeschaltet.", + "presets.page_numbers": "Seitenzahlen (1 / 5 am unteren Rand)", + "presets.combine_pages_hint": "Fügt alle Seiten untereinander zu einem Bild zusammen.\nSehr lange Ergebnisse werden auf die Formatgrenze skaliert (JPG 65.500 px, WebP 16.383 px).", + "presets.combine_pages": "Seiten zu einem langen Bild zusammenfügen (bei PDF-Konvertierung)", + "presets.trim_page_margins": "Leerraum oberhalb und unterhalb jeder Seite abschneiden", + "presets.split_tall_image": "Zu hoch für das Format: auf mehrere Bilder aufteilen", + "presets.split_tall_image_hint": "Aus: Ein langes Bild wird auf die Formatgrenze verkleinert (JPG 65.500 px, WebP 16.383 px).\nEin: Die Größe bleibt erhalten; das Bild wird zwischen den Seiten auf mehrere Dateien aufgeteilt (name_1, name_2, …).", + "presets.group.document": "Dokumente", + "presets.pdfa": "PDF/A (Archivierung)", + "presets.leave_out_pictures": "Bilder weglassen (nur Text)", + "presets.leave_out_pictures_hint": "Aus: Bilder werden im Ordner „name_files“ neben der Markdown-Datei gespeichert und in der Markdown-Datei verlinkt.\nEin: Nur Text, kein Ordner.", + "presets.target_folder": "Ordner (Archive entpacken)", + "presets.group.media": "Video & Audio", + "presets.media_quality": "Qualität", + "presets.media_quality_hint": "Kann das neue Format die vorhandenen Codecs übernehmen (iPhone MOV → MP4), wird nur der Videocontainer gewechselt.\nOhne Qualitätsverlust, mit HDR, in wenigen Sekunden.\n„Klein“ kodiert immer neu, um die Datei zu verkleinern.", + "presets.media_quality.High": "Hoch (größere Dateien)", + "presets.media_quality.Balanced": "Ausgewogen", + "presets.media_quality.Small": "Klein (zum Teilen)", + "presets.max_height": "Maximale Höhe", + "presets.max_height.original": "Original", + "presets.audio_bitrate": "Audio-Bitrate", + "presets.audio_bitrate.auto": "Automatisch", + "presets.remove_audio": "Ton entfernen", + "presets.audio_channels": "Kanäle", + "presets.audio_channels.0": "Wie die Quelldatei", + "presets.audio_channels.1": "Mono", + "presets.audio_channels.2": "Stereo", + "presets.sample_rate": "Abtastrate", + "presets.sample_rate.source": "Wie die Quelldatei", + "presets.wav_format": "Bittiefe", + "presets.wav_format.Pcm16": "16 Bit", + "presets.wav_format.Pcm8": "8 Bit", + "presets.wav_format.Pcm24": "24 Bit", + "presets.wav_format.Pcm32": "32 Bit", + "presets.wav_format.Float32": "32-Bit-Gleitkomma", + "presets.video_codec": "Video-Codec", + "presets.video_codec_hint": "H.264 läuft überall.\nHEVC-Dateien sind etwa halb so groß und laufen auf den meisten Smartphones, Fernsehern und neueren PCs.\nAV1 ist noch kleiner, wird aber langsam kodiert und benötigt ein aktuelles Gerät.\nVerwendet das Video bereits den gewählten Codec, wird nur der Container gewechselt.", + "presets.video_codec.h264": "H.264 (läuft überall)", + "presets.video_codec.vp9": "VP9", + "presets.video_codec.hevc": "HEVC / H.265 (kleiner)", + "presets.video_codec.av1": "AV1 (am kleinsten, langsam)", + "presets.hardware_encoding": "Hardwarebeschleunigung nutzen (Grafikchip)", + "presets.hardware_encoding_hint": "Kodiert H.264, HEVC und AV1 auf dem Grafikchip.\nDeutlich schneller und stromsparender.\nEtwas geringere Qualität bei gleicher Dateigröße.\nOhne geeigneten Chip (AV1 benötigt einen neueren) wird das Video wie gewohnt kodiert.", + "presets.audio_codec": "Audio-Codec", + "presets.audio_codec.aac": "AAC", + "presets.audio_codec.alac": "ALAC (verlustfrei)", + "presets.group.archive": "Archiv", + "presets.archive_level": "Komprimierung", + "presets.archive_level.Store": "Keine (nur speichern)", + "presets.archive_level.Fast": "Schnell", + "presets.archive_level.Normal": "Normal", + "presets.archive_level.Maximum": "Maximal (langsamer)", + "presets.combine": "Alle Dateien in einem Archiv zusammenfassen", + "presets.extract_note": "Jedes Archiv wird in einen eigenen Ordner entpackt. Der Speicherort wird unter Ausgabe festgelegt.", + "presets.group.trace": "Vektorisierung", + "presets.group.cad": "CAD-Zeichnung", + "presets.trace_note": "Wird verwendet, wenn ein Bild (PNG, JPG, …) in Vektorformen umgewandelt wird.", + "presets.trace_mode": "Modus", + "presets.trace_mode.Color": "Farbe", + "presets.trace_mode.BlackAndWhite": "Schwarzweiß (Strichzeichnung)", + "presets.trace_colors": "Farben", + "presets.trace_detail": "Detailgrad", + "presets.trace_detail_hint": "Niedrig glättet Konturen und entfernt kleine Flecken.\nHoch folgt den Pixeln genau und erhält kleine Details.", + "presets.group.output": "Ausgabe", + "presets.location": "Speichern in", + "presets.location.Default": "Standardspeicherort (Einstellungen > Allgemein)", + "presets.location.SameFolder": "Gleicher Ordner wie die Quelldatei", + "presets.location.Subfolder": "Unterordner", + "presets.location.CustomFolder": "Fester Ordner", + "presets.subfolder": "Name des Unterordners", + "presets.subfolder_only_several": "Nur wenn aus einer Datei mehrere werden", + "presets.subfolder_only_several_hint": "Wird eine Datei in eine einzelne Datei konvertiert, wird diese neben dem Original gespeichert. Nur wenn mehrere Dateien entstehen (etwa einzelne PDF-Seiten), wird der Unterordner verwendet.", + "presets.custom_folder": "Ordner", + "presets.browse": "Durchsuchen…", + "presets.pattern": "Dateiname", + "presets.pattern_hint": "{name} {ext} {preset} {date} {time} {index}", + "presets.keep_dates": "Ursprüngliche Dateizeitstempel beibehalten", + "presets.keep_dates_hint": "Konvertierte Dateien erhalten Erstellungs- und Änderungsdatum des Originals, damit Fotos weiterhin nach Datum sortiert werden.", + "presets.zip_result": "Ergebnis als ZIP speichern", + "presets.zip_result_hint": "Die Ergebnisdateien (bei Shapefiles .shp, .shx, .dbf, .prj und .cpg) werden gemeinsam in einer ZIP neben der Quelldatei gespeichert statt als einzelne Dateien.", + "presets.replace_original": "Original ersetzen", + "presets.replace_original_hint": "Das Ergebnis übernimmt Namen und Speicherort des Originals. Das Original wird in den Papierkorb verschoben. Gilt nur bei gleichem Format, nie für überwachte Ordner oder Dateien aus dem Browser. Lässt sich das Original nicht in den Papierkorb verschieben, bleibt es erhalten und das Ergebnis wird als Kopie gespeichert. Das Ergebnis wird unabhängig von „Speichern in“ im Ordner des Originals gespeichert.", + "presets.conflict": "Wenn die Datei bereits existiert", + "presets.conflict.Rename": "Nummer anhängen", + "presets.conflict.Overwrite": "Ersetzen", + "presets.conflict.Skip": "Überspringen", + "presets.editor_title": "Vorlage bearbeiten", + "presets.delete_confirm": "„{0}“ löschen? Die Vorlage wird auch aus allen Werkzeugleisten und Gruppen entfernt.", + "presets.name_required": "Namen eingeben", + "presets.select": "Vorlage zum Bearbeiten auswählen", + "theme.title": "Design", + "theme.style": "Designstil", + "theme.style.Soft": "Filee Soft", + "theme.style.MaterialYou": "Material You", + "theme.style.soft_hint": "Klassisches Filee-Design mit weich abgerundeten Ecken und Pastellflächen.", + "theme.style.material_you_hint": "Google-Material-3-Design mit dynamisch abgestimmten Flächenfarben und angepassten Akzentfarben.", + "theme.style.m3_badge": "Material 3", + "theme.style.m3_tag": "M3", + "theme.mode": "Darstellung", + "theme.mode.System": "System", + "theme.mode.Light": "Hell", + "theme.mode.Dark": "Dunkel", + "theme.accent": "Akzentfarbe", + "theme.presets_pastel": "Pastellvorlagen", + "theme.presets_vibrant": "Kräftige Farbfelder", + "theme.preset.monochrome": "Monochrom", + "theme.preset.lavender": "Lavendel", + "theme.preset.peach": "Pfirsich", + "theme.preset.mint": "Minze", + "theme.preset.rose": "Rosa", + "theme.preset.sky": "Himmelblau", + "theme.preset.amber": "Bernstein", + "theme.preset.sage": "Salbei", + "theme.custom_color": "Benutzerdefiniert", + "theme.corner_radius": "Abrundung", + "theme.donut_opacity": "Deckkraft des Ringmenüs", + "theme.reduce_motion": "Animationen reduzieren", + "theme.reduce_motion_hint": "Für ältere PCs empfohlen. Deaktiviert Übergänge und das Federn des Ringmenüs.", + "theme.window_size": "Fenstergröße", + "theme.window_size_smaller": "Kleiner", + "theme.window_size_larger": "Größer", + "theme.window_size_reset": "Zurücksetzen", + "theme.window_size_hint": "Vergrößert oder verkleinert alle Inhalte in den Filee-Fenstern. Das geht in jedem Fenster auch mit {0} + Mausrad oder {0} + Plus / Minus. {0} + 0 setzt auf 100% zurück.", + "theme.preview": "Vorschau", + "theme.preview_toggle": "Beispielschalter (nur Vorschau, keine Einstellung)", + "theme.preview_toggle_hint": "Zeigt das Aussehen der Schalter in diesem Design. Ändert keine Einstellung.", + "engines.title": "Konvertierungsmodule", + "engines.description": "Filee wählt für jede Konvertierung das beste verfügbare Modul.\nEignen sich mehrere Module, hat das weiter oben stehende Vorrang.", + "engines.available": "Bereit", + "engines.unavailable": "Nicht verfügbar", + "engines.move_up": "Nach oben", + "engines.move_down": "Nach unten", + "engines.recheck": "Erneut prüfen", + "engines.conversions": "{0} Konvertierungen", + "engines.optional_title": "Optionale Module", + "engines.optional_description": "Große Module werden nur auf Wunsch heruntergeladen.\nSie bleiben bei Filee-Updates erhalten und werden beim Deinstallieren entfernt.", + "engines.all_title": "Alle Module", + "engines.update": "Aktualisieren", + "engines.state.update_available": "Neue Version {0}", + "engines.update_notice_title": "Neue Versionen für installierte Module verfügbar", + "engines.settings": "Einstellungen", + "engines.all_description": "Verschiebe eine Karte oder nutze ihre Pfeile, um die Reihenfolge zu ändern.", + "engines.lo_title": "Wenn LibreOffice installiert ist", + "engines.lo_description": "LibreOffice kann Konvertierungen übernehmen, die es originalgetreuer ausführt.\nOhne LibreOffice haben diese Einstellungen keine Wirkung.", + "engines.lo_slides": "LibreOffice für Präsentationen → PDF verwenden", + "engines.lo_slides_hint": "Folienhintergründe und Formpositionen bleiben wie in PowerPoint.\nAus: integrierte Konvertierung, bei der Hintergründe fehlen oder Formen verrutschen können.", + "engines.lo_documents": "LibreOffice für Word-Dokumente → PDF verwenden", + "engines.lo_documents_hint": "Layout wie in Word, einschließlich chinesischer und japanischer Satzzeichenregeln.\nAus: integrierte Konvertierung.", + "engines.lo_sheets": "LibreOffice für Tabellen → PDF verwenden", + "engines.lo_sheets_hint": "Druck wie in Excel, mit Druckbereich, Seiteneinrichtung und Seitenumbrüchen.\nAus: integrierte Konvertierung passt jedes Blatt an die Seitenbreite an (Seitenumbrüche bleiben erhalten).", + "engines.lo_hwp": "LibreOffice für HWP·HWPX → PDF verwenden", + "engines.lo_hwp_hint": "Standardmäßig aus: rhwp ist meist näher am Erscheinungsbild von 한글.\nZum Vergleich einschalten, wenn rhwp ein Dokument fehlerhaft darstellt (überlappender Text, verschobene Tabellen).", + "engines.package.libreoffice.name": "LibreOffice (ältere und seltene Formate)", + "engines.package.libreoffice.description": "Für alte oder seltene Formate: DOC·PPT, OpenDocument-Präsentationen, WordPerfect, ClarisWorks·MacWrite, Apple Pages·Numbers·Keynote, Publisher·Visio und weitere.\nSpeichert auch als DOC·XLS·PPT·ODT·ODP·EMF und konvertiert Präsentationen originalgetreuer in PDF.\nWord, Excel, PowerPoint, PDF und HWP lassen sich auch ohne LibreOffice konvertieren.", + "engines.package.pandoc.name": "Pandoc (Markdown, LaTeX, Org und weitere)", + "engines.package.pandoc.description": "Ergänzt Markdown und HTML ↔ ODT und RTF, DOCX → Markdown sowie LaTeX, Org, AsciiDoc, Typst, Jupyter und weitere Auszeichnungssprachen.\nErstellt auch PPTX-Folien aus Markdown.\nMarkdown und HTML → PDF, DOCX und HWPX funktionieren auch ohne Pandoc.", + "engines.package.ghostscript.name": "Ghostscript (EPS und PostScript)", + "engines.package.ghostscript.description": "EPS, PS und ältere Illustrator-Dateien → PDF und Bilder, PDF oder SVG → EPS/PS.\nSVG und PDF-kompatible AI-Dateien lassen sich auch ohne Ghostscript konvertieren.", + "engines.package.tesseract.name": "Tesseract (Texterkennung, OCR)", + "engines.package.tesseract.description": "Liest Text aus gescannten PDFs und Bildern: durchsuchbare PDF, DOCX, TXT.\nJede Sprache wird bei der ersten Verwendung heruntergeladen.", + "engines.package.ffmpeg.name": "FFmpeg (Video und Audio)", + "engines.package.ffmpeg.description": "Ergänzt Video- und Audiokonvertierung, Video → GIF oder Einzelbild, Ton aus Videos und GIF → MP4.\nNur für Video und Audio erforderlich.", + "engines.package.calibre.name": "Calibre (Kindle und seltene E-Book-Formate)", + "engines.package.calibre.description": "Speichert MOBI und AZW3 für Kindle und konvertiert seltene E-Book-Formate (LIT, LRF, PDB, CHM…).\nEPUB, MOBI, AZW3, FB2 und Comics lassen sich auch ohne Calibre lesen.", + "engines.package.size": "Download {0} · Platzbedarf {1}", + "engines.package.system_required": "Eine auf diesem Computer installierte Version verwenden.", + "engines.guidance.macos": "Installiere {0} für diesen Mac. Wähle dann „Eigene Version…“ und die zugehörige Programmdatei oder den .app-Ordner.", + "engines.guidance.macos.ffmpeg": "Mit Homebrew installieren (brew install ffmpeg), dann „Erneut prüfen“ wählen.\nOder „Eigene Version…“ wählen und den bin-Ordner auswählen.", + "engines.guidance.macos.ghostscript": "Mit Homebrew installieren (brew install ghostscript), dann „Erneut prüfen“ wählen.\nOder „Eigene Version…“ wählen und den bin-Ordner auswählen.", + "engines.guidance.macos.tesseract": "Mit Homebrew installieren (brew install tesseract), dann „Erneut prüfen“ wählen.\nOder „Eigene Installation verwenden…“ wählen und den bin-Ordner auswählen.", + "engines.guidance.macos.calibre": "Die von Filee heruntergeladene Calibre-Version benötigt macOS 14 oder neuer. Installiere Calibre 7.26, die letzte Version für dieses macOS, von calibre-ebook.com. Wähle dann „Eigene Version…“ und den zugehörigen .app-Ordner.", + "engines.guidance.linux": "Installiere {0} über die Paketverwaltung deiner Distribution. Wähle dann „Eigene Version…“ und den zugehörigen Programmordner.", + "engines.guidance.linux.libreoffice": "Über die Paketverwaltung installieren (Ubuntu/Debian: sudo apt install libreoffice), dann „Erneut prüfen“ wählen.\nZum Öffnen von HWP werden außerdem Java und die Erweiterung H2Orestart benötigt.", + "engines.guidance.linux.ghostscript": "Über die Paketverwaltung installieren (Ubuntu/Debian: sudo apt install ghostscript), dann „Erneut prüfen“ wählen.", + "engines.guidance.linux.tesseract": "Über die Paketverwaltung installieren (Ubuntu/Debian: sudo apt install tesseract-ocr), dann „Erneut prüfen“ wählen.", + "engines.guidance.windows": "Filee bietet für diesen PC keinen Download von {0} an.\nWähle „Eigene Version…“ und eine installierte Version.", + "engines.use_own_app_folder": "Ordner auswählen, der {0}.app enthält", + "engines.progress_detail": "{0} von {1} · {2}/s · {3}", + "engines.eta.estimating": "Restzeit wird geschätzt…", + "engines.eta.seconds": "Noch {0} s", + "engines.eta.minutes": "Noch {0} min", + "engines.install": "Installieren", + "engines.cancel": "Abbrechen", + "engines.remove": "Entfernen", + "engines.remove_confirm": "{0} entfernen? Du kannst es später erneut herunterladen.", + "engines.state.own_copy": "Eigene Installation", + "engines.state.system_copy": "Auf diesem PC gefunden", + "engines.update_recommended": "Update empfohlen: Diese Installation hat Version {0}; Filee wurde mit {1} getestet.\nDie meisten Konvertierungen funktionieren trotzdem.", + "engines.use_own": "Eigene Version…", + "engines.use_own_hint": "Bereits installiert? Wähle das Programm aus. Filee verwendet es, statt eine eigene Version herunterzuladen.", + "engines.use_own_title": "Programm deiner {0}-Installation auswählen", + "engines.use_own_missing": "In diesem Ordner fehlen von Filee benötigte Dateien: {0}.", + "engines.stop_own": "Nicht mehr verwenden", + "engines.remove_failed": "Das Modul wird gerade verwendet. Versuche es erneut, sobald die laufenden Konvertierungen abgeschlossen sind.", + "engines.state.not_installed": "Nicht installiert", + "engines.state.queued": "Wartet…", + "engines.state.downloading": "Download: {0}%", + "engines.state.unpacking": "Wird installiert…", + "engines.state.installed": "Installiert", + "engines.state.failed": "Fehlgeschlagen: {0}", + "about.title": "Über Filee", + "about.updates": "Updates", + "common.search": "Suchen", + "common.retry": "Erneut versuchen", + "about.version": "Version {0}", + "about.license": "Filee ist freie Software unter der MIT-Lizenz.", + "about.notices": "Hinweise zu Drittanbietern", + "about.github": "GitHub-Repository", + "about.support_title": "Filee unterstützen", + "about.support_text": "Filee ist kostenlos und quelloffen.\nEin Stern auf GitHub, ein Fehlerbericht, eine Idee oder eine Spende helfen weiter.", + "about.sponsor": "Spenden", + "sponsor.title": "Filee unterstützen", + "sponsor.lead": "Filee ist und bleibt kostenlos. Wenn du die Entwicklung unterstützen möchtest, wähle die für dich passende Möglichkeit.", + "sponsor.note.github": "Monatlich oder einmalig, per Karte über GitHub", + "sponsor.note.fairy": "Koreanische Karten und Schnellzahlung", + "sponsor.note.patreon": "Monatliche Mitgliedschaft", + "sponsor.note.kofi": "Einmalig einen Kaffee spendieren, ohne Konto", + "sponsor.note.paypal": "Beliebiger Betrag mit PayPal", + "sponsor.thanks": "Danke an alle Unterstützer", + "sponsor.star": "Ein ⭐ auf GitHub kostet nichts und hilft anderen, Filee zu finden.", + "feedback.notice_title": "Ist Filee hilfreich für dich?", + "feedback.notice_text": "Ein Stern auf GitHub hilft anderen, Filee zu finden.\nAuch Probleme und Ideen kannst du gerne melden.", + "feedback.star": "Stern auf GitHub vergeben", + "feedback.issue": "Problem oder Idee melden", + "common.ok": "OK", + "common.cancel": "Abbrechen", + "common.save": "Speichern", + "common.close": "Schließen", + "common.delete": "Löschen", + "common.yes": "Ja", + "common.no": "Nein", + "common.on": "Ein", + "common.off": "Aus", + "setup.title": "Konvertierungsmodule auswählen", + "setup.description": "Bilder, PDF, Office-Dokumente, HWP, E-Books, Archive, Schriftarten, CAD und 3D-Modelle lassen sich bereits konvertieren.\nZusätzliche Module sind nur für Video, Audio oder seltene Formate nötig.", + "setup.note": "Module lassen sich jederzeit unter Einstellungen → Module installieren oder entfernen.", + "setup.install": "Auswahl installieren", + "setup.later": "Später", + "setup.background": "Im Hintergrund fortsetzen", + "setup.done": "Fertig", + "setup.selection": "Download: {0}", + "setup.nothing_selected": "Nichts ausgewählt", + "installer.title": "Filee-Installation", + "installer.install": "Installieren", + "installer.update": "Aktualisieren", + "installer.welcome.fresh": "Filee {0} wird auf diesem Computer installiert.", + "installer.welcome.update": "Filee {0} ist installiert.\nDie Installation aktualisiert es auf {1}. Deine Einstellungen, Vorlagen und Module bleiben erhalten.", + "installer.welcome.license": "Filee ist kostenlos und quelloffen (MIT-Lizenz).", + "installer.language": "Sprache", + "installer.options.title": "Optionen", + "installer.options.folder": "Installationsordner", + "installer.options.browse": "Ändern…", + "installer.options.space": "Filee benötigt etwa {0} Speicherplatz.", + "installer.options.later": "Diese Optionen lassen sich später in Filee unter Einstellungen → Allgemein ändern.", + "installer.options.update_note": "Filee behält die übrigen Einstellungen bei. Du kannst sie jederzeit unter Einstellungen → Allgemein ändern.", + "installer.task.modern_menu": "Auch direkt im Windows-11-Menü anzeigen, nicht nur unter „Weitere Optionen anzeigen“", + "installer.task.cli": "Den Befehl „filee“ zu PATH hinzufügen (Konvertieren über die Befehlszeile)", + "installer.task.desktop_icon": "Desktopverknüpfung erstellen", + "installer.engines.when": "Filee lädt die ausgewählten Module beim Start aus ihren offiziellen Quellen herunter.", + "installer.progress.install": "Filee wird installiert", + "installer.progress.update": "Filee wird aktualisiert", + "installer.status.verifying": "Installationsdatei wird geprüft…", + "installer.status.closing": "Filee wird geschlossen…", + "installer.status.removing_old": "Vorherige Version wird entfernt (Einstellungen und Module bleiben erhalten)…", + "installer.status.copying": "Filee-Dateien werden kopiert…", + "installer.status.explorer_menu": "Filee wird dem Explorer-Menü hinzugefügt…", + "installer.status.finishing": "Wird abgeschlossen…", + "installer.status.rolling_back": "Änderungen werden rückgängig gemacht…", + "installer.status.removing": "Filee wird entfernt…", + "installer.done.title": "Filee ist bereit", + "installer.done.text": "Filee läuft im Infobereich der Taskleiste.\n\nZiehe Dateien mit gedrückter Auslösetaste, um sie zu konvertieren, oder klicke im Explorer mit der rechten Maustaste darauf.", + "installer.done.updated": "Filee wurde aktualisiert. Deine Einstellungen, Vorlagen und Module sind erhalten geblieben.", + "installer.done.engines": "Die ausgewählten Konvertierungsmodule werden beim Start von Filee heruntergeladen.", + "installer.done.launch": "Filee starten", + "installer.warning.explorer_menu": "Windows hat Filee nicht direkt in das Explorer-Menü aufgenommen:\n\n{0}\n\nFilee erscheint weiterhin unter „Weitere Optionen anzeigen“. Unter Einstellungen → Allgemein kannst du es erneut versuchen.", + "installer.warning.runtime": "{0} kann nicht ausgeführt werden: Die Microsoft Visual C++-Laufzeitumgebung ({1}) fehlt auf diesem Computer. Alle anderen Funktionen von Filee funktionieren. Installiere Microsoft Visual C++ Redistributable (x64), um das Problem zu beheben:\n{2}", + "installer.error.title": "Filee wurde nicht installiert", + "installer.error.uninstall_title": "Filee wurde nicht vollständig entfernt", + "installer.error.space": "Auf {0} ist nicht genug Speicherplatz frei: Filee benötigt {1}, verfügbar sind nur {2}.", + "installer.error.damaged": "Diese Installationsdatei ist beschädigt. Lade sie erneut von filee.sh herunter.", + "installer.error.files": "Die Filee-Dateien konnten nicht geschrieben werden: {0}", + "installer.error.unexpected": "Ein Fehler ist aufgetreten: {0}", + "installer.error.windows": "Filee benötigt Windows 10, Version 1809 oder neuer (64 Bit).", + "installer.error.rolled_back": "Die Installation hat alles wiederhergestellt: Die bisherige Filee-Version funktioniert weiterhin.", + "installer.error.undone": "Die Änderungen der Installation wurden rückgängig gemacht.", + "installer.error.nothing_changed": "An diesem Computer wurde nichts geändert.", + "installer.error.log": "Details stehen im Protokoll: {0}", + "installer.uninstall.title": "Filee deinstallieren", + "installer.uninstall.text": "Filee {0} wird von diesem Computer entfernt, einschließlich seiner Explorer-Menüeinträge, seines Autostarteintrags und der heruntergeladenen Konvertierungsmodule.", + "installer.uninstall.delete_settings": "Auch meine Einstellungen, Vorlagen und Werkzeugleisten löschen", + "installer.uninstall.settings_where": "Sie befinden sich in {0}. Behalte sie, um sie bei einer erneuten Installation von Filee wiederzuverwenden.", + "installer.uninstall.button": "Deinstallieren", + "installer.uninstall.progress": "Filee wird entfernt", + "installer.uninstall.done_title": "Filee wurde entfernt", + "installer.uninstall.done": "Filee ist nicht mehr auf diesem Computer installiert.", + "installer.uninstall.settings_kept": "Deine Einstellungen bleiben für eine erneute Installation von Filee erhalten.", + "installer.uninstall.not_installed": "Filee ist nicht in {0} installiert.", + "installer.options.hide": "Ausblenden", + "installer.minimize": "Minimieren", + "installer.error.copy": "Details kopieren", + "installer.error.copied": "Kopiert", + "watch.title": "Überwachte Ordner", + "watch.description": "Dateien, die in diesen Ordnern ankommen, werden konvertiert, solange Filee läuft.\nDownloads und Kopiervorgänge müssen dafür vollständig abgeschlossen sein.", + "watch.add": "Ordner hinzufügen", + "watch.empty": "Noch keine überwachten Ordner.", + "watch.enabled": "Ein", + "watch.remove": "Entfernen", + "watch.folder": "Zu überwachender Ordner", + "watch.folder_placeholder": "Ordner auswählen", + "watch.preset": "Konvertieren mit", + "watch.originals": "Nach der Konvertierung", + "watch.originals_keep": "Original am bisherigen Ort belassen", + "watch.originals_move": "Original nach „originals“ verschieben", + "watch.originals_hint": "Durch Verschieben der Originale wird der Ordner zum Eingangskorb. Auch Dateien, die beim Start von Filee bereits dort liegen, werden dann konvertiert.", + "watch.output": "Konvertierte Dateien speichern unter", + "watch.output_placeholder": "„converted“ im überwachten Ordner", + "watch.subfolders": "Unterordner einbeziehen", + "watch.options": "Weitere Optionen (optional)", + "watch.include": "Zu konvertierende Dateien", + "watch.include_placeholder": "Endung oder Namen eingeben, dann Eingabe drücken (z. B. heic, scan_*)", + "watch.include_hint": "Leer lassen, um alle Dateien zu konvertieren.\n· heic → Dateien mit der Endung .heic\n· scan → Dateien mit „scan“ im Namen\n· * steht für beliebigen Text, ? für ein Zeichen (z. B. scan_*.jpg)", + "watch.name": "Basisname", + "watch.name_placeholder": "Wie in der Vorlage: {0}", + "watch.name_hint": "Die Schaltflächen fügen Namensteile hinzu. Leer lassen, um den Namen aus der Vorlage zu übernehmen.", + "watch.rename": "Namen konvertierter Dateien", + "watch.rename_find": "Suchen, z. B. IMG_(\\d+)", + "watch.rename_replace": "Ersetzen durch, z. B. Foto_$1", + "watch.name_summary": "Name: {0}", + "watch.name_summary_preset": "Name: {0} (wie in der Vorlage)", + "watch.token.name": "Originalname", + "watch.token.ext": "Originalendung", + "watch.token.date": "Datum", + "watch.token.time": "Uhrzeit", + "watch.token.index": "Nummer", + "watch.token.preset": "Vorlagenname", + "watch.kind.Replace": "Text ersetzen", + "watch.kind.Remove": "Text entfernen", + "watch.kind.Prefix": "Am Anfang hinzufügen", + "watch.kind.Suffix": "Am Ende hinzufügen", + "watch.kind.SpacesToUnderscores": "Leerzeichen durch _ ersetzen", + "watch.kind.RemoveCopyNumber": "Kopienummer wie (2) entfernen", + "watch.kind.RemoveBrackets": "Text in Klammern entfernen", + "watch.kind.RemoveLeadingNumber": "Führende Zahl entfernen", + "watch.kind.RemoveSymbols": "Sonderzeichen entfernen", + "watch.kind.Lowercase": "alles kleinschreiben", + "watch.kind.Uppercase": "ALLES GROSSSCHREIBEN", + "watch.kind.Regex": "Erweitert: regulärer Ausdruck", + "watch.ph.find": "Gesuchter Text, z. B. IMG_", + "watch.ph.replace": "Ersetzen durch, z. B. Foto_", + "watch.ph.remove": "Zu entfernender Text, z. B. _Kopie", + "watch.ph.prefix": "Hinzuzufügender Text, z. B. 2026_", + "watch.ph.suffix": "Hinzuzufügender Text, z. B. _final", + "watch.advanced": "Erweitert", + "watch.recipe.camera_to_photo": "IMG_ durch Photo_ ersetzen", + "watch.recipe.lowercase": "Alles kleinschreiben", + "watch.rename_edit": "Namensregeln bearbeiten", + "watch.rename_title": "Konvertierte Dateien benennen", + "watch.rename_intro": "Lege den Basisnamen fest und ändere bei Bedarf Teile davon mit Regeln.\nDie Vorschau zeigt den künftigen Namen jeder Datei.", + "watch.rename_steps": "Änderungen (von oben nach unten angewendet)", + "watch.rename_no_steps": "Keine Änderungen. Wähle bei Bedarf links eine aus oder füge eine hinzu.", + "watch.step_up": "Nach oben (früher ausführen)", + "watch.rename_try": "Namen ausprobieren", + "watch.rename_try_placeholder": "Dateinamen eingeben, z. B. IMG_0412.jpg", + "watch.include_matches": "Aktuell passen {0} Datei(en) im Ordner", + "watch.add_step": "Regel hinzufügen", + "watch.remove_step": "Diese Regel entfernen", + "watch.recipes": "Häufige Ersetzungen", + "watch.recipes_hint": "Doppelklicken oder + drücken, um eine Ersetzung als Regel hinzuzufügen. Anschließend kannst du sie anpassen.", + "watch.recipe_add": "Als Regel hinzufügen", + "watch.recipe_removes": "(entfernt)", + "watch.recipe.drop_camera_prefix": "IMG_ entfernen", + "watch.recipe.spaces": "Leerzeichen durch Unterstriche ersetzen", + "watch.recipe.copy_number": "Kopienummer wie (2) entfernen", + "watch.recipe.brackets": "Text in Klammern entfernen", + "watch.recipe.leading_number": "Führende Zahl entfernen", + "watch.recipe.date_dashes": "Bindestriche in Datumsangaben einfügen", + "watch.recipe.symbols": "Sonderzeichen entfernen", + "watch.recipe.prefix": "Text am Anfang hinzufügen", + "watch.recipe.suffix": "Text am Ende hinzufügen", + "watch.invalid_regex": "Ungültiger regulärer Ausdruck: {0}", + "watch.preview": "Vorschau", + "watch.results": "Letzte Ergebnisse", + "watch.results_ok": "{0} Datei(en) konvertiert, keine fehlgeschlagen", + "watch.results_failed": "{0} Datei(en) konvertiert · {1} fehlgeschlagen", + "watch.sample_file": "foto.jpg", + "watch.preview_keep": "Das Original bleibt am bisherigen Ort", + "watch.preview_move": "Das Original wird nach „originals“ verschoben", + "watch.status_off": "Aus", + "watch.status_no_folder": "Zum Starten einen Ordner auswählen", + "watch.status_watching": "Überwachung aktiv", + "watch.status_starting": "Wird gestartet…", + "watch.status_error": "Dieser Ordner lässt sich nicht überwachen: {0}", + "watch.cli_hint": "Auch über die Befehlszeile: filee watch --to ", + "preset.sheet_studio": "PDF + Bearbeiten", + "sheet_studio.title": "Tabellen-Druckstudio", + "sheet_studio.sheets": "Tabellenblätter und Ausgabereihenfolge", + "sheet_studio.page_setup": "Seiteneinrichtung", + "sheet_studio.print_area": "Druckbereich", + "sheet_studio.use_content": "Inhalt verwenden", + "sheet_studio.paper": "Papier", + "sheet_studio.orientation": "Ausrichtung", + "sheet_studio.scaling": "Skalierung", + "sheet_studio.percent": "Prozent", + "sheet_studio.pages_wide": "Seiten in der Breite", + "sheet_studio.pages_tall": "Seiten in der Höhe (0 = automatisch)", + "sheet_studio.margins": "Seitenränder (oben, unten, links, rechts)", + "sheet_studio.margin_top": "Oben", + "sheet_studio.margin_bottom": "Unten", + "sheet_studio.margin_left": "Links", + "sheet_studio.margin_right": "Rechts", + "sheet_studio.page_order": "Seitenreihenfolge", + "sheet_studio.include_hidden": "Ausgeblendete Zeilen und Spalten einbeziehen", + "sheet_studio.keep_breaks": "Manuelle Seitenumbrüche beibehalten", + "sheet_studio.reset_sheet": "Dieses Blatt zurücksetzen", + "sheet_studio.rendering": "Exakte PDF-Vorschau wird erstellt…", + "sheet_studio.export_pdf": "PDF exportieren", + "sheet_studio.invalid_range": "Gib einen gültigen Bereich ein, zum Beispiel A1:S52.", + "sheet_studio.exporting": "Tabellenblätter werden dargestellt und zusammengeführt…", + "sheet_studio.exported": "{0} exportiert", + "sheet_studio.page_count": "{0} Seite(n) · Vorschau entspricht dem Export", + "sheet_studio.from_workbook": "Aus der Arbeitsmappe", + "sheet_studio.portrait": "Hochformat", + "sheet_studio.landscape": "Querformat", + "sheet_studio.fit_pages": "An Seitenzahl anpassen", + "sheet_studio.exact_scale": "Exakte Skalierung", + "sheet_studio.down_over": "Erst nach unten, dann nach rechts", + "sheet_studio.over_down": "Erst nach rechts, dann nach unten", + "sheet_studio.warning_scale": "Die Arbeitsmappe gibt nur {0}% Skalierung vor. Dadurch wird die Tabelle oft sehr klein.", + "sheet_studio.warning_wide": "Für sehr breite Inhalte ist kein Druckbereich festgelegt. Wähle „Inhalt verwenden“ und lege dann die Seitenzahl in der Breite fest.", + "sheet_studio.apply_fix": "Vorgeschlagenes Layout übernehmen", + "sheet_studio.add_region": "+ Weiteren Bereich hinzufügen", + "sheet_studio.region_name": "{0} · Bereich {1}", + "whats_new.title": "Neu in Filee {0}", + "whats_new.previous": "Zurück", + "whats_new.next": "Weiter", + "whats_new.done": "Loslegen", + "whats_new.about_link": "Neu in Filee {0}", + "whats_new.2_0_0.browser.title": "Direkt aus dem Browser ziehen", + "whats_new.2_0_0.browser.text": "Halte die Auslösetaste gedrückt und ziehe ein Bild oder einen Dateilink aus einer Webseite. Das Ringmenü öffnet sich, speichert die Datei und konvertiert sie.", + "whats_new.2_0_0.flip.title": "Das Ringmenü hat eine Rückseite", + "whats_new.2_0_0.flip.text": "Drücke bei geöffnetem Ringmenü Tab oder drehe das Mausrad, um zur Rückseite mit weiteren Vorlagen zu wechseln.", + "whats_new.2_0_0.formats.title": "Weitere Formate", + "whats_new.2_0_0.formats.text": "Webarchive (MHTML), elektronische OFD-Rechnungen, Karten in Shapefile, GeoJSON, KML und GPX sowie JPEG XR, FBX-Modelle und POTM-Vorlagen.", + "whats_new.2_0_0.crop.title": "Vor dem Konvertieren zuschneiden", + "whats_new.2_0_0.crop.text": "Ziehe Bilder auf das Segment „Zuschneiden“. Drücke A, während der Mauszeiger über einem Bild steht, um dort ein Seitenverhältnis zu wählen. Wähle dann „Zuschneiden & Weiter“.", + "whats_new.2_0_0.theme.title": "Runder und in deinen Farben", + "whats_new.2_0_0.theme.text": "Wähle eine beliebige Akzentfarbe, runde Ecken mit „Abrundung“ ab und mache das Ringmenü transparent.", + "whats_new.2_0_0.languages.title": "Filee spricht mehr Sprachen", + "whats_new.2_0_0.languages.text": "Spanisch, Hindi, Japanisch, Russisch, Arabisch und brasilianisches Portugiesisch ergänzen Englisch, Koreanisch, Chinesisch und Polnisch.", + "whats_new.2_0_0.more.title": "Und noch mehr", + "whats_new.2_0_0.more.text": "Setze einzelne Ringmenüs zurück, durchsuche den gesamten Verlauf und konvertiere Dokumente auf Gujarati, Hindi oder Arabisch mit LibreOffice." +} diff --git a/src/Filee.App/Services/AppLanguages.cs b/src/Filee.App/Services/AppLanguages.cs index c03e2cbc1..e9d1b9472 100644 --- a/src/Filee.App/Services/AppLanguages.cs +++ b/src/Filee.App/Services/AppLanguages.cs @@ -9,6 +9,7 @@ internal static class AppLanguages public static readonly IReadOnlyList<(string Code, string NativeName)> All = [ ("en", "English"), + ("de", "Deutsch"), ("tr", "Türkçe"), ("es", "Español"), ("ja", "日本語"), diff --git a/src/Filee.App/Services/LocalizationService.cs b/src/Filee.App/Services/LocalizationService.cs index 055a148b5..2f8b5a366 100644 --- a/src/Filee.App/Services/LocalizationService.cs +++ b/src/Filee.App/Services/LocalizationService.cs @@ -106,6 +106,8 @@ internal static string Resolve(string setting, Func osLanguage) return Languages.First(l => l.Code.Equals(setting, StringComparison.OrdinalIgnoreCase)).Code; var ui = osLanguage(); + if (ui.Equals("de", StringComparison.OrdinalIgnoreCase) || ui.StartsWith("de-", StringComparison.OrdinalIgnoreCase)) + return "de"; if (ui.Equals("tr", StringComparison.OrdinalIgnoreCase) || ui.StartsWith("tr-", StringComparison.OrdinalIgnoreCase)) return "tr"; if (ui.StartsWith("ja", StringComparison.OrdinalIgnoreCase)) diff --git a/src/Filee.Setup/SetupOptions.cs b/src/Filee.Setup/SetupOptions.cs index c361e2d17..0204139f0 100644 --- a/src/Filee.Setup/SetupOptions.cs +++ b/src/Filee.Setup/SetupOptions.cs @@ -10,7 +10,7 @@ // /NOCLOSEAPPLICATIONS don't force-close programs that still run from the install folder after "Filee --quit" // /DIR="folder" install folder (environment variables are expanded) // /LANG=ko language of Setup (and of a newly installed Filee): en, es, ja, ko, zh-CN (Inno: zhcn), -// zh-TW, pl, hi, ru, ar, pt-BR, fr, ne, th, tr +// zh-TW, pl, hi, ru, ar, pt-BR, fr, ne, th, tr, de // /TASKS="a,b" exactly these options; /MERGETASKS="a,!b" changes the defaults. "!" unticks, "*" ticks // the children too. Names: contextmenu, contextmenu\top, startup, cli, desktopicon // /NOICONS no Start menu and desktop shortcuts diff --git a/tests/Filee.App.Tests/LocalizationResourceTests.cs b/tests/Filee.App.Tests/LocalizationResourceTests.cs index 87f3a3593..1b73b92da 100644 --- a/tests/Filee.App.Tests/LocalizationResourceTests.cs +++ b/tests/Filee.App.Tests/LocalizationResourceTests.cs @@ -124,6 +124,10 @@ public void DynamicResource_in_xaml_resolves_and_follows_language_changes() Assert.Equal("ホーム", text.Text); Assert.Equal("オン", toggle.OnContent); Assert.Equal("オフ", toggle.OffContent); + TestServices.EnsureInitialized("de"); + Assert.Equal("Start", text.Text); + Assert.Equal("Ein", toggle.OnContent); + Assert.Equal("Aus", toggle.OffContent); window.Close(); } } diff --git a/tests/Filee.App.Tests/LocalizationTests.cs b/tests/Filee.App.Tests/LocalizationTests.cs index 15abb689e..73deb594d 100644 --- a/tests/Filee.App.Tests/LocalizationTests.cs +++ b/tests/Filee.App.Tests/LocalizationTests.cs @@ -140,13 +140,19 @@ public void Russian_is_offered_under_its_own_name() [InlineData("new-NP", "en")] [InlineData("th-TH", "th")] [InlineData("thl-NP", "en")] - [InlineData("de-DE", "en")] + [InlineData("de-DE", "de")] + [InlineData("de-AT", "de")] + [InlineData("de-CH", "de")] + [InlineData("de", "de")] + [InlineData("den-CA", "en")] + [InlineData("it-IT", "en")] [InlineData("", "en")] // Linux without LANG: the invariant culture public void Auto_follows_the_language_the_user_reads_the_os_in(string os, string expected) => Assert.Equal(expected, LocalizationService.Resolve("auto", () => os)); [Theory] [InlineData("ko")] + [InlineData("de")] [InlineData("ar")] [InlineData("ne")] [InlineData("en")] @@ -193,6 +199,13 @@ public void Japanese_is_offered_under_its_own_name() Assert.Equal("ja", LocalizationService.Resolve("JA")); } + [Fact] + public void German_is_offered_under_its_own_name() + { + Assert.Contains(("de", "Deutsch"), LocalizationService.Languages); + Assert.Equal("de", LocalizationService.Resolve("DE")); + } + [Fact] public void Portuguese_is_offered_under_its_own_name() { diff --git a/tests/Filee.App.Tests/RenderTests.cs b/tests/Filee.App.Tests/RenderTests.cs index a8fe025a4..9c8df65c7 100644 --- a/tests/Filee.App.Tests/RenderTests.cs +++ b/tests/Filee.App.Tests/RenderTests.cs @@ -25,6 +25,8 @@ public class RenderTests { public static TheoryData Pages => new() { + { "home", "de" }, { "general", "de" }, { "triggers", "de" }, { "toolbar", "de" }, + { "presets", "de" }, { "theme", "de" }, { "engines", "de" }, { "about", "de" }, { "watch", "de" }, { "home", "tr" }, { "general", "tr" }, { "triggers", "tr" }, { "toolbar", "tr" }, { "presets", "tr" }, { "theme", "tr" }, { "engines", "tr" }, { "about", "tr" }, { "watch", "tr" }, { "home", "ar" }, { "general", "ar" }, { "triggers", "ar" }, { "toolbar", "ar" }, diff --git a/tests/Filee.Setup.Tests/SetupTextsTests.cs b/tests/Filee.Setup.Tests/SetupTextsTests.cs index 66f9a6790..702069f4e 100644 --- a/tests/Filee.Setup.Tests/SetupTextsTests.cs +++ b/tests/Filee.Setup.Tests/SetupTextsTests.cs @@ -64,7 +64,11 @@ public void Setup_offers_every_language_filee_has() [InlineData(null, "ne-NP", "ne")] [InlineData(null, "th-TH", "th")] [InlineData(null, "ja-JP", "ja")] - [InlineData("xx", "de-DE", "en")] + [InlineData("xx", "de-DE", "de")] + [InlineData("de", "en-US", "de")] + [InlineData("auto", "de-AT", "de")] + [InlineData("auto", "de-CH", "de")] + [InlineData("xx", "it-IT", "en")] [InlineData("klingon", "pl-PL", "pl")] public void Languages_resolve_like_the_app_and_like_inno_setup(string? setting, string windows, string expected) => Assert.Equal(expected, SetupTexts.Resolve(setting, () => windows)); From 124119c475d5922ca1a58b430b30034e11f6d3ff Mon Sep 17 00:00:00 2001 From: KnifeLemon Date: Sun, 25 Oct 2026 15:14:25 +0900 Subject: [PATCH 2/3] Finish German: new strings, macOS texts, READMEs - de.json gets the 23 keys main added since the PR started (built-in engine names and compact donut labels) and follows en.json's order. - de.lproj: Finder service title and permission explanations, listed in CFBundleLocalizations. - The READMEs list Deutsch among the UI languages. Co-Authored-By: Claude Opus 5.5 --- README.ar.md | 2 +- README.es.md | 2 +- README.fr.md | 2 +- README.hi.md | 2 +- README.ja.md | 2 +- README.ko.md | 2 +- README.md | 2 +- README.pl.md | 2 +- README.pt-BR.md | 2 +- README.pt-PT.md | 2 +- README.ru.md | 2 +- README.th.md | 2 +- README.zh-CN.md | 2 +- README.zh-TW.md | 2 +- installer/macos/Info.plist | 2 +- installer/macos/de.lproj/InfoPlist.strings | 3 +++ installer/macos/de.lproj/ServicesMenu.strings | 2 ++ src/Filee.App/Assets/i18n/de.json | 25 ++++++++++++++++++- 18 files changed, 44 insertions(+), 16 deletions(-) create mode 100644 installer/macos/de.lproj/InfoPlist.strings create mode 100644 installer/macos/de.lproj/ServicesMenu.strings diff --git a/README.ar.md b/README.ar.md index 5a14020c3..773427436 100644 --- a/README.ar.md +++ b/README.ar.md @@ -134,7 +134,7 @@ Set-ProcessMitigation -Name filee-cli.exe -Disable UserShadowStack - **مراقبة المجلدات**: يُحوَّل كل ملف يصل إلى المجلد المراقَب. - **التحويلات الأخيرة** في الصفحة الرئيسية، لكل نتيجة صورة مصغّرة: افتح الملف، أو افتحه باستخدام تطبيق آخر. - **طرق أخرى**: قائمة النقر بالزر الأيمن، واختصار لوحة المفاتيح، ومنطقة الإفلات، و[الأمر `filee`](#سطر-الأوامر). -- مظهر فاتح وداكن، باللون المميّز وشفافية الشريط الدائري اللذين تختارهما، وباللغات: English · Español · 日本語 · 한국어 · 简体中文 · 繁體中文 · Polski · हिन्दी · Русский · العربية (من اليمين إلى اليسار) · Português (Brasil) · Français · नेपाली · ไทย · Türkçe · Português (Portugal). +- مظهر فاتح وداكن، باللون المميّز وشفافية الشريط الدائري اللذين تختارهما، وباللغات: English · Español · 日本語 · 한국어 · 简体中文 · 繁體中文 · Polski · हिन्दी · Русский · العربية (من اليمين إلى اليسار) · Português (Brasil) · Français · नेपाली · ไทย · Türkçe · Português (Portugal) · Deutsch. ## لقطات الشاشة diff --git a/README.es.md b/README.es.md index 4d5625d37..1f8683222 100644 --- a/README.es.md +++ b/README.es.md @@ -128,7 +128,7 @@ Para deshacerlo, quita esas entradas en Seguridad de Windows → Control de apli - **Carpetas supervisadas** que convierten cada archivo que llega a ellas. - **Conversiones recientes** en Inicio, cada una con su miniatura: abre el resultado o ábrelo con otra aplicación. - **Otras formas de usarlo**: el menú contextual, un atajo de teclado, la zona de suelta y el [comando `filee`](#línea-de-comandos). -- Temas claro y oscuro con tu propio color de acento y la opacidad del menú circular, en English, Español, 日本語, 한국어, 简体中文, 繁體中文, Polski, हिन्दी, Русский, العربية (de derecha a izquierda), Português (Brasil), Français, नेपाली, ไทย, Türkçe y Português (Portugal). +- Temas claro y oscuro con tu propio color de acento y la opacidad del menú circular, en English, Español, 日本語, 한국어, 简体中文, 繁體中文, Polski, हिन्दी, Русский, العربية (de derecha a izquierda), Português (Brasil), Français, नेपाली, ไทย, Türkçe, Português (Portugal) y Deutsch. ## Capturas de pantalla diff --git a/README.fr.md b/README.fr.md index b01d14963..be2949620 100644 --- a/README.fr.md +++ b/README.fr.md @@ -128,7 +128,7 @@ Pour annuler, supprimez ces entrées dans Sécurité Windows → Contrôle des a - **Des dossiers surveillés** convertissent chaque fichier qui y arrive. - **Conversions récentes** dans l'Accueil, chacune avec sa miniature : ouvrez le résultat, ou ouvrez-le avec une autre application. - **D'autres points d'entrée** : le menu contextuel, un raccourci clavier, la zone de dépôt et la [commande `filee`](#ligne-de-commande). -- Thèmes clair et sombre avec votre propre couleur d'accentuation et l'opacité du menu circulaire, en English, Español, 日本語, 한국어, 简体中文, 繁體中文, Polski, हिन्दी, Русский, العربية (de droite à gauche), Português (Brasil), Français, नेपाली, ไทย, Türkçe et Português (Portugal). +- Thèmes clair et sombre avec votre propre couleur d'accentuation et l'opacité du menu circulaire, en English, Español, 日本語, 한국어, 简体中文, 繁體中文, Polski, हिन्दी, Русский, العربية (de droite à gauche), Português (Brasil), Français, नेपाली, ไทย, Türkçe, Português (Portugal) et Deutsch. ## Captures d'écran diff --git a/README.hi.md b/README.hi.md index 53fb7cc1b..7c3d3d1b1 100644 --- a/README.hi.md +++ b/README.hi.md @@ -128,7 +128,7 @@ Set-ProcessMitigation -Name filee-cli.exe -Disable UserShadowStack - **वॉच फ़ोल्डर** में आने वाली हर फ़ाइल अपने-आप कन्वर्ट हो जाती है। - **हाल के कन्वर्ज़न** होम पर, हर एक के थंबनेल के साथ: नतीजे को "फ़ाइल खोलें" से खोलें, या "इसके साथ खोलें" से किसी दूसरे ऐप में। - **दूसरे तरीके**: राइट-क्लिक मेनू, कीबोर्ड शॉर्टकट, ड्रॉप ज़ोन और [`filee` कमांड](#कमांड-लाइन)। -- लाइट और डार्क थीम, अपने एक्सेंट रंग और डोनट की अपारदर्शिता के साथ, English, Español, 日本語, 한국어, 简体中文, 繁體中文, Polski, हिन्दी, Русский, العربية (दाएँ से बाएँ), Português (Brasil), Français, नेपाली, ไทย, Türkçe और Português (Portugal) में। +- लाइट और डार्क थीम, अपने एक्सेंट रंग और डोनट की अपारदर्शिता के साथ, English, Español, 日本語, 한국어, 简体中文, 繁體中文, Polski, हिन्दी, Русский, العربية (दाएँ से बाएँ), Português (Brasil), Français, नेपाली, ไทย, Türkçe, Português (Portugal) और Deutsch में। ## स्क्रीनशॉट diff --git a/README.ja.md b/README.ja.md index bc041c577..a23cd78a3 100644 --- a/README.ja.md +++ b/README.ja.md @@ -131,7 +131,7 @@ Set-ProcessMitigation -Name filee-cli.exe -Disable UserShadowStack - **ほかの使い方**:右クリックメニュー、キーボードショートカット、ドロップ領域、[`filee`コマンド](#コマンドライン)。 - ライトテーマとダークテーマ。 アクセントカラーとドーナツメニューの不透明度も選べます。 - English、Español、日本語、한국어、简体中文、繁體中文、Polski、हिन्दी、Русский、العربية(右から左へ表示)、Português (Brasil)、Français、नेपाली、ไทย、Türkçe、Português (Portugal)に対応。 + English、Español、日本語、한국어、简体中文、繁體中文、Polski、हिन्दी、Русский、العربية(右から左へ表示)、Português (Brasil)、Français、नेपाली、ไทย、Türkçe、Português (Portugal)、Deutschに対応。 ## スクリーンショット diff --git a/README.ko.md b/README.ko.md index 65009fa04..3696688e2 100644 --- a/README.ko.md +++ b/README.ko.md @@ -129,7 +129,7 @@ Set-ProcessMitigation -Name filee-cli.exe -Disable UserShadowStack - **자동 변환 폴더**에 들어온 파일을 바로 변환해요. - **최근 변환**: 홈에서 결과를 썸네일과 함께 보여 주고, 바로 열거나 연결 프로그램으로 열 수 있어요. - **다른 방법**: 우클릭 메뉴, 키보드 단축키, 드롭 영역, [`filee` 명령](#명령줄) -- 밝은·어두운 테마, 원하는 강조색과 원형 툴바 불투명도, English · Español · 日本語 · 한국어 · 简体中文 · 繁體中文 · Polski · हिन्दी · Русский · العربية(오른쪽에서 왼쪽으로) · Português (Brasil) · Français · नेपाली · ไทย · Türkçe · Português (Portugal) +- 밝은·어두운 테마, 원하는 강조색과 원형 툴바 불투명도, English · Español · 日本語 · 한국어 · 简体中文 · 繁體中文 · Polski · हिन्दी · Русский · العربية(오른쪽에서 왼쪽으로) · Português (Brasil) · Français · नेपाली · ไทย · Türkçe · Português (Portugal) · Deutsch ## 스크린샷 diff --git a/README.md b/README.md index 0becab863..065c18a7f 100644 --- a/README.md +++ b/README.md @@ -128,7 +128,7 @@ To undo it, remove the entries in Windows Security → App & browser control → - **Watch folders** convert every file that lands in them. - **Recent conversions** on Home, each with a thumbnail: open the result, or open it with another app. - **Other ways in**: the right-click menu, a keyboard shortcut, the drop zone and the [`filee` command](#command-line). -- Light and dark themes with your own accent colour and donut opacity, in English, Español, 日本語, 한국어, 简体中文, 繁體中文, Polski, हिन्दी, Русский, العربية (right to left), Português (Brasil), Français, नेपाली, ไทย, Türkçe and Português (Portugal). +- Light and dark themes with your own accent colour and donut opacity, in English, Español, 日本語, 한국어, 简体中文, 繁體中文, Polski, हिन्दी, Русский, العربية (right to left), Português (Brasil), Français, नेपाली, ไทย, Türkçe, Português (Portugal) and Deutsch. ## Screenshots diff --git a/README.pl.md b/README.pl.md index b2b1ed93d..6ac4148a1 100644 --- a/README.pl.md +++ b/README.pl.md @@ -128,7 +128,7 @@ Aby to cofnąć, usuń te wpisy w Zabezpieczenia Windows → Kontrola aplikacji - **Obserwowane foldery** konwertują każdy plik, który do nich trafi. - **Ostatnie konwersje** na ekranie Start, każda z miniaturą: otwórz wynik albo otwórz go za pomocą innej aplikacji. - **Inne sposoby**: menu kontekstowe, skrót klawiszowy, strefa upuszczania i [polecenie `filee`](#wiersz-poleceń). -- Jasny i ciemny motyw z własnym kolorem akcentu i kryciem pierścienia, w językach English, Español, 日本語, 한국어, 简体中文, 繁體中文, Polski, हिन्दी, Русский, العربية (od prawej do lewej), Português (Brasil), Français, नेपाली, ไทย, Türkçe i Português (Portugal). +- Jasny i ciemny motyw z własnym kolorem akcentu i kryciem pierścienia, w językach English, Español, 日本語, 한국어, 简体中文, 繁體中文, Polski, हिन्दी, Русский, العربية (od prawej do lewej), Português (Brasil), Français, नेपाली, ไทย, Türkçe, Português (Portugal) i Deutsch. ## Zrzuty ekranu diff --git a/README.pt-BR.md b/README.pt-BR.md index 5667bfeb4..705fde9f2 100644 --- a/README.pt-BR.md +++ b/README.pt-BR.md @@ -128,7 +128,7 @@ Para desfazer, remova essas entradas em Segurança do Windows → Controle de ap - **Pastas monitoradas** convertem cada arquivo que chega nelas. - **Conversões recentes** no Início, cada uma com uma miniatura: abra o resultado, ou abra com outro aplicativo. - **Outras entradas**: o menu do botão direito, um atalho de teclado, a área de soltar e o [comando `filee`](#linha-de-comando). -- Temas claro e escuro, com sua cor de destaque e a opacidade do menu circular, em English, Español, 日本語, 한국어, 简体中文, 繁體中文, Polski, हिन्दी, Русский, العربية (da direita para a esquerda), Português (Brasil), Français, नेपाली, ไทย, Türkçe e Português (Portugal). +- Temas claro e escuro, com sua cor de destaque e a opacidade do menu circular, em English, Español, 日本語, 한국어, 简体中文, 繁體中文, Polski, हिन्दी, Русский, العربية (da direita para a esquerda), Português (Brasil), Français, नेपाली, ไทย, Türkçe, Português (Portugal) e Deutsch. ## Capturas de tela diff --git a/README.pt-PT.md b/README.pt-PT.md index 4e15a9f10..26abe04c9 100644 --- a/README.pt-PT.md +++ b/README.pt-PT.md @@ -128,7 +128,7 @@ Para reverter a alteração, remove as entradas em Segurança do Windows → Con - **Pastas monitorizadas** convertem todos os ficheiros que nelas entram. - **Conversões recentes** na Página inicial, cada uma com uma miniatura: abre o resultado ou escolhe outra aplicação para o abrir. - **Outras formas de converter**: o menu de contexto, um atalho de teclado, a zona de largada e o [comando `filee`](#linha-de-comandos). -- Temas claro e escuro, com a tua cor de destaque e a opacidade da barra circular à tua escolha, em English, Español, 日本語, 한국어, 简体中文, 繁體中文, Polski, हिन्दी, Русский, العربية (da direita para a esquerda), Português (Brasil), Français, नेपाली, ไทย, Türkçe e Português (Portugal). +- Temas claro e escuro, com a tua cor de destaque e a opacidade da barra circular à tua escolha, em English, Español, 日本語, 한국어, 简体中文, 繁體中文, Polski, हिन्दी, Русский, العربية (da direita para a esquerda), Português (Brasil), Français, नेपाली, ไทย, Türkçe, Português (Portugal) e Deutsch. ## Capturas de ecrã diff --git a/README.ru.md b/README.ru.md index 3887fc0fb..b639565cb 100644 --- a/README.ru.md +++ b/README.ru.md @@ -128,7 +128,7 @@ Set-ProcessMitigation -Name filee-cli.exe -Disable UserShadowStack - **Папки наблюдения** конвертируют каждый файл, который в них попадает. - **Недавние конвертации** на главной, у каждой миниатюра: результат можно открыть («Открыть файл») или открыть в другой программе («Открыть с помощью»). - **Другие способы**: контекстное меню, горячая клавиша, зона перетаскивания и [команда `filee`](#командная-строка). -- Светлая и тёмная темы со своим акцентным цветом и непрозрачностью кругового меню, интерфейс на языках English, Español, 日本語, 한국어, 简体中文, 繁體中文, Polski, हिन्दी, Русский, العربية (справа налево), Português (Brasil), Français, नेपाली, ไทย, Türkçe и Português (Portugal). +- Светлая и тёмная темы со своим акцентным цветом и непрозрачностью кругового меню, интерфейс на языках English, Español, 日本語, 한국어, 简体中文, 繁體中文, Polski, हिन्दी, Русский, العربية (справа налево), Português (Brasil), Français, नेपाली, ไทย, Türkçe, Português (Portugal) и Deutsch. ## Скриншоты diff --git a/README.th.md b/README.th.md index 82d76ad27..d36f0524d 100644 --- a/README.th.md +++ b/README.th.md @@ -128,7 +128,7 @@ Set-ProcessMitigation -Name filee-cli.exe -Disable UserShadowStack - **ประวัติการแปลงล่าสุด**: แสดงในหน้าแรกพร้อมรูปตัวอย่าง เปิดดูผลลัพธ์หรือเปิดด้วยแอปอื่นได้ทันที - **ช่องทางอื่นในการแปลง**: เมนูคลิกขวา, ปุ่มลัดแป้นพิมพ์, พื้นที่วางไฟล์ในหน้าแรก และคำสั่ง [`filee`](#การใช้งานผ่านบรรทัดคำสั่ง-command-line) - รองรับธีมสว่างและมืด ปรับสีเน้น (accent colour) และความโปร่งใสของโดนัทได้ตามใจ - รองรับภาษา English, Español, 日本語, 한국어, 简体中文, 繁體中文, Polski, हिन्दी, Русский, العربية (จากขวาไปซ้าย), Português (Brasil), Français, नेपाली, ไทย, Türkçe และ Português (Portugal) + รองรับภาษา English, Español, 日本語, 한국어, 简体中文, 繁體中文, Polski, हिन्दी, Русский, العربية (จากขวาไปซ้าย), Português (Brasil), Français, नेपाली, ไทย, Türkçe, Português (Portugal) และ Deutsch ## ภาพหน้าจอ diff --git a/README.zh-CN.md b/README.zh-CN.md index a4a586f4b..ad8e6d036 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -128,7 +128,7 @@ Set-ProcessMitigation -Name filee-cli.exe -Disable UserShadowStack - **监视文件夹**,放入的文件自动转换。 - **最近的转换**显示在主页上,每项都有缩略图,可以直接“打开文件”,也可以用“打开方式”换个应用打开。 - **其他方式** 右键菜单、键盘快捷键、拖放区域和 [`filee` 命令](#命令行)。 -- 浅色和深色主题,可自选强调色和环形工具栏不透明度,支持 English、Español、日本語、한국어、简体中文、繁體中文、Polski、हिन्दी、Русский、العربية(从右到左)、Português (Brasil)、Français、नेपाली、ไทย、Türkçe、Português (Portugal)。 +- 浅色和深色主题,可自选强调色和环形工具栏不透明度,支持 English、Español、日本語、한국어、简体中文、繁體中文、Polski、हिन्दी、Русский、العربية(从右到左)、Português (Brasil)、Français、नेपाली、ไทย、Türkçe、Português (Portugal)、Deutsch。 ## 截图 diff --git a/README.zh-TW.md b/README.zh-TW.md index 55cc2af71..f9d5ba01e 100644 --- a/README.zh-TW.md +++ b/README.zh-TW.md @@ -128,7 +128,7 @@ Set-ProcessMitigation -Name filee-cli.exe -Disable UserShadowStack - **監視資料夾**,放入的檔案自動轉換。 - **最近的轉換**顯示在首頁上,每項都有縮圖,可以直接「開啟檔案」,也可以用「開啟方式」換個應用程式開啟。 - **其他方式** 右鍵選單、鍵盤快速鍵、拖放區域和 [`filee` 命令](#命令列)。 -- 淺色和深色主題,可自選強調色和環形工具列不透明度,支援 English、Español、日本語、한국어、简体中文、繁體中文、Polski、हिन्दी、Русский、العربية(從右到左)、Português (Brasil)、Français、नेपाली、ไทย、Türkçe、Português (Portugal)。 +- 淺色和深色主題,可自選強調色和環形工具列不透明度,支援 English、Español、日本語、한국어、简体中文、繁體中文、Polski、हिन्दी、Русский、العربية(從右到左)、Português (Brasil)、Français、नेपाली、ไทย、Türkçe、Português (Portugal)、Deutsch。 ## 截圖 diff --git a/installer/macos/Info.plist b/installer/macos/Info.plist index 734b78b92..c10f8d16c 100644 --- a/installer/macos/Info.plist +++ b/installer/macos/Info.plist @@ -3,7 +3,7 @@ CFBundleDevelopmentRegionen - CFBundleLocalizationsenkozh-Hanszh-Hantpt-PTpt-BR + CFBundleLocalizationsenkozh-Hanszh-Hantpt-PTpt-BRde CFBundleIdentifiercom.filee.app CFBundleNameFilee CFBundleDisplayNameFilee diff --git a/installer/macos/de.lproj/InfoPlist.strings b/installer/macos/de.lproj/InfoPlist.strings new file mode 100644 index 000000000..168512215 --- /dev/null +++ b/installer/macos/de.lproj/InfoPlist.strings @@ -0,0 +1,3 @@ +/* macOS permission explanations; the operating system chooses the bundle localization. */ +"NSAppleEventsUsageDescription" = "Filee liest die im Finder ausgewählten Dateien, wenn du ein Tastenkürzel zum Konvertieren verwendest."; +"NSInputMonitoringUsageDescription" = "Filee erkennt dein Tastenkürzel zum Konvertieren und die Ziehgeste, um das Konvertierungsmenü anzuzeigen."; diff --git a/installer/macos/de.lproj/ServicesMenu.strings b/installer/macos/de.lproj/ServicesMenu.strings new file mode 100644 index 000000000..8a5103a3d --- /dev/null +++ b/installer/macos/de.lproj/ServicesMenu.strings @@ -0,0 +1,2 @@ +/* Finder's right-click menu: keep the service identifier in English. */ +"Convert with Filee" = "Mit Filee konvertieren"; diff --git a/src/Filee.App/Assets/i18n/de.json b/src/Filee.App/Assets/i18n/de.json index a398460ed..fc742a82b 100644 --- a/src/Filee.App/Assets/i18n/de.json +++ b/src/Filee.App/Assets/i18n/de.json @@ -139,24 +139,43 @@ "engine.pdfsharp.description": "Erstellt PDFs aus Bildern, führt PDFs zusammen, teilt sie oder entnimmt Seitenbereiche.\nVerkleinert PDFs auch durch Herunterskalieren der enthaltenen Bilder.", "engine.rhwp.description": "Wandelt HWP/HWPX in PDF um und konvertiert HWP ↔ HWPX.\nErzeugt auch PDFs aus Dokumenten, die über HWPX konvertiert werden (DOCX, XLSX, PPTX, E-Books…).", "engine.unhwp.description": "Extrahiert Text, Markdown und HTML aus HWP und HWPX.", + "engine.markdown.name": "Markdown (integriert)", "engine.markdown.description": "Markdown → HTML und reiner Text.\nTextdateien und Skript-Quelltexte → UTF-8-TXT, ohne Skripte auszuführen.", + "engine.spreadsheet.name": "Tabellen (integriert)", "engine.spreadsheet.description": "Konvertiert XLSX, XLS, ODS, CSV und TSV untereinander (XLS nur lesend).\nEine CSV-Datei pro Tabellenblatt.", + "engine.ooxml.name": "Office Open XML (integriert)", "engine.ooxml.description": "Dateien mit Makros und Dokumentvorlagen (DOCM, XLSM, PPTM, DOTX…) ↔ DOCX, XLSX, PPTX.\nMakros werden entfernt.", + "engine.hwpx-writer.name": "HWPX-Writer (integriert)", "engine.hwpx-writer.description": "Erstellt HWPX aus Word, Excel, PowerPoint, PDF, OFD, HTML, E-Books und Markdown.\nDer erste Schritt zur PDF-Konvertierung von Dokumenten ohne Office.", + "engine.docx-writer.name": "DOCX-Writer (integriert)", "engine.docx-writer.description": "Erstellt Word-Dokumente (DOCX) aus PDF, OFD, HWP/HWPX, Markdown, HTML, Tabellen, Folien und E-Books.", + "engine.pdf-text.name": "PDF-Text (integriert)", "engine.pdf-text.description": "Extrahiert PDF-Text in Lesereihenfolge, auch aus zweispaltigen Seiten (keine Texterkennung für Scans).", + "engine.pdf-slides.name": "PDF-Folien (integriert)", "engine.pdf-slides.description": "Wandelt PDFs in PowerPoint-Folien um: Jede Seite wird als Bild auf einer eigenen Folie dargestellt (wie im PDF, nicht bearbeitbar). Der Seitentext steht in den Sprechernotizen.", + "engine.pdf-tables.name": "PDF-Tabellen (integriert)", "engine.pdf-tables.description": "Überträgt Tabellen mit eingezeichneten Linien aus einer PDF in eine Excel-Arbeitsmappe, jeweils auf ein eigenes Blatt. Zahlen und Datumsangaben bleiben echte Werte.", + "engine.email.name": "E-Mail (integriert)", "engine.email.description": "E-Mails (EML, Outlook MSG) in HTML und Text mit Absender, Empfängern, Datum und Bildern; Anhänge in eine ZIP-Datei.\nMSG in EML. Gespeicherte Webseiten (MHTML) in eine HTML-Datei mit ihren Bildern.", + "engine.data.name": "Daten (integriert)", "engine.data.description": "Konvertiert JSON, JSON Lines, YAML, TOML, XML und CSV untereinander.\nvCard-Kontakte und iCalendar-Termine in CSV und zurück.\nKommentare werden entfernt. CSV speichert nur Tabellen.", + "engine.vector.name": "Vektorgrafiken (integriert)", "engine.vector.description": "SVG und SVGZ in Vektor-PDF, Bilder und DXF; Bilder als SVG vektorisieren; Illustrator-Dateien mit eingebettetem PDF-Inhalt.", + "engine.icns.name": "ICNS (integriert)", "engine.icns.description": "macOS-App-Symbole (ICNS) aus Bildern und in Bilder umwandeln.", + "engine.font.name": "Schriftarten (integriert)", "engine.font.description": "Schriftarten: Konvertiert TTF, OTF, WOFF, WOFF2 und EOT untereinander.", + "engine.cad.name": "CAD (integriert)", "engine.cad.description": "AutoCAD-Zeichnungen: DWG ↔ DXF und beide in PDF, SVG und PNG.", + "engine.model3d.name": "3D-Modelle (integriert)", "engine.model3d.description": "3D-Modelle: Konvertiert GLB, glTF, STL, OBJ, 3MF und PLY untereinander, FBX in jedes dieser Formate und erstellt eine PNG-Vorschau.", + "engine.geo.name": "Vektor-Geodaten (integriert)", "engine.geo.description": "Vektor-Geodaten: Konvertiert GeoJSON, KML, KMZ, GPX, Shapefile und CSV (Längen-/Breitengrad oder WKT) untereinander.\nErgebnisse verwenden WGS-84-Längen- und Breitengrade. Projizierte Shapefiles (UTM, Web Mercator, Lambert, Albers) werden umgerechnet.", + "engine.archive.name": "Archive (7-Zip)", "engine.archive.description": "Entpackt ZIP, 7Z, RAR, TAR, ISO und weitere Formate und erstellt ZIP, 7Z oder TAR.GZ (7-Zip).", + "engine.ebook.name": "E-Books (integriert)", "engine.ebook.description": "EPUB, MOBI, AZW3, FB2 und Comics (CBZ, CBR) in PDF, EPUB, DOCX und Text.\nAußerdem Dokumente in EPUB, EPUB in KEPUB für Kobo und PDF in CBZ.", + "engine.subtitle.name": "Untertitel (integriert)", "engine.subtitle.description": "Untertitel: Konvertiert SRT, ASS/SSA, WebVTT, SAMI (SMI), LRC, TTML, MicroDVD und SCC untereinander und speichert sie als UTF-8.\nKoreanische SMI- und SRT-Dateien in CP949 / EUC-KR werden korrekt gelesen.", "engine.ffmpeg.description": "Video und Audio: MP4, MOV, MKV, WEBM, MP3, M4A, WAV, FLAC und mehr.\nExtrahiert auch Ton und Untertitel, erstellt GIF- und APNG-Animationen und speichert Bilder als HEIC.", "engine.pandoc.description": "Markdown und HTML ↔ ODT und RTF, DOCX → Markdown\nreStructuredText, LaTeX, Org, AsciiDoc, Typst, MediaWiki, DocBook, Jupyter und mehr ↔ Markdown, HTML, DOCX und ODT\nMarkdown und Org → PPTX-Folien", @@ -266,6 +285,7 @@ "clip.no_silence": "Keine Stille gefunden", "clip.cannot_play": "Der Clip lässt sich nicht abspielen", "preset.half_size": "Halbe Größe", + "preset.half_size.donut": "Halbe Größe", "preset.grayscale": "Graustufen", "preset.remove_background": "Hintergrund entfernen", "preset.trim_transparent": "Transparente Ränder abschneiden", @@ -312,7 +332,9 @@ "preset.zip_all": "Eine ZIP-Datei", "preset.extract_subtitles": "Untertitel extrahieren", "preset.trace_svg": "Vektor-SVG", + "preset.trace_svg.donut": "Vektorisieren", "preset.trace_line_art": "Linien-SVG", + "preset.trace_line_art.donut": "Linien", "preset.extract_frames_png": "Einzelbilder (PNG)", "preset.extract_frames_jpg": "Einzelbilder (JPG)", "preset.extract_motion": "Live-Photo-Video extrahieren", @@ -1104,5 +1126,6 @@ "whats_new.2_0_0.languages.title": "Filee spricht mehr Sprachen", "whats_new.2_0_0.languages.text": "Spanisch, Hindi, Japanisch, Russisch, Arabisch und brasilianisches Portugiesisch ergänzen Englisch, Koreanisch, Chinesisch und Polnisch.", "whats_new.2_0_0.more.title": "Und noch mehr", - "whats_new.2_0_0.more.text": "Setze einzelne Ringmenüs zurück, durchsuche den gesamten Verlauf und konvertiere Dokumente auf Gujarati, Hindi oder Arabisch mit LibreOffice." + "whats_new.2_0_0.more.text": "Setze einzelne Ringmenüs zurück, durchsuche den gesamten Verlauf und konvertiere Dokumente auf Gujarati, Hindi oder Arabisch mit LibreOffice.", + "preset.extract_motion.donut": "Video extrahieren" } From 9532be01289467d1a0856f8d9d0f7f76c90a4ffb Mon Sep 17 00:00:00 2001 From: KnifeLemon Date: Sun, 25 Oct 2026 16:19:19 +0900 Subject: [PATCH 3/3] Use Italian as the unsupported language in the Portuguese test The pt-PT test used de-DE as an OS language Filee doesn't ship, which now selects German. Co-Authored-By: Claude Opus 5.5 --- tests/Filee.App.Tests/PortugueseLocalizationTests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Filee.App.Tests/PortugueseLocalizationTests.cs b/tests/Filee.App.Tests/PortugueseLocalizationTests.cs index 7148fca8c..b8b447935 100644 --- a/tests/Filee.App.Tests/PortugueseLocalizationTests.cs +++ b/tests/Filee.App.Tests/PortugueseLocalizationTests.cs @@ -61,7 +61,7 @@ public void The_KWin_window_identifier_stays_compatible_when_the_ui_language_cha [InlineData("PT-br", "pt-PT", "pt-BR")] [InlineData("en", "pt-BR", "en")] [InlineData("invalid", "pt-BR", "pt-BR")] - [InlineData("auto", "de-DE", "en")] + [InlineData("auto", "it-IT", "en")] [InlineData("auto", "", "en")] [InlineData("auto", "ptx", "en")] [InlineData("auto", "ja-JP", "ja")]