Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/i18n/config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
export const DEFAULT_LOCALE = "en" as const;

export const SUPPORTED_LOCALES = ["en", "es", "fr", "it", "nl", "ko", "pt-BR", "zh-CN", "zh-TW"] as const;
export const SUPPORTED_LOCALES = ["en", "es", "fr", "de", "it", "nl", "ko", "pt-BR", "zh-CN", "zh-TW"] as const;

export const I18N_NAMESPACES = [
"common",
Expand Down
26 changes: 26 additions & 0 deletions src/i18n/locales/de/common.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"app": {
"name": "Recordly",
"editorTitle": "Recordly Editor",
"subtitle": "Bildschirmaufzeichnung und -bearbeitung",
"language": "Sprache",
"manageRecordings": "Aufzeichnungsordner öffnen"
},
"actions": {
"cancel": "Abbrechen",
"close": "Schließen",
"export": "Exportieren",
"load": "Laden",
"redo": "Wiederherstellen",
"reset": "Zurücksetzen",
"save": "Speichern",
"undo": "Rückgängig",
"delete": "Löschen",
"done": "Fertig"
},
"errors": {
"invalidFileType": "Ungültiger Dateityp",
"failedToUploadImage": "Bild konnte nicht hochgeladen werden",
"fileReadError": "Beim Lesen der Datei ist ein Fehler aufgetreten."
}
}
62 changes: 62 additions & 0 deletions src/i18n/locales/de/dialogs.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
{
"export": {
"pleaseTryAgain": "Bitte versuche es erneut",
"compilingGifProgress": "GIF wird kompiliert... {{progress}}%",
"compilingGifWait": "GIF wird kompiliert... Dies kann eine Weile dauern",
"takeMoment": "Dies kann einen Moment dauern...",
"exportFailed": "Export fehlgeschlagen",
"compilingGifTitle": "GIF wird kompiliert",
"exportingFormat": "Exportiere {{format}}",
"exportComplete": "Export abgeschlossen",
"formatReady": "Dein {{format}} ist bereit",
"showInFolder": "Im Ordner anzeigen",
"compiling": "Kompilieren",
"renderingFrames": "Frames rendern",
"processing": "Verarbeiten...",
"status": "Status",
"format": "Format",
"compilingStatus": "Kompilieren...",
"frames": "Frames",
"cancelExport": "Export abbrechen",
"reopenSaveDialog": "Speicherdialog erneut öffnen",
"savedSuccess": "{{format}} erfolgreich gespeichert!"
},
"addFont": {
"title": "Google-Schriftart hinzufügen",
"heading": "Google-Schriftart hinzufügen",
"description": "Fügen Sie eine benutzerdefinierte Schriftart aus Google Fonts hinzu, um sie in Ihren Anmerkungen zu verwenden.",
"urlLabel": "Google Fonts-Import-URL",
"urlPlaceholder": "https://fonts.googleapis.com/css2?family=Roboto&display=swap",
"urlHelp": "So erhalten Sie diese von Google Fonts: Wählen Sie eine Schriftart aus → Klicken Sie auf \"Schriftart abrufen\" → Kopieren Sie die @import-URL",
"nameLabel": "Anzeigename",
"namePlaceholder": "Meine benutzerdefinierte Schriftart",
"nameHelp": "So wird die Schriftart in der Schriftartauswahl angezeigt",
"adding": "Wird hinzugefügt...",
"addFont": "Schriftart hinzufügen",
"enterUrl": "Bitte gib eine Google Fonts-Import-URL ein",
"invalidUrl": "Bitte gib eine gültige Google Fonts-URL ein",
"enterName": "Bitte gib einen Schriftartnamen ein",
"extractFailed": "Schriftfamilie konnte nicht aus der URL extrahiert werden",
"addSuccess": "Schriftart \"{{name}}\" erfolgreich hinzugefügt",
"addFailed": "Schriftart konnte nicht hinzugefügt werden",
"loadTimeout": "Das Laden der Schriftart hat zu lange gedauert. Bitte überprüfen Sie die URL und versuchen Sie es erneut.",
"loadFailed": "Die Schriftart konnte nicht geladen werden. Bitte überprüfen Sie, ob die Google Fonts-URL korrekt ist."
},
"shortcutsConfig": {
"title": "Tastaturkürzel",
"configurable": "Konfigurierbar",
"fixed": "Fest",
"pressEscToCancel": "Zum Abbrechen Esc drücken",
"clickToChange": "Zum Ändern anklicken",
"pressAKey": "Drücke eine Taste…",
"alreadyUsedBy": "Wird bereits von <strong>{{action}}</strong> verwendet",
"swap": "Tauschen",
"reserved": "Dieser Tastenbefehl ist für \"{{label}}\" reserviert und kann nicht neu zugewiesen werden.",
"saved": "Tastaturkürzel gespeichert",
"resetNotice": "Auf Standard-Tastaturkürzel zurücksetzen – zum Übernehmen auf Speichern klicken",
"instructions": "Klicken Sie auf ein Tastaturkürzel und drücken Sie dann die neue Tastenkombination. Drücken Sie Esc, um abzubrechen.",
"resetToDefaults": "Auf Standardwerte zurücksetzen",
"cancel": "Abbrechen",
"save": "Speichern"
}
}
141 changes: 141 additions & 0 deletions src/i18n/locales/de/editor.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
{
"playback": {
"play": "Wiedergabe",
"pause": "Pause",
"skipBack": "Zurück springen",
"skipForward": "Vorwärts springen",
"muteUnmute": "Stummschalten/Stummschaltung aufheben"
},
"Anmerkungen": {
"Einstellungen": "Einstellungen für Anmerkungen",
"aktiv": "Aktiv",
"text": "Text",
"image": "Bild",
"arrow": "Pfeil",
"blur": "Weichzeichnen",
"textContent": "Textinhalt",
"textPlaceholder": "Geben Sie Ihren Text ein...",
"fontStyle": "Schriftart",
"selectStyle": "Auswahlstil",
"size": "Größe",
"toggleBold": "Fett umschalten",
"toggleItalic": "Kursiv umschalten",
"toggleUnderline": "Unterstreichung umschalten",
"alignLeft": "Linksbündig",
"alignCenter": "Zentriert",
"alignRight": "Rechtsbündig",
"textColor": "Textfarbe",
"background": "Hintergrund",
"none": "Keine",
"clearBackground": "Hintergrund löschen",
"uploadImage": "Bild hochladen",
"supportedFormats": "Unterstützte Formate: JPG, PNG, GIF, WebP",
"arrowDirection": "Pfeilrichtung",
"strokeWidth": "Strichbreite: {{width}}px",
"arrowColor": "Pfeilfarbe",
"deleteAnnotation": "Anmerkung löschen",
"shortcutsAndTips": "Tastenkombinationen & Tipps",
"tipSelectAnnotation": "Bewegen Sie den Abspielkopf auf den überlappenden Anmerkungsbereich und wählen Sie ein Element aus.",
"tipCycleForward": "Verwenden Sie die Tabulatortaste, um durch die überlappenden Elemente zu blättern.",
"tipCycleBackward": "Verwenden Sie Umschalt+Tab, um rückwärts zu blättern.",
"imageUploadSuccess": "Bild erfolgreich hochgeladen!",
"imageUploadError": "Bitte lade eine JPG-, PNG-, GIF- oder WebP-Bilddatei hoch.",
"blurStrength": "Unschärfestärke: {{strength}}",
"solidColor": "Einfarbig (Zensur)",
"borderRadius": "Randradius"
},
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Outdated
"fontStyles": {
"classic": "Klassisch",
"editor": "Editor",
"strong": "Fett",
"typewriter": "Schreibmaschine",
"deco": "Dekorativ",
"simple": "Einfach",
"modern": "Modern",
"clean": "Clean"
},
"format": {
"mp4Video": "MP4-Video",
"mp4Description": "Hochwertige Videodatei",
"gifAnimation": "GIF-Animation",
"gifDescription": "Animiertes Bild zum Teilen"
} ,
"gifOptions": {
"frameRate": "Bildfrequenz",
"outputSize": "Ausgabegröße",
"outputDimensions": "Ausgabe: {{width}} × {{height}}px",
"loopAnimation": "Animation wiederholen",
"loopDescription": "GIF wird kontinuierlich abgespielt"
},
"tutorial": {
"howTrimmingWorks": "So funktioniert das Zuschneiden",
"title": "So funktioniert das Zuschneiden",
"understanding": "So schneiden Sie unerwünschte Teile aus Ihrem Video heraus.",
"descriptionP1": "Das Trimm-Werkzeug funktioniert, indem Sie die Segmente definieren, die Sie",
"descriptionRemove": "entfernen",
"descriptionP2": "aus Ihrem Video",
"descriptionP3": "Jeder Teil der Zeitleiste, der von einem roten Trimm-Segment abgedeckt ist, wird beim Exportieren herausgeschnitten.",
"visualExample": "Visuelles Beispiel",
"removed": "ENTFERNT",
"kept": "Beibehalten",
"finalVideo": "Endgültiges Video",
"part": "Teil {{number}}",
"addTrimStep": "1. Trimmen hinzufügen",
"addTrimDesc": "Drücken Sie T oder klicken Sie auf das Scheren-Symbol, um einen Abschnitt zum Entfernen zu markieren.",
"adjustStep": "2. Anpassen",
"adjustDesc": "Ziehen Sie die Ränder des roten Bereichs, um genau den Bereich abzudecken, den Sie herausschneiden möchten."
},
"feedback": {
"trigger": "Feedback",
"title": "Feedback & Kontakt",
"description": "Wenden Sie sich direkt an uns oder erstellen Sie ein Ticket, wenn etwas nicht funktioniert oder fehlt.",
"emailLabel": "E-Mail",
"xLabel": "X",
"reportIssue": "Problem melden / Feedback senden",
"openFailed": "Link konnte nicht geöffnet werden."
},
"keyboardShortcuts": {
"trigger": "Tastenkombinationen",
"title": "Tastenkombinationen",
"description": "Kurzanleitung für die Steuerelemente der Zeitleiste und des Editors.",
"customizeTooltip": "Tastenkombinationen anpassen",
"customize": "Anpassen",
"panTimeline": "Zeitleiste verschieben",
"zoomTimeline": "Zeitleiste zoomen",
"cycleAnnotations": "Anmerkungen durchlaufen",
"tab": "Registerkarte"
},
"actions": {
"saveAgain": "Erneut speichern",
"showInFolder": "In Ordner anzeigen"
},
"project": {
"untitled": "Unbenannt"
},
"nativeCaptureUnavailable": {
"title": "Es ist nichts kaputt, aber wir können kein animiertes Cursor-Overlay rendern.",
"description": "Ihr Gerät unterstützt keine native Erfassung. Dies kann verschiedene Gründe haben, die wir noch nicht ermittelt haben. Recordly funktioniert weiterhin, aber eine Cursor-Glättung ist nicht möglich.",
"confirm": "Okay"
},
"exportStatus": {
"exporting": "Exportieren",
"renderingFile": "Datei wird gerendert.",
"preparing": "Export wird vorbereitet...",
"completePercent": "{{percent}} % abgeschlossen",
"issue": "Problem beim Export",
"complete": "Export abgeschlossen",
"savedSuccessfully": "Deine Datei wurde erfolgreich gespeichert."
},
"export": {
"processingAudioEdits": "Audio mit Geschwindigkeits-/Overlay-Bearbeitungen wird verarbeitet"
},
"toolbar": {
"addLayer": "Ebene hinzufügen",
"splitClip": "Clip teilen (C)"
},
"timeline": {
"expand": "Zeitleiste erweitern",
"collapse": "Zeitleiste reduzieren"
},
"openRecordingsFolder": "Aufnahmeordner öffnen"
}
60 changes: 60 additions & 0 deletions src/i18n/locales/de/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
{
"title": "Erweiterungen",
"tabs": {
"browse": "Durchsuchen",
"installed": "Installiert"
},
"actions": {
"submit": "Erweiterung einreichen",
"docs": "Dokumentation zu Erweiterungen",
"refresh": "Aktualisieren",
"openFolder": "Erweiterungsordner öffnen",
"uninstall": "Deinstallieren",
"install": "Installieren",
"installing": "Wird installiert",
"add": "Hinzufügen",
"retry": "Wiederholen",
"close": "Schließen",
"folder": "Ordner"
},
"status": {
"enabled": "Aktiviert",
"disabled": "Deaktiviert",
"installed": "Installiert"
},
"detail": {
"von": "Von {{author}}",
Comment thread
Eleria83 marked this conversation as resolved.
Outdated
"unknownAuthor": "Unbekannter Autor",
"noDescription": "Keine Beschreibung",
"downloads": "{{count}} Downloads",
"preview": "Vorschau",
"screenshotAlt": "Screenshot {{number}}",
"description": "Beschreibung",
"tags": "Tags",
"permissions": "Berechtigungen",
"location": "Speicherort",
"error": "Fehler: {{message}}"
},
"empty": {
"title": "Keine Erweiterungen",
"description": "Installiere Erweiterungen, um Rahmen, Cursor-Effekte und Editor-Werkzeuge hinzuzufügen."
},
"search": {
"placeholder": "Erweiterungen suchen...",
"noResults": "Keine Erweiterungen gefunden",
"noMarketplace": "Noch keine Erweiterungen im Marktplatz verfügbar",
"count": "{{count}} Erweiterung",
"countPlural": "{{count}} Erweiterungen"
},
"toast": {
"installedAndEnabled": "Erweiterung installiert und aktiviert",
"uninstalled": "{{name}} deinstalliert",
"uninstallFailed": "Deinstallation von {{name}} fehlgeschlagen",
"searchFailed": "Suche im Marktplatz fehlgeschlagen",
"refreshed": "Erweiterungen aktualisiert",
"refreshFailed": "Erweiterungen konnten nicht aktualisiert werden",
"marketplaceInstalled": "{{name}} wurde installiert und aktiviert",
"marketplaceInstallFailed": "Die Installation von {{name}} ist fehlgeschlagen",
"enableFailed": "Die Aktivierung der Erweiterung ist fehlgeschlagen"
}
}
80 changes: 80 additions & 0 deletions src/i18n/locales/de/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
{
"recording": {
"disableSystemAudio": "System-Audio deaktivieren",
"enableSystemAudio": "System-Audio aktivieren",
"disableMicrophone": "Mikrofon deaktivieren",
"enableMicrophone": "Mikrofon aktivieren",
"micToggleDisabledTip": "Mikrofon kann während der Aufnahme nicht umgeschaltet werden",
"disableWebcam": "Webcam-Overlay deaktivieren",
"enableWebcam": "Webcam-Overlay aktivieren",
"countdownDelay": "Countdown-Verzögerung",
"noDelay": "Keine Verzögerung",
"record": "Aufnehmen",
"recordingFolder": "Pfad zu den Aufzeichnungen: {{path}}",
"chooseRecordingsFolder": "Pfad zu den Aufzeichnungen auswählen",
"folderPath": "Pfad: /{{name}}/",
"openVideoFile": "Videodatei öffnen",
"openProject": "Projekt öffnen",
"hideHudFromVideo": "HUD in der Aufnahme ausblenden",
"showHudInVideo": "HUD in der Aufnahme anzeigen",
"hideHud": "HUD ausblenden",
"closeApp": "App schließen",
"screens": "Bildschirme",
"windows": "Fenster",
"screen": "Bildschirm",
"window": "Fenster",
"noSourcesFound": "Keine Quellen gefunden",
"microphone": "Mikrofon",
"turnOffMicrophone": "Mikrofon ausschalten",
"selectMicToEnable": "Mikrofon zum Aktivieren auswählen",
"noMicrophonesFound": "Keine Mikrofone gefunden",
"webcam": "Webcam",
"turnOffWebcam": "Webcam ausschalten",
"hideFloatingWebcamPreview": "Schwebende Vorschau ausblenden",
"showFloatingWebcamPreview": "Schwebende Vorschau anzeigen",
"selectWebcamToEnable": "Webcam zum Aktivieren auswählen",
"noWebcamsFound": "Keine Webcams gefunden",
"recordingsFolder": "Pfad zu den Aufzeichnungen",
"language": "Sprache",
"paused": "PAUSIERT",
"rec": "AUFNAHME",
"resume": "Fortsetzen",
"pause": "Pause",
"stop": "Stopp",
"cancel": "Abbrechen",
"more": "Mehr",
"update": {
"update": "Aktualisieren",
"updated": "Aktualisiert",
"idleTitle": "Nach Updates suchen.",
"checkingTitle": "Nach Updates suchen...",
"downloadingTitle": "Update wird heruntergeladen...",
"errorTitle": "Update-Prüfung fehlgeschlagen. Klicken Sie hier, um es erneut zu versuchen.",
"upToDateTitle": "Recordly {{version}} ist auf dem neuesten Stand.",
"availableTitle": "Recordly {{version}} ist verfügbar.",
"availableGenericTitle": "Ein Update ist verfügbar."
}
},
"sourceSelector": {
"loadingSources": "Quellen werden geladen...",
"screens": "Bildschirme",
"windows": "Fenster",
"noScreensAvailable": "Keine Bildschirme verfügbar",
"noWindowsAvailable": "Keine Fenster verfügbar",
"windowsNote": "Es können nur sichtbare (nicht minimierte) Fenster aufgezeichnet werden.",
"windowPlaceholder": "Fenster",
"cancel": "Abbrechen",
"share": "Teilen"
},
"permissions": {
"screenRecordingNeeded": "Recordly benötigt die Berechtigung zur Bildschirmaufzeichnung, bevor Sie beginnen können. Die Systemeinstellungen wurden geöffnet. Schließen Sie Recordly nach der Aktivierung und starten Sie es erneut.",
"screenRecordingMissing": "Die Berechtigung für die Bildschirmaufzeichnung fehlt noch. Die Systemeinstellungen wurden erneut geöffnet. Aktivieren Sie die Berechtigung, schließen Sie Recordly anschließend und starten Sie die Anwendung vor der Aufzeichnung erneut.",
"accessibilityNeeded": "Recordly benötigt außerdem die Berechtigung für Barrierefreiheit, um die Cursorbewegungen zu verfolgen. Die Systemeinstellungen wurden geöffnet. Schließen Sie Recordly nach der Aktivierung und starten Sie es erneut.",
"accessibilityMissing": "Die Berechtigung für die Barrierefreiheit fehlt noch. Die Systemeinstellungen wurden erneut geöffnet. Aktivieren Sie diese, schließen Sie Recordly anschließend und öffnen Sie die App vor der Aufnahme erneut.",
"selectSource": "Bitte wählen Sie eine Quelle für die Aufnahme aus",
"systemAudioUnavailable": "Für diese Quelle ist kein Systemton verfügbar. Die Aufnahme wird ohne Systemton fortgesetzt.",
"microphoneDenied": "Der Zugriff auf das Mikrofon wurde verweigert. Die Aufzeichnung wird ohne Mikrofonton fortgesetzt.",
"failedToStart": "Die Aufzeichnung konnte nicht gestartet werden: {{error}}",
"failedToStartGeneric": "Die Aufnahme konnte nicht gestartet werden"
}
}
Loading