[dyad] Adding multi-language support - wrote 15 file(s), deleted 5 file(s), added next-intl package(s)

This commit is contained in:
[dyad]
2026-01-18 14:08:01 +01:00
parent 92d31b0051
commit 3866176416
18 changed files with 1045 additions and 262 deletions

152
messages/de.json Normal file
View File

@@ -0,0 +1,152 @@
{
"Metadata": {
"title": "Bild-Web-Exporter",
"description": "Laden Sie ein Bild hoch und exportieren Sie es in einer anderen Auflösung und einem anderen Format."
},
"HomePage": {
"title": "Bild-Web-Exporter",
"subtitle": "Laden Sie ein Bild hoch und exportieren Sie es in einer anderen Auflösung und einem anderen Format."
},
"Footer": {
"copyright": "© {year} Pascal Linxweiler",
"imprint": "Impressum",
"privacy": "Datenschutz",
"language": "Sprache"
},
"LanguageSwitcher": {
"en": "Englisch",
"de": "Deutsch"
},
"ChangelogPage": {
"backToConverter": "Zurück zum Konverter",
"title": "Änderungsprotokoll",
"subtitle": "Verfolgung aller neuen Funktionen, Verbesserungen und Fehlerbehebungen."
},
"Changelog": {
"version": "Version",
"new": "Neu",
"improved": "Verbessert",
"fixed": "Behoben"
},
"ImprintPage": {
"backToConverter": "Zurück zum Konverter",
"title": "Impressum",
"tmgInfo": "Angaben gemäß § 5 TMG",
"contactInfoTitle": "Kontaktinformationen:",
"contactName": "[Ihr Firmenname]",
"contactStreet": "[Straße & Hausnummer]",
"contactCity": "[PLZ & Stadt]",
"contactEmail": "E-Mail: [ihre-email@beispiel.com]",
"contactPhone": "Telefon: [ihre-telefonnummer]",
"representedByTitle": "Vertreten durch:",
"representedByName": "[Ihr Name/Name des Geschäftsführers]",
"disclaimerTitle": "Haftungsausschluss:",
"disclaimerText": "Dies ist ein Musterimpressum und nicht rechtsverbindlich. Bitte ersetzen Sie den Platzhalterinhalt durch Ihre eigenen Informationen und konsultieren Sie einen Rechtsexperten, um die Einhaltung aller geltenden Gesetze sicherzustellen."
},
"PrivacyPage": {
"backToConverter": "Zurück zum Konverter",
"title": "Datenschutzerklärung",
"generalInfoTitle": "1. Allgemeine Informationen",
"generalInfoText": "Dies ist ein Platzhalter für Ihre Datenschutzerklärung. Sie beschreibt, wie personenbezogene Daten erfasst, verwendet und geschützt werden, wenn Sie diese Website nutzen.",
"dataCollectionTitle": "2. Datenerfassung auf dieser Website",
"dataCollectionText": "Die gesamte Bildverarbeitung findet direkt in Ihrem Browser statt. Die von Ihnen hochgeladenen Bilder werden nicht an einen Server gesendet und von uns nicht gespeichert. Wir erheben keine personenbezogenen Daten aus den Bildern.",
"yourRightsTitle": "3. Ihre Rechte",
"yourRightsText": "Da keine personenbezogenen Daten erhoben werden, sind Rechte bezüglich Auskunft, Berichtigung oder Löschung personenbezogener Daten in diesem Zusammenhang nicht anwendbar.",
"disclaimerTitle": "Haftungsausschluss:",
"disclaimerText": "Dies ist eine Muster-Datenschutzerklärung und nicht rechtsverbindlich. Es ist entscheidend, diesen Text an Ihre spezifischen Datenverarbeitungsaktivitäten anzupassen und einen Rechtsexperten zu konsultieren, um die vollständige DSGVO-Konformität sicherzustellen."
},
"ImageConverter": {
"uploadTitle": "Bilder hochladen",
"uploadPrompt": "Klicken oder ziehen Sie Dateien hierher, um sie hochzuladen",
"uploadHint": "PNG, JPG, WEBP werden unterstützt",
"uploadedImagesTitle": "Hochgeladene Bilder",
"clearAll": "Alle löschen",
"clearAllTooltip": "Alle hochgeladenen Bilder entfernen.",
"downloadAll": "Alle ({count}) herunterladen",
"downloadAllConverting": "Konvertiere...",
"downloadAllTooltip": "Alle Bilder mit den aktuellen Einstellungen konvertieren und herunterladen.",
"baseNameLabel": "Basisname",
"finalNameLabel": "Endgültiger Name: {filename}",
"downloadSingleTooltip": "Dieses Bild herunterladen",
"removeSingleTooltip": "Dieses Bild entfernen",
"imageSettingsTitle": "Bildeinstellungen",
"imageSettingsSubtitle": "Passen Sie Auflösung und Skalierung für alle Bilder an.",
"aspectRatioLabel": "Seitenverhältnis",
"aspectRatioTooltip": "Wählen Sie ein voreingestelltes Seitenverhältnis oder 'Benutzerdefiniert', um die Abmessungen manuell einzugeben.",
"selectAspectRatio": "Seitenverhältnis auswählen",
"aspectRatios": {
"custom": "Benutzerdefiniert",
"square": "1:1 (Quadratisch)",
"standard": "4:3 (Standard)",
"photography": "3:2 (Fotografie)",
"widescreen": "16:9 (Breitbild)"
},
"widthLabel": "Breite (px)",
"widthTooltip": "Legen Sie die Ausgabebreite in Pixel fest. Leer lassen, um die Originalbreite zu verwenden.",
"widthPlaceholder": "Auto",
"swapDimensionsTooltip": "Tauschen Sie die eingegebenen Breiten- und Höhenwerte.",
"heightLabel": "Höhe (px)",
"heightTooltip": "Legen Sie die Ausgabehöhe in Pixel fest. Leer lassen, um die Originalhöhe zu verwenden.",
"heightPlaceholder": "Auto",
"keepOrientationLabel": "Originalausrichtung beibehalten",
"keepOrientationTooltip": "Tauscht automatisch Breite und Höhe, um der Ausrichtung des Originalbildes zu entsprechen.",
"scalingLabel": "Skalierung",
"scalingTooltip": "Bestimmt, wie das Bild in die neuen Abmessungen passt.",
"selectScaling": "Skalierungsmodus auswählen",
"scalingOptions": {
"fill": "Füllen (strecken)",
"cover": "Abdecken (zuschneiden)",
"contain": "Enthalten (Letterbox)"
},
"positionLabel": "Position",
"positionTooltip": "Legt den Ankerpunkt für die Skalierung 'Abdecken' oder 'Enthalten' fest.",
"filenameSettingsTitle": "Dateinameneinstellungen",
"filenameSettingsSubtitle": "Passen Sie die Ausgabedateinamen an.",
"useDefaultBaseNameLabel": "Standard-Basisnamen verwenden",
"useDefaultBaseNameTooltip": "Wenn aktiviert, verwenden alle neu hochgeladenen Bilder den angegebenen Standard-Basisnamen.",
"defaultBaseNameLabel": "Standard-Basisname",
"defaultBaseNamePlaceholder": "z.B. new-york-reise",
"applyToAll": "Auf alle anwenden",
"applyToAllTooltip": "Diesen Basisnamen auf alle aktuell hochgeladenen Bilder anwenden.",
"prefixLabel": "Präfix",
"prefixTooltip": "Fügen Sie Text am Anfang jedes Dateinamens hinzu.",
"prefixPlaceholder": "z.B. reise-",
"suffixLabel": "Suffix",
"suffixTooltip": "Fügen Sie Text am Ende jedes Dateinamens hinzu (vor der Nummer).",
"suffixPlaceholder": "z.B. -bearbeitet",
"useCounterLabel": "Laufende Nummer hinzufügen",
"useCounterTooltip": "Fügen Sie jedem Dateinamen eine nummerierte Sequenz an.",
"counterStartLabel": "Startnummer",
"counterStartTooltip": "Die erste Nummer, die in der Sequenz verwendet wird.",
"counterDigitsLabel": "Auffüllziffern",
"counterDigitsTooltip": "Gesamtzahl der Ziffern für den Zähler, aufgefüllt mit führenden Nullen (z.B. 3 für 001).",
"qualitySettingsTitle": "Qualitätseinstellungen",
"qualitySettingsSubtitle": "Wählen Sie Format und Komprimierungsstufe.",
"formatLabel": "Format",
"formatTooltip": "Wählen Sie das Ausgabedateiformat für die Bilder.",
"selectFormat": "Format auswählen",
"qualityLabel": "Qualität",
"qualityTooltip": "Stellen Sie die Komprimierungsqualität für JPEG/WEBP ein. Höher bedeutet bessere Qualität, aber größere Dateigröße.",
"qualityDisabledHint": "Der Qualitätsschieberegler ist für PNG (verlustfreies Format) deaktiviert.",
"resetButton": "Zurücksetzen",
"resetButtonTooltip": "Alle Einstellungen auf ihre Standardwerte zurücksetzen.",
"applyButton": "Anwenden",
"applyButtonTooltip": "Bestätigen und alle oben genannten Einstellungen anwenden. Dies lädt die Bilder nicht herunter.",
"toasts": {
"noImages": "Keine gültigen Bilddateien gefunden.",
"imagesAdded": "{count, plural, one {# Bild hinzugefügt.} other {# Bilder hinzugefügt.}}",
"allCleared": "Alle Bilder gelöscht.",
"conversionStarting": "Konvertierung für {count, plural, one {# Bild wird gestartet...} other {# Bilder wird gestartet...}}",
"conversionSuccess": "Alle {count} Bilder erfolgreich exportiert!",
"conversionError": "Während der Konvertierung ist ein unbekannter Fehler aufgetreten.",
"singleConversionStarting": "Konvertierung für {filename} wird gestartet...",
"singleConversionSuccess": "{filename} erfolgreich exportiert!",
"settingsApplied": "Einstellungen aktualisiert und werden für alle Downloads verwendet.",
"settingsReset": "Alle Einstellungen wurden auf ihre Standardwerte zurückgesetzt.",
"defaultBaseNameMissing": "Bitte geben Sie einen Standard-Basisnamen ein, um ihn anzuwenden.",
"uploadFirst": "Laden Sie zuerst einige Bilder hoch.",
"baseNameApplied": "Basisname für alle {count} Bilder auf \"{name}\" gesetzt.",
"uploadError": "Bitte laden Sie zuerst Bilder hoch."
}
}
}