From 275e787225117de655a5cbbf41f6ee8cb83087ff Mon Sep 17 00:00:00 2001 From: sergeyteleshev Date: Thu, 20 Nov 2025 13:56:54 +0100 Subject: [PATCH 1/2] dbeaver/pro#7554 adds tooltip for multi sorting in data grid --- .../@dbeaver/react-data-grid/src/DataGrid.tsx | 12 +++++++++++- .../src/DataGridHeaderCellContext.ts | 9 +++++++++ .../renderers/HeaderCellContentRenderer.tsx | 7 +++++-- .../src/renderers/OrderButton.tsx | 18 ++++++++++++++---- .../src/DataGrid/DataGridTable.tsx | 16 +++++----------- .../src/locales/de.ts | 2 +- .../src/locales/en.ts | 2 +- .../src/locales/fr.ts | 2 +- .../src/locales/it.ts | 2 +- .../src/locales/ru.ts | 2 +- .../src/locales/vi.ts | 2 +- .../src/locales/zh.ts | 2 +- 12 files changed, 51 insertions(+), 25 deletions(-) diff --git a/webapp/common-react/@dbeaver/react-data-grid/src/DataGrid.tsx b/webapp/common-react/@dbeaver/react-data-grid/src/DataGrid.tsx index b902f9b611d..630fc2a038d 100644 --- a/webapp/common-react/@dbeaver/react-data-grid/src/DataGrid.tsx +++ b/webapp/common-react/@dbeaver/react-data-grid/src/DataGrid.tsx @@ -72,6 +72,7 @@ export const DataGrid = forwardRef(function DataGrid getHeaderPinned, columnSortingState, getHeaderDnD, + orderButtonTitle, cell, cellText, cellElement, @@ -187,7 +188,16 @@ export const DataGrid = forwardRef(function DataGrid ; onColumnSort?: (colIdx: number, order: 'asc' | 'desc' | null, isMultiple: boolean) => void; onHeaderKeyDown?: (event: React.KeyboardEvent) => void; + orderButtonTitle?: string; } export const DataGridCellHeaderContext = createContext(null); diff --git a/webapp/common-react/@dbeaver/react-data-grid/src/renderers/HeaderCellContentRenderer.tsx b/webapp/common-react/@dbeaver/react-data-grid/src/renderers/HeaderCellContentRenderer.tsx index 02e9659e8f5..890f47df5f3 100644 --- a/webapp/common-react/@dbeaver/react-data-grid/src/renderers/HeaderCellContentRenderer.tsx +++ b/webapp/common-react/@dbeaver/react-data-grid/src/renderers/HeaderCellContentRenderer.tsx @@ -27,6 +27,7 @@ export const HeaderCellContentRenderer = memo(function HeaderCellContentRenderer const onColumnSort = cellHeaderContext?.onColumnSort; const onHeaderKeyDown = cellHeaderContext?.onHeaderKeyDown; const sortingState = useGridReactiveValue(cellHeaderContext?.columnSortingState, colIdx); + const orderButtonTitle = cellHeaderContext?.orderButtonTitle; const draggable = dndHeaderContext?.getCanDrag?.(colIdx) ?? false; const drag = useDrag({ @@ -63,7 +64,9 @@ export const HeaderCellContentRenderer = memo(function HeaderCellContentRenderer }); function handleSort(e: React.MouseEvent | React.KeyboardEvent) { - if (!onColumnSort) return; + if (!onColumnSort) { + return; + } const nextSortState = sortingState === 'asc' ? 'desc' : sortingState === 'desc' ? null : 'asc'; onColumnSort(colIdx, nextSortState, e.ctrlKey || e.metaKey); @@ -87,7 +90,7 @@ export const HeaderCellContentRenderer = memo(function HeaderCellContentRenderer onKeyDown={onKeyDown} > {headerElement ?? getHeaderText ?? ''} - {isColumnSortable && onColumnSort && } + {isColumnSortable && onColumnSort && } ); }); diff --git a/webapp/common-react/@dbeaver/react-data-grid/src/renderers/OrderButton.tsx b/webapp/common-react/@dbeaver/react-data-grid/src/renderers/OrderButton.tsx index 65bac1c8254..dc6b795126c 100644 --- a/webapp/common-react/@dbeaver/react-data-grid/src/renderers/OrderButton.tsx +++ b/webapp/common-react/@dbeaver/react-data-grid/src/renderers/OrderButton.tsx @@ -1,15 +1,25 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2025 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ + import { clsx, IconButton, Icon } from '@dbeaver/ui-kit'; interface OrderButtonProps { sortState?: 'asc' | 'desc' | null; onClick: (e: React.MouseEvent) => void; tabIndex?: number; + title?: string; } -export function OrderButton({ sortState, onClick, tabIndex }: OrderButtonProps) { +export function OrderButton({ sortState, onClick, tabIndex, title }: OrderButtonProps) { const svgSortAsc = 'sort-asc'; const svgSortDesc = 'sort-desc'; const svgSortUnknown = 'sort-unknown'; + const tooltip = title || 'Sort by column'; const iconSrc = sortState === 'asc' ? svgSortAsc : sortState === 'desc' ? svgSortDesc : svgSortUnknown; @@ -17,14 +27,14 @@ export function OrderButton({ sortState, onClick, tabIndex }: OrderButtonProps) diff --git a/webapp/packages/plugin-data-spreadsheet-new/src/DataGrid/DataGridTable.tsx b/webapp/packages/plugin-data-spreadsheet-new/src/DataGrid/DataGridTable.tsx index 2f46866bb68..655c6e6b23c 100644 --- a/webapp/packages/plugin-data-spreadsheet-new/src/DataGrid/DataGridTable.tsx +++ b/webapp/packages/plugin-data-spreadsheet-new/src/DataGrid/DataGridTable.tsx @@ -10,9 +10,7 @@ import { useCallback, useLayoutEffect, useMemo, useRef, type HTMLAttributes } fr import { reaction } from 'mobx'; import { getComputed, s, TextPlaceholder, useObjectRef, useS, useTranslate } from '@cloudbeaver/core-blocks'; -// import { useService } from '@cloudbeaver/core-di'; import { EventContext, EventStopPropagationFlag } from '@cloudbeaver/core-events'; -// import { ClipboardService } from '@cloudbeaver/core-ui'; import { useCaptureViewContext } from '@cloudbeaver/core-view'; import { DataGrid, @@ -58,20 +56,13 @@ import { useTableData } from './useTableData.js'; import { TableColumnHeader } from './TableColumnHeader/TableColumnHeader.js'; import { TableIndexColumnHeader } from './TableColumnHeader/TableIndexColumnHeader.js'; import { clsx } from '@dbeaver/ui-kit'; +import { getOS, OperatingSystem } from '@cloudbeaver/core-utils'; const ROW_HEIGHT = 24; export const HEADER_HEIGHT = 32; export const HEADER_WITH_DESC_HEIGHT = 42; -export const DataGridTable = observer(function DataGridTable({ - model, - actions, - resultIndex, - simple, - className, - dataFormat, - ...rest -}) { +export const DataGridTable = observer(function DataGridTable({ model, actions, resultIndex, simple, className, ...rest }) { const translate = useTranslate(); const styles = useS(classes); const gridContainerRef = useRef(null); @@ -85,6 +76,8 @@ export const DataGridTable = observer(function DataGridT const tableData = useTableData(model as unknown as IDatabaseDataModel, resultIndex, dataGridDivRef); const gridSelectionContext = useGridSelectionContext(tableData, selectionAction); + const multiSortModifier = getOS() === OperatingSystem.macOS ? '⌘CMD' : 'CTRL'; + const orderButtonTitle = translate('data_grid_table_tooltip_column_header_order', undefined, { modifier: multiSortModifier }); const restoreFocus = useCallback( function restoreFocus() { @@ -512,6 +505,7 @@ export const DataGridTable = observer(function DataGridT rowCount={rowsCount} columnSortable={columnSortable} columnSortingState={columnSortingState} + orderButtonTitle={orderButtonTitle} getRowId={rowIdx => (tableData.rows[rowIdx] ? GridDataKeysUtils.serialize(tableData.rows[rowIdx]) : '')} onFocus={handleFocusChange} onScrollToBottom={handleScrollToBottom} diff --git a/webapp/packages/plugin-data-spreadsheet-new/src/locales/de.ts b/webapp/packages/plugin-data-spreadsheet-new/src/locales/de.ts index 30c95bf1c75..d8023f91695 100644 --- a/webapp/packages/plugin-data-spreadsheet-new/src/locales/de.ts +++ b/webapp/packages/plugin-data-spreadsheet-new/src/locales/de.ts @@ -12,7 +12,7 @@ export default [ ['data_grid_table_disable_order', 'Deaktiviert'], ['data_grid_table_disable_all_orders', 'Alle deaktivieren'], ['data_grid_table_delete_filters_and_orders', 'Filter / Sortierung zurücksetzen'], - ['data_grid_table_tooltip_column_header_order', 'Sortieren nach Spalte'], + ['data_grid_table_tooltip_column_header_order', 'Zum Sortieren klicken. Halten Sie {arg:modifier} für Mehrfachsortierung'], ['data_grid_table_context_menu_filter_dialog_title', 'Wert bearbeiten'], ['data_grid_table_index_column_tooltip', 'Wählen ganze Tabelle aus'], ['data_grid_table_readonly_tooltip', 'Schreibgeschützt'], diff --git a/webapp/packages/plugin-data-spreadsheet-new/src/locales/en.ts b/webapp/packages/plugin-data-spreadsheet-new/src/locales/en.ts index 829288eab21..a473a9e96e3 100644 --- a/webapp/packages/plugin-data-spreadsheet-new/src/locales/en.ts +++ b/webapp/packages/plugin-data-spreadsheet-new/src/locales/en.ts @@ -16,7 +16,7 @@ export default [ ['data_grid_table_disable_order', 'Disabled'], ['data_grid_table_disable_all_orders', 'Disable all'], ['data_grid_table_delete_filters_and_orders', 'Reset filters / sorting'], - ['data_grid_table_tooltip_column_header_order', 'Sort by column'], + ['data_grid_table_tooltip_column_header_order', 'Click to sort. Hold {arg:modifier} for multi-sort'], ['data_grid_table_context_menu_filter_dialog_title', 'Edit value'], ['data_grid_table_context_menu_filter_clipboard_permission', 'Give access to clipboard'], ['data_grid_table_context_menu_save_value_error', 'Failed to save value'], diff --git a/webapp/packages/plugin-data-spreadsheet-new/src/locales/fr.ts b/webapp/packages/plugin-data-spreadsheet-new/src/locales/fr.ts index faef5322002..be821df1f02 100644 --- a/webapp/packages/plugin-data-spreadsheet-new/src/locales/fr.ts +++ b/webapp/packages/plugin-data-spreadsheet-new/src/locales/fr.ts @@ -16,7 +16,7 @@ export default [ ['data_grid_table_disable_order', 'Désactivé'], ['data_grid_table_disable_all_orders', 'Désactiver tout'], ['data_grid_table_delete_filters_and_orders', 'Réinitialiser les filtres / le tri'], - ['data_grid_table_tooltip_column_header_order', 'Trier par colonne'], + ['data_grid_table_tooltip_column_header_order', 'Cliquez pour trier. Maintenez {arg:modifier} pour un tri multiple'], ['data_grid_table_context_menu_filter_dialog_title', 'Modifier la valeur'], ['data_grid_table_context_menu_filter_clipboard_permission', 'Donner accès au presse-papiers'], ['data_grid_table_context_menu_save_value_error', 'Échec de la sauvegarde de la valeur'], diff --git a/webapp/packages/plugin-data-spreadsheet-new/src/locales/it.ts b/webapp/packages/plugin-data-spreadsheet-new/src/locales/it.ts index d9d8896558b..29dc12db3d9 100644 --- a/webapp/packages/plugin-data-spreadsheet-new/src/locales/it.ts +++ b/webapp/packages/plugin-data-spreadsheet-new/src/locales/it.ts @@ -11,7 +11,7 @@ export default [ ['data_grid_table_disable_order', 'Disabilitato'], ['data_grid_table_disable_all_orders', 'Disabilita tutto'], ['data_grid_table_delete_filters_and_orders', "Reimposta i filtri / l'ordinamento"], - ['data_grid_table_tooltip_column_header_order', 'Ordina per colonna'], + ['data_grid_table_tooltip_column_header_order', 'Fai clic per ordinare. Tieni premuto {arg:modifier} per l\'ordinamento multiplo'], ['data_grid_table_context_menu_filter_dialog_title', 'Modifica valore'], ['data_grid_table_context_menu_filter_clipboard_permission', 'Dai accesso agli appunti'], ['data_grid_table_context_menu_save_value_error', 'Failed to save value'], diff --git a/webapp/packages/plugin-data-spreadsheet-new/src/locales/ru.ts b/webapp/packages/plugin-data-spreadsheet-new/src/locales/ru.ts index 483c9fad162..1d2eec9b3c9 100644 --- a/webapp/packages/plugin-data-spreadsheet-new/src/locales/ru.ts +++ b/webapp/packages/plugin-data-spreadsheet-new/src/locales/ru.ts @@ -16,7 +16,7 @@ export default [ ['data_grid_table_disable_order', 'Отключена'], ['data_grid_table_disable_all_orders', 'Отменить сортировку всех колонок'], ['data_grid_table_delete_filters_and_orders', 'Отменить фильтры / сортировки'], - ['data_grid_table_tooltip_column_header_order', 'Сортировка по колонке'], + ['data_grid_table_tooltip_column_header_order', 'Нажмите для сортировки. Удерживайте {arg:modifier} для множественной сортировки'], ['data_grid_table_context_menu_filter_dialog_title', 'Редактировать значение'], ['data_grid_table_context_menu_filter_clipboard_permission', 'Дать доступ к буферу обмена'], ['data_grid_table_context_menu_save_value_error', 'Не удалось сохранить значение'], diff --git a/webapp/packages/plugin-data-spreadsheet-new/src/locales/vi.ts b/webapp/packages/plugin-data-spreadsheet-new/src/locales/vi.ts index 4eda8ba15c1..0125bfa598f 100644 --- a/webapp/packages/plugin-data-spreadsheet-new/src/locales/vi.ts +++ b/webapp/packages/plugin-data-spreadsheet-new/src/locales/vi.ts @@ -16,7 +16,7 @@ export default [ ['data_grid_table_disable_order', 'Đã tắt'], ['data_grid_table_disable_all_orders', 'Tắt tất cả'], ['data_grid_table_delete_filters_and_orders', 'Đặt lại bộ lọc / sắp xếp'], - ['data_grid_table_tooltip_column_header_order', 'Sắp xếp theo cột'], + ['data_grid_table_tooltip_column_header_order', 'Nhấp để sắp xếp. Giữ {arg:modifier} để sắp xếp nhiều cột'], ['data_grid_table_context_menu_filter_dialog_title', 'Chỉnh sửa giá trị'], ['data_grid_table_context_menu_filter_clipboard_permission', 'Cấp quyền truy cập vào clipboard'], ['data_grid_table_context_menu_save_value_error', 'Không thể lưu giá trị'], diff --git a/webapp/packages/plugin-data-spreadsheet-new/src/locales/zh.ts b/webapp/packages/plugin-data-spreadsheet-new/src/locales/zh.ts index 51b94fd37bb..76eabd9765a 100644 --- a/webapp/packages/plugin-data-spreadsheet-new/src/locales/zh.ts +++ b/webapp/packages/plugin-data-spreadsheet-new/src/locales/zh.ts @@ -16,7 +16,7 @@ export default [ ['data_grid_table_disable_order', '已禁用'], ['data_grid_table_disable_all_orders', '禁用所有'], ['data_grid_table_delete_filters_and_orders', '重置过滤器/排序'], - ['data_grid_table_tooltip_column_header_order', '按列排序'], + ['data_grid_table_tooltip_column_header_order', '单击排序。按住 {arg:modifier} 以进行多列排序'], ['data_grid_table_context_menu_filter_dialog_title', '编辑值'], ['data_grid_table_context_menu_filter_clipboard_permission', '授予访问剪贴板的权限'], ['data_grid_table_context_menu_save_value_error', '保存失败'], From 3cc0a3b1c0f6ef40fd747e1ca78bfb2ee165c098 Mon Sep 17 00:00:00 2001 From: sergeyteleshev Date: Thu, 20 Nov 2025 15:08:58 +0100 Subject: [PATCH 2/2] fixes translation --- webapp/packages/plugin-data-spreadsheet-new/src/locales/de.ts | 2 +- webapp/packages/plugin-data-spreadsheet-new/src/locales/en.ts | 2 +- webapp/packages/plugin-data-spreadsheet-new/src/locales/fr.ts | 2 +- webapp/packages/plugin-data-spreadsheet-new/src/locales/it.ts | 2 +- webapp/packages/plugin-data-spreadsheet-new/src/locales/ru.ts | 2 +- webapp/packages/plugin-data-spreadsheet-new/src/locales/vi.ts | 2 +- webapp/packages/plugin-data-spreadsheet-new/src/locales/zh.ts | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/webapp/packages/plugin-data-spreadsheet-new/src/locales/de.ts b/webapp/packages/plugin-data-spreadsheet-new/src/locales/de.ts index d8023f91695..c2fcc82099b 100644 --- a/webapp/packages/plugin-data-spreadsheet-new/src/locales/de.ts +++ b/webapp/packages/plugin-data-spreadsheet-new/src/locales/de.ts @@ -12,7 +12,7 @@ export default [ ['data_grid_table_disable_order', 'Deaktiviert'], ['data_grid_table_disable_all_orders', 'Alle deaktivieren'], ['data_grid_table_delete_filters_and_orders', 'Filter / Sortierung zurücksetzen'], - ['data_grid_table_tooltip_column_header_order', 'Zum Sortieren klicken. Halten Sie {arg:modifier} für Mehrfachsortierung'], + ['data_grid_table_tooltip_column_header_order', 'Zum Sortieren klicken. Halten Sie {arg:modifier} + klicken für Mehrfachsortierung'], ['data_grid_table_context_menu_filter_dialog_title', 'Wert bearbeiten'], ['data_grid_table_index_column_tooltip', 'Wählen ganze Tabelle aus'], ['data_grid_table_readonly_tooltip', 'Schreibgeschützt'], diff --git a/webapp/packages/plugin-data-spreadsheet-new/src/locales/en.ts b/webapp/packages/plugin-data-spreadsheet-new/src/locales/en.ts index a473a9e96e3..0120994bb71 100644 --- a/webapp/packages/plugin-data-spreadsheet-new/src/locales/en.ts +++ b/webapp/packages/plugin-data-spreadsheet-new/src/locales/en.ts @@ -16,7 +16,7 @@ export default [ ['data_grid_table_disable_order', 'Disabled'], ['data_grid_table_disable_all_orders', 'Disable all'], ['data_grid_table_delete_filters_and_orders', 'Reset filters / sorting'], - ['data_grid_table_tooltip_column_header_order', 'Click to sort. Hold {arg:modifier} for multi-sort'], + ['data_grid_table_tooltip_column_header_order', 'Click to sort. Hold {arg:modifier} + click for multi-sort'], ['data_grid_table_context_menu_filter_dialog_title', 'Edit value'], ['data_grid_table_context_menu_filter_clipboard_permission', 'Give access to clipboard'], ['data_grid_table_context_menu_save_value_error', 'Failed to save value'], diff --git a/webapp/packages/plugin-data-spreadsheet-new/src/locales/fr.ts b/webapp/packages/plugin-data-spreadsheet-new/src/locales/fr.ts index be821df1f02..3d94b8016be 100644 --- a/webapp/packages/plugin-data-spreadsheet-new/src/locales/fr.ts +++ b/webapp/packages/plugin-data-spreadsheet-new/src/locales/fr.ts @@ -16,7 +16,7 @@ export default [ ['data_grid_table_disable_order', 'Désactivé'], ['data_grid_table_disable_all_orders', 'Désactiver tout'], ['data_grid_table_delete_filters_and_orders', 'Réinitialiser les filtres / le tri'], - ['data_grid_table_tooltip_column_header_order', 'Cliquez pour trier. Maintenez {arg:modifier} pour un tri multiple'], + ['data_grid_table_tooltip_column_header_order', 'Cliquez pour trier. Maintenez {arg:modifier} + cliquez pour un tri multiple'], ['data_grid_table_context_menu_filter_dialog_title', 'Modifier la valeur'], ['data_grid_table_context_menu_filter_clipboard_permission', 'Donner accès au presse-papiers'], ['data_grid_table_context_menu_save_value_error', 'Échec de la sauvegarde de la valeur'], diff --git a/webapp/packages/plugin-data-spreadsheet-new/src/locales/it.ts b/webapp/packages/plugin-data-spreadsheet-new/src/locales/it.ts index 29dc12db3d9..ff011f827ae 100644 --- a/webapp/packages/plugin-data-spreadsheet-new/src/locales/it.ts +++ b/webapp/packages/plugin-data-spreadsheet-new/src/locales/it.ts @@ -11,7 +11,7 @@ export default [ ['data_grid_table_disable_order', 'Disabilitato'], ['data_grid_table_disable_all_orders', 'Disabilita tutto'], ['data_grid_table_delete_filters_and_orders', "Reimposta i filtri / l'ordinamento"], - ['data_grid_table_tooltip_column_header_order', 'Fai clic per ordinare. Tieni premuto {arg:modifier} per l\'ordinamento multiplo'], + ['data_grid_table_tooltip_column_header_order', "Fai clic per ordinare. Tieni premuto {arg:modifier} + clic per l'ordinamento multiplo"], ['data_grid_table_context_menu_filter_dialog_title', 'Modifica valore'], ['data_grid_table_context_menu_filter_clipboard_permission', 'Dai accesso agli appunti'], ['data_grid_table_context_menu_save_value_error', 'Failed to save value'], diff --git a/webapp/packages/plugin-data-spreadsheet-new/src/locales/ru.ts b/webapp/packages/plugin-data-spreadsheet-new/src/locales/ru.ts index 1d2eec9b3c9..7925650bc8a 100644 --- a/webapp/packages/plugin-data-spreadsheet-new/src/locales/ru.ts +++ b/webapp/packages/plugin-data-spreadsheet-new/src/locales/ru.ts @@ -16,7 +16,7 @@ export default [ ['data_grid_table_disable_order', 'Отключена'], ['data_grid_table_disable_all_orders', 'Отменить сортировку всех колонок'], ['data_grid_table_delete_filters_and_orders', 'Отменить фильтры / сортировки'], - ['data_grid_table_tooltip_column_header_order', 'Нажмите для сортировки. Удерживайте {arg:modifier} для множественной сортировки'], + ['data_grid_table_tooltip_column_header_order', 'Нажмите для сортировки. Удерживайте {arg:modifier} + нажмите для множественной сортировки'], ['data_grid_table_context_menu_filter_dialog_title', 'Редактировать значение'], ['data_grid_table_context_menu_filter_clipboard_permission', 'Дать доступ к буферу обмена'], ['data_grid_table_context_menu_save_value_error', 'Не удалось сохранить значение'], diff --git a/webapp/packages/plugin-data-spreadsheet-new/src/locales/vi.ts b/webapp/packages/plugin-data-spreadsheet-new/src/locales/vi.ts index 0125bfa598f..61e86b4539f 100644 --- a/webapp/packages/plugin-data-spreadsheet-new/src/locales/vi.ts +++ b/webapp/packages/plugin-data-spreadsheet-new/src/locales/vi.ts @@ -16,7 +16,7 @@ export default [ ['data_grid_table_disable_order', 'Đã tắt'], ['data_grid_table_disable_all_orders', 'Tắt tất cả'], ['data_grid_table_delete_filters_and_orders', 'Đặt lại bộ lọc / sắp xếp'], - ['data_grid_table_tooltip_column_header_order', 'Nhấp để sắp xếp. Giữ {arg:modifier} để sắp xếp nhiều cột'], + ['data_grid_table_tooltip_column_header_order', 'Nhấp để sắp xếp. Giữ {arg:modifier} + nhấp để sắp xếp nhiều cột'], ['data_grid_table_context_menu_filter_dialog_title', 'Chỉnh sửa giá trị'], ['data_grid_table_context_menu_filter_clipboard_permission', 'Cấp quyền truy cập vào clipboard'], ['data_grid_table_context_menu_save_value_error', 'Không thể lưu giá trị'], diff --git a/webapp/packages/plugin-data-spreadsheet-new/src/locales/zh.ts b/webapp/packages/plugin-data-spreadsheet-new/src/locales/zh.ts index 76eabd9765a..092102170b6 100644 --- a/webapp/packages/plugin-data-spreadsheet-new/src/locales/zh.ts +++ b/webapp/packages/plugin-data-spreadsheet-new/src/locales/zh.ts @@ -16,7 +16,7 @@ export default [ ['data_grid_table_disable_order', '已禁用'], ['data_grid_table_disable_all_orders', '禁用所有'], ['data_grid_table_delete_filters_and_orders', '重置过滤器/排序'], - ['data_grid_table_tooltip_column_header_order', '单击排序。按住 {arg:modifier} 以进行多列排序'], + ['data_grid_table_tooltip_column_header_order', '单击排序。按住 {arg:modifier} + 单击以进行多列排序'], ['data_grid_table_context_menu_filter_dialog_title', '编辑值'], ['data_grid_table_context_menu_filter_clipboard_permission', '授予访问剪贴板的权限'], ['data_grid_table_context_menu_save_value_error', '保存失败'],