From 1258d9a6f54817a60f45647dd2cbe8168c80688d Mon Sep 17 00:00:00 2001 From: Dennis Benz Date: Thu, 25 Apr 2024 15:55:28 +0200 Subject: [PATCH 1/2] Add context menu for cutting actions --- src/i18n/locales/cs-CZ.json | 2 +- src/i18n/locales/de-DE.json | 2 +- src/i18n/locales/el-GR.json | 2 +- src/i18n/locales/en-US.json | 2 +- src/i18n/locales/es-ES.json | 2 +- src/i18n/locales/fr-FR.json | 2 +- src/i18n/locales/nl-NL.json | 2 +- src/i18n/locales/zh-CN.json | 2 +- src/i18n/locales/zh-TW.json | 2 +- src/main/ContextMenu.tsx | 118 +++++++++++++++++++++++++ src/main/CuttingActionsContextMenu.tsx | 72 +++++++++++++++ src/main/Timeline.tsx | 33 +++---- src/themes.ts | 5 ++ 13 files changed, 222 insertions(+), 24 deletions(-) create mode 100644 src/main/ContextMenu.tsx create mode 100644 src/main/CuttingActionsContextMenu.tsx diff --git a/src/i18n/locales/cs-CZ.json b/src/i18n/locales/cs-CZ.json index 8aa809b63..41a755134 100644 --- a/src/i18n/locales/cs-CZ.json +++ b/src/i18n/locales/cs-CZ.json @@ -15,7 +15,7 @@ "cut-tooltip-aria": "Cut. Split the segment at the current timeline marker position. Hotkey: {{hotkeyName}}.", "delete-button": "Delete", "delete-restore-tooltip": "Mark or unmark the segment at the current position as to be deleted. Hotkey: {{hotkeyName}}", - "delete-restore-tooltip-aria": "Delete and Restore. Mark or unmark the segment at the current position as to be deleted. Hotkey: {{hotKeyName}}.", + "delete-restore-tooltip-aria": "Delete and Restore. Mark or unmark the segment at the current position as to be deleted. Hotkey: {{hotkeyName}}.", "merge-all-button": "Merge All", "merge-all-tooltip": "Combine all segments into a single segment.", "merge-all-tooltip-aria": "Merge All. Combine all segments into a single segment.", diff --git a/src/i18n/locales/de-DE.json b/src/i18n/locales/de-DE.json index 0488191cc..c02d73b65 100644 --- a/src/i18n/locales/de-DE.json +++ b/src/i18n/locales/de-DE.json @@ -15,7 +15,7 @@ "cut-tooltip-aria": "Schneiden. Teilt das Segment an der aktuellen Position des Zeitmarkers. Hotkey: {{hotkeyName}}.", "delete-button": "Löschen", "delete-restore-tooltip": "Markieren oder entfernen Sie das Segment an der aktuellen Position zur Löschung. Hotkey: {{hotkeyName}}", - "delete-restore-tooltip-aria": "Löschen und Wiederherstellen. Markieren oder entfernen Sie das Segment an der aktuellen Position zur Löschung. Hotkey: {{hotKeyName}}.", + "delete-restore-tooltip-aria": "Löschen und Wiederherstellen. Markieren oder entfernen Sie das Segment an der aktuellen Position zur Löschung. Hotkey: {{hotkeyName}}.", "merge-all-button": "Alle zusammenführen", "merge-all-tooltip": "Alle Segmente in ein einziges Segment zusammenführen.", "merge-all-tooltip-aria": "Alle Segmente in ein einziges Segment zusammenführen.", diff --git a/src/i18n/locales/el-GR.json b/src/i18n/locales/el-GR.json index 25905afee..faf7d4cff 100644 --- a/src/i18n/locales/el-GR.json +++ b/src/i18n/locales/el-GR.json @@ -15,7 +15,7 @@ "cut-tooltip-aria": "Αποκοπή. Διαχωρίστε το τμήμα στην τρέχουσα θέση του χρονοδιαγράμματος. Πλήκτρο συντόμευσης: {{hotkeyName}}.", "delete-button": "Διαγραφή", "delete-restore-tooltip": "Σήμανση ή κατάργηση του τμήματος στην τρέχουσα θέση ως διαγραφή. Πλήκτρο συντόμευσης: {{hotkeyName}}", - "delete-restore-tooltip-aria": "Διαγραφή και Επαναφορά. Σήμανση ή κατάργηση επισήμανσης του τμήματος στην τρέχουσα θέση ως διαγραφή. Πλήκτρο συντόμευσης: {{hotKeyName}}.", + "delete-restore-tooltip-aria": "Διαγραφή και Επαναφορά. Σήμανση ή κατάργηση επισήμανσης του τμήματος στην τρέχουσα θέση ως διαγραφή. Πλήκτρο συντόμευσης: {{hotkeyName}}.", "merge-all-button": "Συγχώνευση Όλων", "merge-all-tooltip": "Συνδυάστε όλα τα τμήματα σε ένα μόνο τμήμα.", "merge-all-tooltip-aria": "Συγχώνευση Όλων. Συνδυάστε όλα τα τμήματα σε ένα μόνο τμήμα.", diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 640df790d..9dd142e68 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -16,7 +16,7 @@ "cut-tooltip-aria": "Cut. Split the segment at the current timeline marker position. Hotkey: {{hotkeyName}}.", "delete-button": "Delete", "delete-restore-tooltip": "Mark or unmark the segment at the current position as to be deleted. Hotkey: {{hotkeyName}}", - "delete-restore-tooltip-aria": "Delete and Restore. Mark or unmark the segment at the current position as to be deleted. Hotkey: {{hotKeyName}}.", + "delete-restore-tooltip-aria": "Delete and Restore. Mark or unmark the segment at the current position as to be deleted. Hotkey: {{hotkeyName}}.", "merge-all-button": "Merge All", "merge-all-tooltip": "Combine all segments into a single segment.", "merge-all-tooltip-aria": "Merge All. Combine all segments into a single segment.", diff --git a/src/i18n/locales/es-ES.json b/src/i18n/locales/es-ES.json index 18482771d..56cc0124c 100644 --- a/src/i18n/locales/es-ES.json +++ b/src/i18n/locales/es-ES.json @@ -15,7 +15,7 @@ "cut-tooltip-aria": "Cortar. Dividir el segmento en la posición actual del marcador en la línea de tiempo. Acceso Rápido: {{hotkeyName}}.", "delete-button": "Borrar", "delete-restore-tooltip": "Marcar o desmarcar el segmento en la posición actual para ser eliminado. Acceso Rápido: {{hotkeyName}}", - "delete-restore-tooltip-aria": "Marcar o desmarcar el segmento en la posición actual para ser eliminado. Acceso Rápido:: {{hotKeyName}}.", + "delete-restore-tooltip-aria": "Marcar o desmarcar el segmento en la posición actual para ser eliminado. Acceso Rápido:: {{hotkeyName}}.", "merge-all-button": "Combinarlo todo", "merge-all-tooltip": "Combina todos los segmentos en un solo segmento.", "merge-all-tooltip-aria": "Combinarlo todo. Combina todos los segmentos en un solo segmento.", diff --git a/src/i18n/locales/fr-FR.json b/src/i18n/locales/fr-FR.json index 3e54540c7..192bff296 100644 --- a/src/i18n/locales/fr-FR.json +++ b/src/i18n/locales/fr-FR.json @@ -15,7 +15,7 @@ "cut-tooltip-aria": "Cut. Split the segment at the current timeline marker position. Hotkey: {{hotkeyName}}.", "delete-button": "Supprimer", "delete-restore-tooltip": "Sélectionner ou désélectionner un segment à la position actuelle pour suppression. Raccourci : {{hotkeyName}}", - "delete-restore-tooltip-aria": "Supprimer et Restaurer. Sélectionner ou désélectionner un segment à la position actuelle pour suppression. Raccourci : {{hotKeyName}}.", + "delete-restore-tooltip-aria": "Supprimer et Restaurer. Sélectionner ou désélectionner un segment à la position actuelle pour suppression. Raccourci : {{hotkeyName}}.", "merge-all-button": "Merge All", "merge-all-tooltip": "Combine all segments into a single segment.", "merge-all-tooltip-aria": "Merge All. Combine all segments into a single segment.", diff --git a/src/i18n/locales/nl-NL.json b/src/i18n/locales/nl-NL.json index 038f58e4a..48b93bc8a 100644 --- a/src/i18n/locales/nl-NL.json +++ b/src/i18n/locales/nl-NL.json @@ -15,7 +15,7 @@ "cut-tooltip-aria": "Cut. Split the segment at the current timeline marker position. Hotkey: {{hotkeyName}}.", "delete-button": "Verwijder", "delete-restore-tooltip": "Markeer of verwijder het segment op de huidige positie om te worden verwijderd. Sneltoets: {{hotkeyName}}", - "delete-restore-tooltip-aria": "Verwijderen en herstellen. Markeer of verwijder het segment op de huidige positie om te worden verwijderd. Sneltoets: {{hotKeyName}}.", + "delete-restore-tooltip-aria": "Verwijderen en herstellen. Markeer of verwijder het segment op de huidige positie om te worden verwijderd. Sneltoets: {{hotkeyName}}.", "merge-all-button": "Merge All", "merge-all-tooltip": "Combine all segments into a single segment.", "merge-all-tooltip-aria": "Merge All. Combine all segments into a single segment.", diff --git a/src/i18n/locales/zh-CN.json b/src/i18n/locales/zh-CN.json index bcb0ef977..017a3464d 100644 --- a/src/i18n/locales/zh-CN.json +++ b/src/i18n/locales/zh-CN.json @@ -15,7 +15,7 @@ "cut-tooltip-aria": "Cut. Split the segment at the current timeline marker position. Hotkey: {{hotkeyName}}.", "delete-button": "Delete", "delete-restore-tooltip": "Mark or unmark the segment at the current position as to be deleted. Hotkey: {{hotkeyName}}", - "delete-restore-tooltip-aria": "Delete and Restore. Mark or unmark the segment at the current position as to be deleted. Hotkey: {{hotKeyName}}.", + "delete-restore-tooltip-aria": "Delete and Restore. Mark or unmark the segment at the current position as to be deleted. Hotkey: {{hotkeyName}}.", "merge-all-button": "Merge All", "merge-all-tooltip": "Combine all segments into a single segment.", "merge-all-tooltip-aria": "Merge All. Combine all segments into a single segment.", diff --git a/src/i18n/locales/zh-TW.json b/src/i18n/locales/zh-TW.json index 0c5f7b6ba..ba69c2286 100644 --- a/src/i18n/locales/zh-TW.json +++ b/src/i18n/locales/zh-TW.json @@ -15,7 +15,7 @@ "cut-tooltip-aria": "Cut. Split the segment at the current timeline marker position. Hotkey: {{hotkeyName}}.", "delete-button": "刪除", "delete-restore-tooltip": "在當前位置標記或取消標記要刪除的區段。 熱鍵:{{hotkeyName}}", - "delete-restore-tooltip-aria": "刪除或還原。 在當前位置標記或取消標記要刪除的區段。 熱鍵:{{hotKeyName}}。", + "delete-restore-tooltip-aria": "刪除或還原。 在當前位置標記或取消標記要刪除的區段。 熱鍵:{{hotkeyName}}。", "merge-all-button": "Merge All", "merge-all-tooltip": "Combine all segments into a single segment.", "merge-all-tooltip-aria": "Merge All. Combine all segments into a single segment.", diff --git a/src/main/ContextMenu.tsx b/src/main/ContextMenu.tsx new file mode 100644 index 000000000..c98d46d01 --- /dev/null +++ b/src/main/ContextMenu.tsx @@ -0,0 +1,118 @@ +import { Menu, MenuItem } from "@mui/material"; +import React, { MouseEventHandler } from "react"; +import { IconType } from "react-icons"; + +import { useTheme } from "../themes"; +import { customIconStyle } from "../cssStyles"; + +export interface ContextMenuItem { + name: string, + action: MouseEventHandler, + ariaLabel: string, + icon?: IconType | React.FunctionComponent, + hotKey?: string, +} + +/** + * Context menu component + * + * @param menuItems Menu items + * @param children Content between the opening and the closing tag where the context menu should be triggered + */ +export const ThemedContextMenu: React.FC<{ + menuItems: ContextMenuItem[], + children: React.ReactNode, +}> = ({ + menuItems, + children, +}) => { + + const theme = useTheme(); + + // Init state variables + const [contextMenuPosition, setContextMenuPosition] = React.useState<{ + left: number, + top: number, + } | null>(null); + + const handleContextMenu = (e: React.MouseEvent) => { + e.preventDefault(); + + setContextMenuPosition(contextMenuPosition === null + ? { left: e.clientX + 5, top: e.clientY } + : null // Prevent relocation of context menu outside the element + ); + }; + + const handleClose = () => { + setContextMenuPosition(null); + }; + + /** + * Handles the click on a menu item + * + * @param e mouse event + * @param action menu item action + */ + const handleAction = (e: React.MouseEvent, action: MouseEventHandler) => { + action(e); + + // Immediately close menu after action + handleClose(); + }; + + const renderMenuItems = () => { + return menuItems.map((menuItem, i) => ( + handleAction(e, menuItem.action)} + sx={{ + fontFamily: "inherit", + gap: "15px", + }} + aria-label={menuItem.ariaLabel} + > + {menuItem.icon && + + } +
+ {menuItem.name} +
+ {menuItem.hotKey && +
+ {menuItem.hotKey} +
+ } +
+ )); + }; + + return ( +
+ {children} + + + { renderMenuItems() } + +
+ ); +}; diff --git a/src/main/CuttingActionsContextMenu.tsx b/src/main/CuttingActionsContextMenu.tsx new file mode 100644 index 000000000..f5a0138ec --- /dev/null +++ b/src/main/CuttingActionsContextMenu.tsx @@ -0,0 +1,72 @@ +import React from "react"; +import { useTranslation } from "react-i18next"; + +import { LuChevronLeft, LuChevronRight, LuScissors, LuTrash } from "react-icons/lu"; +import TrashRestore from "../img/trash-restore.svg?react"; + +import { ContextMenuItem, ThemedContextMenu } from "./ContextMenu"; +import { KEYMAP, rewriteKeys } from "../globalKeys"; +import { useAppDispatch, useAppSelector } from "../redux/store"; +import { cut, markAsDeletedOrAlive, mergeLeft, mergeRight, selectIsCurrentSegmentAlive } from "../redux/videoSlice"; + +const CuttingActionsContextMenu: React.FC<{ + children: React.ReactNode, +}> = ({ + children, +}) => { + + const { t } = useTranslation(); + + // Init redux variables + const dispatch = useAppDispatch(); + const isCurrentSegmentAlive = useAppSelector(selectIsCurrentSegmentAlive); + + const cuttingContextMenuItems: ContextMenuItem[] = [ + { + name: t("cuttingActions.cut-button"), + action: () => dispatch(cut()), + icon: LuScissors, + hotKey: KEYMAP.cutting.cut.key, + ariaLabel: t("cuttingActions.cut-tooltip-aria", { + hotkeyName: rewriteKeys(KEYMAP.cutting.cut.key), + }), + }, + { + name: isCurrentSegmentAlive ? t("cuttingActions.delete-button") : t("cuttingActions.restore-button"), + action: () => dispatch(markAsDeletedOrAlive()), + icon: isCurrentSegmentAlive ? LuTrash : TrashRestore, + hotKey: KEYMAP.cutting.delete.key, + ariaLabel: t("cuttingActions.delete-restore-tooltip-aria", { + hotkeyName: rewriteKeys(KEYMAP.cutting.delete.key), + }), + }, + { + name: t("cuttingActions.mergeLeft-button"), + action: () => dispatch(mergeLeft()), + icon: LuChevronLeft, + hotKey: KEYMAP.cutting.mergeLeft.key, + ariaLabel: t("cuttingActions.mergeLeft-tooltip-aria", { + hotkeyName: rewriteKeys(KEYMAP.cutting.mergeLeft.key), + }), + }, + { + name: t("cuttingActions.mergeRight-button"), + action: () => dispatch(mergeRight()), + icon: LuChevronRight, + hotKey: KEYMAP.cutting.mergeRight.key, + ariaLabel: t("cuttingActions.mergeRight-tooltip-aria", { + hotkeyName: rewriteKeys(KEYMAP.cutting.mergeRight.key), + }), + }, + ]; + + return ( + + {children} + + ); +}; + +export default CuttingActionsContextMenu; diff --git a/src/main/Timeline.tsx b/src/main/Timeline.tsx index aabb7ebda..431dfc433 100644 --- a/src/main/Timeline.tsx +++ b/src/main/Timeline.tsx @@ -23,6 +23,7 @@ import { ActionCreatorWithPayload } from "@reduxjs/toolkit"; import { RootState } from "../redux/store"; import { useTheme } from "../themes"; import { ThemedTooltip } from "./Tooltip"; +import CuttingActionsContextMenu from "./CuttingActionsContextMenu"; import { useHotkeys } from "react-hotkeys-hook"; import { spinningStyle } from "../cssStyles"; @@ -71,25 +72,27 @@ const Timeline: React.FC<{ }; return ( -
setCurrentlyAtToClick(e)}> - -
- - +
setCurrentlyAtToClick(e)}> + +
+ + +
-
+ ); }; diff --git a/src/themes.ts b/src/themes.ts index 7ac7a090f..470966b5f 100644 --- a/src/themes.ts +++ b/src/themes.ts @@ -34,6 +34,7 @@ export interface Theme { inverted_text: string; tooltip: string; tooltip_text: string; + contextMenu: string; element_outline: string; selected_text: string; dropdown_border: string; @@ -90,6 +91,7 @@ export const lightMode: Theme = { inverted_text: COLORS.neutral90, tooltip: COLORS.neutral80, tooltip_text: COLORS.neutral05, + contextMenu: COLORS.neutral10, element_outline: "2px solid transparent", selected_text: COLORS.neutral90, dropdown_border: `1px solid ${COLORS.neutral40}`, @@ -149,6 +151,7 @@ export const darkMode: Theme = { inverted_text: COLORS.neutral90, tooltip: COLORS.neutral80, tooltip_text: COLORS.neutral05, + contextMenu: COLORS.neutral20, element_outline: "2px solid transparent", selected_text: COLORS.neutral90, dropdown_border: `1px solid ${COLORS.neutral40}`, @@ -207,6 +210,7 @@ export const highContrastDarkMode: Theme = { inverted_text: "#000", tooltip: "#fff", tooltip_text: "#000", + contextMenu: "#000", element_outline: "2px solid #fff", selected_text: "#000", dropdown_border: "2px solid #fff", @@ -263,6 +267,7 @@ export const highContrastLightMode: Theme = { inverted_text: "#fff", tooltip: "#000", tooltip_text: "#fff", + contextMenu: "snow", element_outline: "2px solid #000", selected_text: "#fff", dropdown_border: "2px solid #000", From 7257551614a1e7d01df52cab9a54c1716d29c3c5 Mon Sep 17 00:00:00 2001 From: Dennis Benz Date: Thu, 2 May 2024 08:52:38 +0200 Subject: [PATCH 2/2] Revert changes in translation files --- src/i18n/locales/cs-CZ.json | 2 +- src/i18n/locales/de-DE.json | 2 +- src/i18n/locales/el-GR.json | 2 +- src/i18n/locales/es-ES.json | 2 +- src/i18n/locales/fr-FR.json | 2 +- src/i18n/locales/nl-NL.json | 2 +- src/i18n/locales/zh-CN.json | 2 +- src/i18n/locales/zh-TW.json | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/i18n/locales/cs-CZ.json b/src/i18n/locales/cs-CZ.json index 41a755134..8aa809b63 100644 --- a/src/i18n/locales/cs-CZ.json +++ b/src/i18n/locales/cs-CZ.json @@ -15,7 +15,7 @@ "cut-tooltip-aria": "Cut. Split the segment at the current timeline marker position. Hotkey: {{hotkeyName}}.", "delete-button": "Delete", "delete-restore-tooltip": "Mark or unmark the segment at the current position as to be deleted. Hotkey: {{hotkeyName}}", - "delete-restore-tooltip-aria": "Delete and Restore. Mark or unmark the segment at the current position as to be deleted. Hotkey: {{hotkeyName}}.", + "delete-restore-tooltip-aria": "Delete and Restore. Mark or unmark the segment at the current position as to be deleted. Hotkey: {{hotKeyName}}.", "merge-all-button": "Merge All", "merge-all-tooltip": "Combine all segments into a single segment.", "merge-all-tooltip-aria": "Merge All. Combine all segments into a single segment.", diff --git a/src/i18n/locales/de-DE.json b/src/i18n/locales/de-DE.json index c02d73b65..0488191cc 100644 --- a/src/i18n/locales/de-DE.json +++ b/src/i18n/locales/de-DE.json @@ -15,7 +15,7 @@ "cut-tooltip-aria": "Schneiden. Teilt das Segment an der aktuellen Position des Zeitmarkers. Hotkey: {{hotkeyName}}.", "delete-button": "Löschen", "delete-restore-tooltip": "Markieren oder entfernen Sie das Segment an der aktuellen Position zur Löschung. Hotkey: {{hotkeyName}}", - "delete-restore-tooltip-aria": "Löschen und Wiederherstellen. Markieren oder entfernen Sie das Segment an der aktuellen Position zur Löschung. Hotkey: {{hotkeyName}}.", + "delete-restore-tooltip-aria": "Löschen und Wiederherstellen. Markieren oder entfernen Sie das Segment an der aktuellen Position zur Löschung. Hotkey: {{hotKeyName}}.", "merge-all-button": "Alle zusammenführen", "merge-all-tooltip": "Alle Segmente in ein einziges Segment zusammenführen.", "merge-all-tooltip-aria": "Alle Segmente in ein einziges Segment zusammenführen.", diff --git a/src/i18n/locales/el-GR.json b/src/i18n/locales/el-GR.json index faf7d4cff..25905afee 100644 --- a/src/i18n/locales/el-GR.json +++ b/src/i18n/locales/el-GR.json @@ -15,7 +15,7 @@ "cut-tooltip-aria": "Αποκοπή. Διαχωρίστε το τμήμα στην τρέχουσα θέση του χρονοδιαγράμματος. Πλήκτρο συντόμευσης: {{hotkeyName}}.", "delete-button": "Διαγραφή", "delete-restore-tooltip": "Σήμανση ή κατάργηση του τμήματος στην τρέχουσα θέση ως διαγραφή. Πλήκτρο συντόμευσης: {{hotkeyName}}", - "delete-restore-tooltip-aria": "Διαγραφή και Επαναφορά. Σήμανση ή κατάργηση επισήμανσης του τμήματος στην τρέχουσα θέση ως διαγραφή. Πλήκτρο συντόμευσης: {{hotkeyName}}.", + "delete-restore-tooltip-aria": "Διαγραφή και Επαναφορά. Σήμανση ή κατάργηση επισήμανσης του τμήματος στην τρέχουσα θέση ως διαγραφή. Πλήκτρο συντόμευσης: {{hotKeyName}}.", "merge-all-button": "Συγχώνευση Όλων", "merge-all-tooltip": "Συνδυάστε όλα τα τμήματα σε ένα μόνο τμήμα.", "merge-all-tooltip-aria": "Συγχώνευση Όλων. Συνδυάστε όλα τα τμήματα σε ένα μόνο τμήμα.", diff --git a/src/i18n/locales/es-ES.json b/src/i18n/locales/es-ES.json index 56cc0124c..18482771d 100644 --- a/src/i18n/locales/es-ES.json +++ b/src/i18n/locales/es-ES.json @@ -15,7 +15,7 @@ "cut-tooltip-aria": "Cortar. Dividir el segmento en la posición actual del marcador en la línea de tiempo. Acceso Rápido: {{hotkeyName}}.", "delete-button": "Borrar", "delete-restore-tooltip": "Marcar o desmarcar el segmento en la posición actual para ser eliminado. Acceso Rápido: {{hotkeyName}}", - "delete-restore-tooltip-aria": "Marcar o desmarcar el segmento en la posición actual para ser eliminado. Acceso Rápido:: {{hotkeyName}}.", + "delete-restore-tooltip-aria": "Marcar o desmarcar el segmento en la posición actual para ser eliminado. Acceso Rápido:: {{hotKeyName}}.", "merge-all-button": "Combinarlo todo", "merge-all-tooltip": "Combina todos los segmentos en un solo segmento.", "merge-all-tooltip-aria": "Combinarlo todo. Combina todos los segmentos en un solo segmento.", diff --git a/src/i18n/locales/fr-FR.json b/src/i18n/locales/fr-FR.json index 192bff296..3e54540c7 100644 --- a/src/i18n/locales/fr-FR.json +++ b/src/i18n/locales/fr-FR.json @@ -15,7 +15,7 @@ "cut-tooltip-aria": "Cut. Split the segment at the current timeline marker position. Hotkey: {{hotkeyName}}.", "delete-button": "Supprimer", "delete-restore-tooltip": "Sélectionner ou désélectionner un segment à la position actuelle pour suppression. Raccourci : {{hotkeyName}}", - "delete-restore-tooltip-aria": "Supprimer et Restaurer. Sélectionner ou désélectionner un segment à la position actuelle pour suppression. Raccourci : {{hotkeyName}}.", + "delete-restore-tooltip-aria": "Supprimer et Restaurer. Sélectionner ou désélectionner un segment à la position actuelle pour suppression. Raccourci : {{hotKeyName}}.", "merge-all-button": "Merge All", "merge-all-tooltip": "Combine all segments into a single segment.", "merge-all-tooltip-aria": "Merge All. Combine all segments into a single segment.", diff --git a/src/i18n/locales/nl-NL.json b/src/i18n/locales/nl-NL.json index 48b93bc8a..038f58e4a 100644 --- a/src/i18n/locales/nl-NL.json +++ b/src/i18n/locales/nl-NL.json @@ -15,7 +15,7 @@ "cut-tooltip-aria": "Cut. Split the segment at the current timeline marker position. Hotkey: {{hotkeyName}}.", "delete-button": "Verwijder", "delete-restore-tooltip": "Markeer of verwijder het segment op de huidige positie om te worden verwijderd. Sneltoets: {{hotkeyName}}", - "delete-restore-tooltip-aria": "Verwijderen en herstellen. Markeer of verwijder het segment op de huidige positie om te worden verwijderd. Sneltoets: {{hotkeyName}}.", + "delete-restore-tooltip-aria": "Verwijderen en herstellen. Markeer of verwijder het segment op de huidige positie om te worden verwijderd. Sneltoets: {{hotKeyName}}.", "merge-all-button": "Merge All", "merge-all-tooltip": "Combine all segments into a single segment.", "merge-all-tooltip-aria": "Merge All. Combine all segments into a single segment.", diff --git a/src/i18n/locales/zh-CN.json b/src/i18n/locales/zh-CN.json index 017a3464d..bcb0ef977 100644 --- a/src/i18n/locales/zh-CN.json +++ b/src/i18n/locales/zh-CN.json @@ -15,7 +15,7 @@ "cut-tooltip-aria": "Cut. Split the segment at the current timeline marker position. Hotkey: {{hotkeyName}}.", "delete-button": "Delete", "delete-restore-tooltip": "Mark or unmark the segment at the current position as to be deleted. Hotkey: {{hotkeyName}}", - "delete-restore-tooltip-aria": "Delete and Restore. Mark or unmark the segment at the current position as to be deleted. Hotkey: {{hotkeyName}}.", + "delete-restore-tooltip-aria": "Delete and Restore. Mark or unmark the segment at the current position as to be deleted. Hotkey: {{hotKeyName}}.", "merge-all-button": "Merge All", "merge-all-tooltip": "Combine all segments into a single segment.", "merge-all-tooltip-aria": "Merge All. Combine all segments into a single segment.", diff --git a/src/i18n/locales/zh-TW.json b/src/i18n/locales/zh-TW.json index ba69c2286..0c5f7b6ba 100644 --- a/src/i18n/locales/zh-TW.json +++ b/src/i18n/locales/zh-TW.json @@ -15,7 +15,7 @@ "cut-tooltip-aria": "Cut. Split the segment at the current timeline marker position. Hotkey: {{hotkeyName}}.", "delete-button": "刪除", "delete-restore-tooltip": "在當前位置標記或取消標記要刪除的區段。 熱鍵:{{hotkeyName}}", - "delete-restore-tooltip-aria": "刪除或還原。 在當前位置標記或取消標記要刪除的區段。 熱鍵:{{hotkeyName}}。", + "delete-restore-tooltip-aria": "刪除或還原。 在當前位置標記或取消標記要刪除的區段。 熱鍵:{{hotKeyName}}。", "merge-all-button": "Merge All", "merge-all-tooltip": "Combine all segments into a single segment.", "merge-all-tooltip-aria": "Merge All. Combine all segments into a single segment.",