Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
1 change: 1 addition & 0 deletions src/components/video-editor/SettingsPanel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -910,6 +910,7 @@ const APP_LANGUAGE_LABELS: Record<AppLocale, string> = {
en: "English",
es: "Español",
fr: "Français",
de: "Deutsch",
it: "Italiano",
nl: "Nederlands",
ko: "한국어",
Expand Down
18 changes: 18 additions & 0 deletions src/contexts/I18nContext.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,14 @@ import frLaunch from "@/i18n/locales/fr/launch.json";
import frSettings from "@/i18n/locales/fr/settings.json";
import frShortcuts from "@/i18n/locales/fr/shortcuts.json";
import frTimeline from "@/i18n/locales/fr/timeline.json";
import deCommon from "@/i18n/locales/de/common.json";
import deDialogs from "@/i18n/locales/de/dialogs.json";
import deEditor from "@/i18n/locales/de/editor.json";
import deExtensions from "@/i18n/locales/de/extensions.json";
import deLaunch from "@/i18n/locales/de/launch.json";
import deSettings from "@/i18n/locales/de/settings.json";
import deShortcuts from "@/i18n/locales/de/shortcuts.json";
import deTimeline from "@/i18n/locales/de/timeline.json";
import itCommon from "@/i18n/locales/it/common.json";
import itDialogs from "@/i18n/locales/it/dialogs.json";
import itEditor from "@/i18n/locales/it/editor.json";
Expand Down Expand Up @@ -122,6 +130,16 @@ const messages: Record<AppLocale, LocaleBundle> = {
shortcuts: frShortcuts,
extensions: frExtensions,
},
de: {
common: deCommon,
launch: deLaunch,
editor: deEditor,
timeline: deTimeline,
settings: deSettings,
dialogs: deDialogs,
shortcuts: deShortcuts,
extensions: deExtensions,
},
it: {
common: itCommon,
launch: itLaunch,
Expand Down
60 changes: 57 additions & 3 deletions src/i18n/locales/es/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,11 @@
},
"backgroundBlur": "Desenfoque de fondo",
"zoomMotionBlur": "Desenfoque de movimiento del zoom",
"temporalZoomMotionBlur": "Temporal Zoom Blur",
"temporalZoomMotionBlurDescription": "Control the shutter window and frame samples used by the newer zoom blur pass.",
"zoomMotionBlurSamples": "Blur Samples",
"zoomMotionBlurShutter": "Shutter",
"auto": "Auto",
"connectZooms": "Conectar zooms",
"connectZoomsDescription": "Suaviza regiones de zoom consecutivas convirtiéndolas en un movimiento continuo de cámara.",
"autoApplyFreshRecordingZooms": "Aplicar automáticamente zooms a nuevas grabaciones",
Expand All @@ -57,6 +62,20 @@
"zoomOutDescription": "Controla cómo sale la cámara de una región de zoom.",
"connectedZoomTitle": "Entre zooms",
"connectedZoomDescription": "Ajusta el deslizamiento entre regiones de zoom consecutivas cuando la conexión está activada.",
"motionPresetsTitle": "Motion Presets",
"motionPresetsZoomHint": "Zoom motion presets are available in Settings.",
"animationPresets": "Animation Presets",
"cursorMotionPresets": "Cursor Motion Presets",
"motionPresets": {
"focused": {
"label": "Focused",
"description": "Snappier motion for demos, walkthroughs, and everyday recordings."
},
"smooth": {
"label": "Smooth",
"description": "Gentler motion for presentations, keynote-style videos, and polished reveals."
}
},
"zoomInDuration": "Duración de entrada",
"zoomInOverlap": "Solapamiento de entrada",
"zoomOutDuration": "Duración de salida",
Expand All @@ -74,7 +93,36 @@
},
"cursorSize": "Tamaño del cursor",
"cursorSmoothing": "Suavizado del cursor",
"cursorSpringStiffness": "Cursor Spring Stiffness",
"cursorSpringDamping": "Cursor Spring Damping",
"cursorSpringMass": "Cursor Spring Mass",
"off": "Desactivado",
"cursorClickEffects": {
"title": "Click Effects",
"advanced": "Advanced",
"advancedShow": "Show advanced click effect controls",
"advancedHide": "Hide advanced click effect controls",
"color": "Effect Color",
"size": "Effect Size",
"opacity": "Effect Opacity",
"duration": "Effect Duration",
"none": {
"label": "Off",
"description": "No click graphic. Only the cursor motion changes when you click."
},
"ripple": {
"label": "Ripple",
"description": "Expanding rings radiate from each click so taps read clearly in motion."
},
"spotlight": {
"label": "Spotlight",
"description": "A soft halo flashes around the pointer to emphasize the clicked area."
},
"echo": {
"label": "Echo",
"description": "A pair of soft rings that spread outward with a cleaner pulse."
}
},
"cursorMotionBlur": "Desenfoque de movimiento del cursor",
"cursorClickBounce": "Rebote de clic del cursor",
"cursorClickBounceDuration": "Velocidad del rebote",
Expand Down Expand Up @@ -130,8 +178,6 @@
"generateFull": "Generar subtítulos",
"regenerateFull": "Regenerar subtítulos",
"clearFull": "Borrar subtítulos",
"editCurrent": "Editar subtítulo actual",
"editSaved": "Subtítulo actualizado",
"fontSettings": "Tipografía",
"defaultFont": "Predeterminado",
"fontFamily": "Fuente",
Expand All @@ -146,7 +192,15 @@
"maxWidth": "Ancho máximo",
"boxRadius": "Radio del contenedor",
"backgroundOpacity": "Opacidad del fondo",
"textColor": "Color del texto"
"textColor": "Color del texto",
"editor": {
"text": "Text",
"start": "Start",
"end": "End",
"split": "Split",
"merge": "Merge",
"delete": "Delete"
}
},
"crop": {
"title": "Recortar video",
Expand Down
60 changes: 57 additions & 3 deletions src/i18n/locales/fr/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,11 @@
},
"backgroundBlur": "Flou d’arrière-plan",
"zoomMotionBlur": "Flou de mouvement du zoom",
"temporalZoomMotionBlur": "Temporal Zoom Blur",
"temporalZoomMotionBlurDescription": "Control the shutter window and frame samples used by the newer zoom blur pass.",
"zoomMotionBlurSamples": "Blur Samples",
"zoomMotionBlurShutter": "Shutter",
"auto": "Auto",
"connectZooms": "Relier les zooms",
"connectZoomsDescription": "Lisse les zones de zoom consécutives pour créer un mouvement de caméra continu.",
"autoApplyFreshRecordingZooms": "Appliquer automatiquement les zooms des nouveaux enregistrements",
Expand All @@ -57,6 +62,20 @@
"zoomOutDescription": "Contrôle la manière dont la caméra sort d’une zone de zoom.",
"connectedZoomTitle": "Entre les zooms",
"connectedZoomDescription": "Ajuste la transition entre des zones de zoom consécutives lorsque la connexion est activée.",
"motionPresetsTitle": "Motion Presets",
"motionPresetsZoomHint": "Zoom motion presets are available in Settings.",
"animationPresets": "Animation Presets",
"cursorMotionPresets": "Cursor Motion Presets",
"motionPresets": {
"focused": {
"label": "Focused",
"description": "Snappier motion for demos, walkthroughs, and everyday recordings."
},
"smooth": {
"label": "Smooth",
"description": "Gentler motion for presentations, keynote-style videos, and polished reveals."
}
},
"zoomInDuration": "Durée du zoom avant",
"zoomInOverlap": "Chevauchement du zoom avant",
"zoomOutDuration": "Durée du zoom arrière",
Expand All @@ -74,7 +93,36 @@
},
"cursorSize": "Taille du curseur",
"cursorSmoothing": "Lissage du curseur",
"cursorSpringStiffness": "Cursor Spring Stiffness",
"cursorSpringDamping": "Cursor Spring Damping",
"cursorSpringMass": "Cursor Spring Mass",
"off": "Désactivé",
"cursorClickEffects": {
"title": "Click Effects",
"advanced": "Advanced",
"advancedShow": "Show advanced click effect controls",
"advancedHide": "Hide advanced click effect controls",
"color": "Effect Color",
"size": "Effect Size",
"opacity": "Effect Opacity",
"duration": "Effect Duration",
"none": {
"label": "Off",
"description": "No click graphic. Only the cursor motion changes when you click."
},
"ripple": {
"label": "Ripple",
"description": "Expanding rings radiate from each click so taps read clearly in motion."
},
"spotlight": {
"label": "Spotlight",
"description": "A soft halo flashes around the pointer to emphasize the clicked area."
},
"echo": {
"label": "Echo",
"description": "A pair of soft rings that spread outward with a cleaner pulse."
}
},
"cursorMotionBlur": "Flou de mouvement du curseur",
"cursorClickBounce": "Rebond au clic du curseur",
"cursorClickBounceDuration": "Vitesse du rebond",
Expand Down Expand Up @@ -130,8 +178,6 @@
"generateFull": "Générer les sous-titres",
"regenerateFull": "Régénérer les sous-titres",
"clearFull": "Effacer les sous-titres",
"editCurrent": "Modifier le sous-titre actuel",
"editSaved": "Sous-titre mis à jour",
"fontSettings": "Paramètres de police",
"defaultFont": "Par défaut",
"fontFamily": "Police",
Expand All @@ -146,7 +192,15 @@
"maxWidth": "Largeur max",
"boxRadius": "Rayon de la boîte",
"backgroundOpacity": "Opacité de l’arrière-plan",
"textColor": "Couleur du texte"
"textColor": "Couleur du texte",
"editor": {
"text": "Text",
"start": "Start",
"end": "End",
"split": "Split",
"merge": "Merge",
"delete": "Delete"
}
},
"crop": {
"title": "Recadrer la vidéo",
Expand Down
36 changes: 35 additions & 1 deletion src/i18n/locales/it/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,32 @@
"cursorSpringDamping": "Smorzamento molla cursore",
"cursorSpringMass": "Massa molla cursore",
"off": "Off",
"cursorClickEffects": {
"title": "Click Effects",
"advanced": "Advanced",
"advancedShow": "Show advanced click effect controls",
"advancedHide": "Hide advanced click effect controls",
"color": "Effect Color",
"size": "Effect Size",
"opacity": "Effect Opacity",
"duration": "Effect Duration",
"none": {
"label": "Off",
"description": "No click graphic. Only the cursor motion changes when you click."
},
"ripple": {
"label": "Ripple",
"description": "Expanding rings radiate from each click so taps read clearly in motion."
},
"spotlight": {
"label": "Spotlight",
"description": "A soft halo flashes around the pointer to emphasize the clicked area."
},
"echo": {
"label": "Echo",
"description": "A pair of soft rings that spread outward with a cleaner pulse."
}
},
"cursorMotionBlur": "Motion blur del cursore",
"cursorClickBounce": "Rimbalzo al clic del cursore",
"cursorClickBounceDuration": "Velocità rimbalzo",
Expand Down Expand Up @@ -166,7 +192,15 @@
"maxWidth": "Larghezza massima",
"boxRadius": "Raggio riquadro",
"backgroundOpacity": "Opacità sfondo",
"textColor": "Colore testo"
"textColor": "Colore testo",
"editor": {
"text": "Text",
"start": "Start",
"end": "End",
"split": "Split",
"merge": "Merge",
"delete": "Delete"
}
},
"crop": {
"title": "Ritaglia video",
Expand Down
60 changes: 57 additions & 3 deletions src/i18n/locales/ko/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,11 @@
},
"backgroundBlur": "배경 블러",
"zoomMotionBlur": "확대 모션 블러",
"temporalZoomMotionBlur": "Temporal Zoom Blur",
"temporalZoomMotionBlurDescription": "Control the shutter window and frame samples used by the newer zoom blur pass.",
"zoomMotionBlurSamples": "Blur Samples",
"zoomMotionBlurShutter": "Shutter",
"auto": "Auto",
"connectZooms": "확대 구간 연결",
"connectZoomsDescription": "연속된 확대 구간을 하나의 부드러운 카메라 이동으로 연결합니다.",
"autoApplyFreshRecordingZooms": "새 녹화에 확대 자동 적용",
Expand All @@ -57,6 +62,20 @@
"zoomOutDescription": "카메라가 확대 구간에서 빠져나오는 방식을 제어합니다.",
"connectedZoomTitle": "확대 구간 사이",
"connectedZoomDescription": "연결이 활성화된 경우, 연속된 확대 구간 사이의 이동을 조정합니다.",
"motionPresetsTitle": "Motion Presets",
"motionPresetsZoomHint": "Zoom motion presets are available in Settings.",
"animationPresets": "Animation Presets",
"cursorMotionPresets": "Cursor Motion Presets",
"motionPresets": {
"focused": {
"label": "Focused",
"description": "Snappier motion for demos, walkthroughs, and everyday recordings."
},
"smooth": {
"label": "Smooth",
"description": "Gentler motion for presentations, keynote-style videos, and polished reveals."
}
},
"zoomInDuration": "확대 시작 시간",
"zoomInOverlap": "확대 시작 겹침",
"zoomOutDuration": "확대 종료 시간",
Expand All @@ -74,7 +93,36 @@
},
"cursorSize": "커서 크기",
"cursorSmoothing": "커서 보정",
"cursorSpringStiffness": "Cursor Spring Stiffness",
"cursorSpringDamping": "Cursor Spring Damping",
"cursorSpringMass": "Cursor Spring Mass",
"off": "끔",
"cursorClickEffects": {
"title": "Click Effects",
"advanced": "Advanced",
"advancedShow": "Show advanced click effect controls",
"advancedHide": "Hide advanced click effect controls",
"color": "Effect Color",
"size": "Effect Size",
"opacity": "Effect Opacity",
"duration": "Effect Duration",
"none": {
"label": "Off",
"description": "No click graphic. Only the cursor motion changes when you click."
},
"ripple": {
"label": "Ripple",
"description": "Expanding rings radiate from each click so taps read clearly in motion."
},
"spotlight": {
"label": "Spotlight",
"description": "A soft halo flashes around the pointer to emphasize the clicked area."
},
"echo": {
"label": "Echo",
"description": "A pair of soft rings that spread outward with a cleaner pulse."
}
},
"cursorMotionBlur": "커서 모션 블러",
"cursorClickBounce": "커서 클릭 바운스",
"cursorClickBounceDuration": "바운스 속도",
Expand Down Expand Up @@ -130,8 +178,6 @@
"generateFull": "자막 생성",
"regenerateFull": "자막 다시 생성",
"clearFull": "자막 지우기",
"editCurrent": "현재 자막 편집",
"editSaved": "자막이 업데이트되었습니다",
"fontSettings": "글꼴 설정",
"defaultFont": "기본값",
"fontFamily": "글꼴",
Expand All @@ -146,7 +192,15 @@
"maxWidth": "최대 너비",
"boxRadius": "박스 반경",
"backgroundOpacity": "배경 투명도",
"textColor": "텍스트 색상"
"textColor": "텍스트 색상",
"editor": {
"text": "Text",
"start": "Start",
"end": "End",
"split": "Split",
"merge": "Merge",
"delete": "Delete"
}
},
"crop": {
"title": "비디오 자르기",
Expand Down
Loading
Loading