diff --git a/packages/web/index.html.tpl b/packages/web/index.html.tpl index b188f34f9..1dfe12c64 100644 --- a/packages/web/index.html.tpl +++ b/packages/web/index.html.tpl @@ -115,7 +115,6 @@
-
Loading DbGate App
diff --git a/packages/web/src/App.svelte b/packages/web/src/App.svelte index 66d95e176..7d9ffc07f 100644 --- a/packages/web/src/App.svelte +++ b/packages/web/src/App.svelte @@ -22,6 +22,7 @@ import SettingsListener from './utility/SettingsListener.svelte'; import { handleAuthOnStartup } from './clientAuth'; import { initializeAppUpdates } from './utility/appUpdate'; + import { _t } from './translations'; export let isAdminPage = false; @@ -95,10 +96,13 @@ {:else} {/if} {:else} - + {/if} diff --git a/packages/web/src/appobj/ConnectionAppObject.svelte b/packages/web/src/appobj/ConnectionAppObject.svelte index a49e3d553..2c7aa23be 100644 --- a/packages/web/src/appobj/ConnectionAppObject.svelte +++ b/packages/web/src/appobj/ConnectionAppObject.svelte @@ -137,6 +137,7 @@ import hasPermission from '../utility/hasPermission'; import { switchCurrentDatabase } from '../utility/common'; import { getConnectionClickActionSetting } from '../settings/settingsTools'; + import { _t } from '../translations'; export let data; export let passProps; @@ -324,7 +325,7 @@ hasPermission(`dbops/query`) && { onClick: handleNewQuery, text: 'New Query (server)', isNewQuery: true }, $openedConnections.includes(data._id) && data.status && { - text: 'Refresh', + text: _t('common.refresh', { defaultMessage: 'Refresh' }), onClick: handleRefresh, }, hasPermission(`dbops/createdb`) && diff --git a/packages/web/src/datagrid/DataGridCore.svelte b/packages/web/src/datagrid/DataGridCore.svelte index c4d457cff..f3bc18c46 100644 --- a/packages/web/src/datagrid/DataGridCore.svelte +++ b/packages/web/src/datagrid/DataGridCore.svelte @@ -4,7 +4,7 @@ registerCommand({ id: 'dataGrid.refresh', category: 'Data grid', - name: 'Refresh', + name: _t('common.refresh', { defaultMessage: 'Refresh' }), keyText: 'F5 | CtrlOrCommand+R', toolbar: true, isRelatedToTab: true, @@ -28,7 +28,7 @@ registerCommand({ id: 'dataGrid.revertRowChanges', category: 'Data grid', - name: 'Revert row changes', + name: _t('command.data_grid.revert_row_changes', { defaultMessage: 'Revert row changes' }), keyText: 'CtrlOrCommand+U', testEnabled: () => getCurrentDataGrid()?.getGrider()?.containsChanges, onClick: () => getCurrentDataGrid().revertRowChanges(), @@ -37,8 +37,8 @@ registerCommand({ id: 'dataGrid.revertAllChanges', category: 'Data grid', - name: 'Revert all changes', - toolbarName: 'Revert all', + name: _t('command.data_grid.revert_all_changes.name', { defaultMessage: 'Revert all changes' }), + toolbarName: _t('command.data_grid.revert_all_changes.toolbar_name', { defaultMessage: 'Revert all' }), icon: 'icon undo', testEnabled: () => getCurrentDataGrid()?.getGrider()?.containsChanges, onClick: () => getCurrentDataGrid().revertAllChanges(), @@ -47,8 +47,8 @@ registerCommand({ id: 'dataGrid.deleteSelectedRows', category: 'Data grid', - name: 'Delete selected rows', - toolbarName: 'Delete row(s)', + name: _t('command.datagrid.delete_selected_rows.name', { defaultMessage: 'Delete selected rows' }), + toolbarName: _t('command.datagrid.delete_selected_rows.toolbar_name', { defaultMessage: 'Delete row(s)' }), keyText: isMac() ? 'Command+Backspace' : 'CtrlOrCommand+Delete', icon: 'icon minus', testEnabled: () => getCurrentDataGrid()?.getGrider()?.editable, @@ -58,8 +58,8 @@ registerCommand({ id: 'dataGrid.insertNewRow', category: 'Data grid', - name: 'Insert new row', - toolbarName: 'New row', + name: _t('command.datagrid.insert_new_row.name', { defaultMessage: 'Insert new row' }), + toolbarName: _t('command.datagrid.insert_new_row.toolbar_name', { defaultMessage: 'New row' }), icon: 'icon add', keyText: isMac() ? 'Command+I' : 'Insert', testEnabled: () => getCurrentDataGrid()?.getGrider()?.editable, @@ -69,8 +69,8 @@ registerCommand({ id: 'dataGrid.addNewColumn', category: 'Data grid', - name: 'Add new column', - toolbarName: 'New column', + name: _t('command.datagrid.add_new_column.name', { defaultMessage: 'Add new column' }), + toolbarName: _t('command.datagrid.add_new_column.toolbar_name', { defaultMessage: 'New column' }), icon: 'icon add-column', testEnabled: () => getCurrentDataGrid()?.addNewColumnEnabled(), onClick: () => getCurrentDataGrid().addNewColumn(), @@ -79,8 +79,8 @@ registerCommand({ id: 'dataGrid.cloneRows', category: 'Data grid', - name: 'Clone rows', - toolbarName: 'Clone row(s)', + name: _t('command.datagrid.clone_rows.name', { defaultMessage: 'Clone rows' }), + toolbarName: _t('command.datagrid.clone_rows.toolbar_name', { defaultMessage: 'Clone row(s)' }), keyText: 'CtrlOrCommand+Shift+C', testEnabled: () => getCurrentDataGrid()?.getGrider()?.editable, onClick: () => getCurrentDataGrid().cloneRows(), @@ -89,7 +89,7 @@ registerCommand({ id: 'dataGrid.setNull', category: 'Data grid', - name: 'Set NULL', + name: _t('command.datagrid.set_null.name', { defaultMessage: 'Set NULL' }), keyText: 'CtrlOrCommand+0', testEnabled: () => getCurrentDataGrid()?.getGrider()?.editable && !getCurrentDataGrid()?.getEditorTypes()?.supportFieldRemoval, @@ -99,7 +99,7 @@ registerCommand({ id: 'dataGrid.removeField', category: 'Data grid', - name: 'Remove field', + name: _t('command.datagrid.remove_field.name', { defaultMessage: 'Remove field' }), keyText: 'CtrlOrCommand+0', testEnabled: () => getCurrentDataGrid()?.getGrider()?.editable && getCurrentDataGrid()?.getEditorTypes()?.supportFieldRemoval, @@ -109,7 +109,7 @@ registerCommand({ id: 'dataGrid.undo', category: 'Data grid', - name: 'Undo', + name: _t('command.datagrid.undo.name', { defaultMessage: 'Undo' }), group: 'undo', icon: 'icon undo', toolbar: true, @@ -121,7 +121,7 @@ registerCommand({ id: 'dataGrid.redo', category: 'Data grid', - name: 'Redo', + name: _t('command.datagrid.redo.name', { defaultMessage: 'Redo' }), group: 'redo', icon: 'icon redo', toolbar: true, @@ -133,7 +133,7 @@ registerCommand({ id: 'dataGrid.reconnect', category: 'Data grid', - name: 'Reconnect', + name: _t('command.datagrid.reconnect.name', { defaultMessage: 'Reconnect' }), testEnabled: () => getCurrentDataGrid() != null, onClick: () => getCurrentDataGrid().reconnect(), }); @@ -141,7 +141,7 @@ registerCommand({ id: 'dataGrid.copyToClipboard', category: 'Data grid', - name: 'Copy to clipboard', + name: _t('command.datagrid.copy_to_clipboard.name', { defaultMessage: 'Copy to clipboard' }), keyText: 'CtrlOrCommand+C', disableHandleKeyText: 'CtrlOrCommand+C', testEnabled: () => getCurrentDataGrid() != null, @@ -152,7 +152,7 @@ id: 'dataGrid.editJsonDocument', category: 'Data grid', keyText: 'CtrlOrCommand+J', - name: 'Edit row as JSON document', + name: _t('command.datagrid.edit_json_document.name', { defaultMessage: 'Edit row as JSON document' }), testEnabled: () => getCurrentDataGrid()?.editJsonEnabled(), onClick: () => getCurrentDataGrid().editJsonDocument(), }); @@ -160,15 +160,15 @@ registerCommand({ id: 'dataGrid.openSelectionInMap', category: 'Data grid', - name: 'Open selection in map', - testEnabled: () => getCurrentDataGrid() != null, // ?.openSelectionInMapEnabled(), + name: _t('command.datagrid.open_selection_in_map.name', { defaultMessage: 'Open selection in map' }), + testEnabled: () => getCurrentDataGrid() != null, onClick: () => getCurrentDataGrid().openSelectionInMap(), }); registerCommand({ id: 'dataGrid.viewJsonDocument', category: 'Data grid', - name: 'View row as JSON document', + name: _t('command.datagrid.view_json_document.name', { defaultMessage: 'View row as JSON document' }), testEnabled: () => getCurrentDataGrid()?.viewJsonDocumentEnabled(), onClick: () => getCurrentDataGrid().viewJsonDocument(), }); @@ -176,7 +176,7 @@ registerCommand({ id: 'dataGrid.viewJsonValue', category: 'Data grid', - name: 'View cell as JSON document', + name: _t('command.datagrid.view_json_value.name', { defaultMessage: 'View cell as JSON document' }), testEnabled: () => getCurrentDataGrid()?.viewJsonValueEnabled(), onClick: () => getCurrentDataGrid().viewJsonValue(), }); @@ -184,7 +184,7 @@ registerCommand({ id: 'dataGrid.openJsonArrayInSheet', category: 'Data grid', - name: 'Open array as table', + name: _t('command.datagrid.open_json_array_in_sheet.name', { defaultMessage: 'Open array as table' }), testEnabled: () => getCurrentDataGrid()?.openJsonArrayInSheetEnabled(), onClick: () => getCurrentDataGrid().openJsonArrayInSheet(), }); @@ -192,7 +192,7 @@ registerCommand({ id: 'dataGrid.saveCellToFile', category: 'Data grid', - name: 'Save cell to file', + name: _t('command.datagrid.save_cell_to_file.name', { defaultMessage: 'Save cell to file' }), testEnabled: () => getCurrentDataGrid()?.saveCellToFileEnabled(), onClick: () => getCurrentDataGrid().saveCellToFile(), }); @@ -200,7 +200,7 @@ registerCommand({ id: 'dataGrid.loadCellFromFile', category: 'Data grid', - name: 'Load cell from file', + name: _t('command.datagrid.load_cell_from_file.name', { defaultMessage: 'Load cell from file' }), testEnabled: () => getCurrentDataGrid()?.loadCellFromFileEnabled(), onClick: () => getCurrentDataGrid().loadCellFromFile(), }); @@ -212,7 +212,8 @@ // testEnabled: () => getCurrentDataGrid()?.copyJsonEnabled(), // onClick: () => getCurrentDataGrid().copyJsonDocument(), // }); - + // + // registerCommand({ id: 'dataGrid.filterSelected', category: 'Data grid', @@ -221,7 +222,6 @@ testEnabled: () => getCurrentDataGrid()?.getDisplay().filterable, onClick: () => getCurrentDataGrid().filterSelectedValue(), }); - registerCommand({ id: 'dataGrid.findColumn', category: 'Data grid', @@ -230,7 +230,6 @@ testEnabled: () => getCurrentDataGrid() != null, getSubCommands: () => getCurrentDataGrid().buildFindMenu(), }); - registerCommand({ id: 'dataGrid.hideColumn', category: 'Data grid', @@ -239,7 +238,6 @@ testEnabled: () => getCurrentDataGrid()?.canShowLeftPanel(), onClick: () => getCurrentDataGrid().hideColumn(), }); - registerCommand({ id: 'dataGrid.clearFilter', category: 'Data grid', @@ -248,7 +246,6 @@ testEnabled: () => getCurrentDataGrid()?.clearFilterEnabled(), onClick: () => getCurrentDataGrid().clearFilter(), }); - registerCommand({ id: 'dataGrid.generateSqlFromData', category: 'Data grid', @@ -257,7 +254,6 @@ testEnabled: () => getCurrentDataGrid()?.generateSqlFromDataEnabled(), onClick: () => getCurrentDataGrid().generateSqlFromData(), }); - registerCommand({ id: 'dataGrid.openFreeTable', category: 'Data grid', @@ -265,7 +261,6 @@ testEnabled: () => getCurrentDataGrid() != null, onClick: () => getCurrentDataGrid().openFreeTable(), }); - registerCommand({ id: 'dataGrid.openChartFromSelection', category: 'Data grid', @@ -273,7 +268,6 @@ testEnabled: () => getCurrentDataGrid() != null, onClick: () => getCurrentDataGrid().openChartFromSelection(), }); - registerCommand({ id: 'dataGrid.newJson', category: 'Data grid', @@ -281,7 +275,6 @@ testEnabled: () => getCurrentDataGrid()?.addJsonDocumentEnabled(), onClick: () => getCurrentDataGrid().addJsonDocument(), }); - registerCommand({ id: 'dataGrid.editCellValue', category: 'Data grid', @@ -289,7 +282,6 @@ testEnabled: () => getCurrentDataGrid()?.editCellValueEnabled(), onClick: () => getCurrentDataGrid().editCellValue(), }); - registerCommand({ id: 'dataGrid.mergeSelectedCellsIntoMirror', category: 'Data grid', @@ -297,7 +289,6 @@ testEnabled: () => getCurrentDataGrid()?.mirrorWriteEnabled(true), onClick: () => getCurrentDataGrid().mergeSelectionIntoMirror({ mergeMode: 'merge', fullRows: false }), }); - registerCommand({ id: 'dataGrid.mergeSelectedRowsIntoMirror', category: 'Data grid', @@ -305,7 +296,6 @@ testEnabled: () => getCurrentDataGrid()?.mirrorWriteEnabled(true), onClick: () => getCurrentDataGrid().mergeSelectionIntoMirror({ mergeMode: 'merge', fullRows: true }), }); - registerCommand({ id: 'dataGrid.appendSelectedCellsIntoMirror', category: 'Data grid', @@ -313,7 +303,6 @@ testEnabled: () => getCurrentDataGrid()?.mirrorWriteEnabled(true), onClick: () => getCurrentDataGrid().mergeSelectionIntoMirror({ mergeMode: 'append', fullRows: false }), }); - registerCommand({ id: 'dataGrid.appendSelectedRowsIntoMirror', category: 'Data grid', @@ -321,7 +310,6 @@ testEnabled: () => getCurrentDataGrid()?.mirrorWriteEnabled(true), onClick: () => getCurrentDataGrid().mergeSelectionIntoMirror({ mergeMode: 'append', fullRows: true }), }); - registerCommand({ id: 'dataGrid.replaceSelectedCellsIntoMirror', category: 'Data grid', @@ -329,7 +317,6 @@ testEnabled: () => getCurrentDataGrid()?.mirrorWriteEnabled(true), onClick: () => getCurrentDataGrid().mergeSelectionIntoMirror({ mergeMode: 'replace', fullRows: false }), }); - registerCommand({ id: 'dataGrid.replaceSelectedRowsIntoMirror', category: 'Data grid', @@ -430,6 +417,7 @@ import { openJsonLinesData } from '../utility/openJsonLinesData'; import contextMenuActivator from '../utility/contextMenuActivator'; import InputTextModal from '../modals/InputTextModal.svelte'; + import { _t } from '../translations'; export let onLoadNextData = undefined; export let grider = undefined; diff --git a/packages/web/src/elements/ObjectFieldsEditor.svelte b/packages/web/src/elements/ObjectFieldsEditor.svelte index 684535848..a85e2b1ad 100644 --- a/packages/web/src/elements/ObjectFieldsEditor.svelte +++ b/packages/web/src/elements/ObjectFieldsEditor.svelte @@ -7,6 +7,7 @@ import FormTextField from '../forms/FormTextField.svelte'; import FormSelectField from '../forms/FormSelectField.svelte'; import stableStringify from 'json-stable-stringify'; + import { _t } from '../translations'; export let title; export let fieldDefinitions; @@ -42,7 +43,7 @@ ({ label: x.schemaName, value: x.schemaName }))} /> {/if} diff --git a/packages/web/src/formview/FormView.svelte b/packages/web/src/formview/FormView.svelte index e14730288..612cecb54 100644 --- a/packages/web/src/formview/FormView.svelte +++ b/packages/web/src/formview/FormView.svelte @@ -15,7 +15,7 @@ registerCommand({ id: 'dataForm.refresh', category: 'Data form', - name: 'Refresh', + name: _t('common.refresh', { defaultMessage: 'Refresh' }), keyText: 'F5 | CtrlOrCommand+R', toolbar: true, isRelatedToTab: true, @@ -197,6 +197,7 @@ import resizeObserver from '../utility/resizeObserver'; import openReferenceForm from './openReferenceForm'; import { useSettings } from '../utility/metadataLoaders'; + import { _t } from '../translations'; export let conid; export let database; diff --git a/packages/web/src/impexp/SourceTargetConfig.svelte b/packages/web/src/impexp/SourceTargetConfig.svelte index d78c69f23..5418aedfd 100644 --- a/packages/web/src/impexp/SourceTargetConfig.svelte +++ b/packages/web/src/impexp/SourceTargetConfig.svelte @@ -22,6 +22,7 @@ import FormTablesSelect from './FormTablesSelect.svelte'; import { findEngineDriver } from 'dbgate-tools'; import AceEditor from '../query/AceEditor.svelte'; + import { _t } from '../translations'; export let direction; export let storageTypeField; @@ -40,14 +41,22 @@ $values[storageTypeField] == 'jsldata' ? [{ value: 'jsldata', label: 'Query result data', directions: ['source'] }] : [ - { value: 'database', label: 'Database', directions: ['source', 'target'] }, + { + value: 'database', + label: _t('common.database', { defaultMessage: 'Database' }), + directions: ['source', 'target'], + }, ...$extensions.fileFormats.map(format => ({ value: format.storageType, label: `${format.name} files(s)`, directions: getFileFormatDirections(format), })), - { value: 'query', label: 'Query', directions: ['source'] }, - { value: 'archive', label: 'Archive', directions: ['source', 'target'] }, + { value: 'query', label: _t('common.query', { defaultMessage: 'Query' }), directions: ['source'] }, + { + value: 'archive', + label: _t('common.archive', { defaultMessage: 'Archive' }), + directions: ['source', 'target'], + }, ]; $: storageType = $values[storageTypeField]; @@ -124,7 +133,7 @@ conidName={connectionIdField} databaseName={databaseNameField} name={schemaNameField} - label="Schema" + label={_t('common.schema', { defaultMessage: 'Schema' })} /> {#if tablesField} {/if} {/if} {#if storageType == 'query'} -
Query
+
{_t('common.query', { defaultMessage: 'Query' })}
{#if $values.sourceQueryType == 'json'} setFieldValue('sourceQuery', e.detail)} mode="json" /> @@ -156,7 +165,11 @@ {/if} {#if storageType == 'archive' && direction == 'source'} - + {/if} {#if format && direction == 'source'} diff --git a/packages/web/src/modals/EditJsonModal.svelte b/packages/web/src/modals/EditJsonModal.svelte index be2dce8af..01ecb7191 100644 --- a/packages/web/src/modals/EditJsonModal.svelte +++ b/packages/web/src/modals/EditJsonModal.svelte @@ -9,6 +9,7 @@ import ModalBase from './ModalBase.svelte'; import { closeCurrentModal, showModal } from './modalTools'; + import { _t } from '../translations'; export let onSave; export let json; @@ -43,7 +44,7 @@
{ try { diff --git a/packages/web/src/modals/SaveArchiveModal.svelte b/packages/web/src/modals/SaveArchiveModal.svelte index ad6ba355c..bc2d0c372 100644 --- a/packages/web/src/modals/SaveArchiveModal.svelte +++ b/packages/web/src/modals/SaveArchiveModal.svelte @@ -6,6 +6,7 @@ import FormSubmit from '../forms/FormSubmit.svelte'; import FormTextField from '../forms/FormTextField.svelte'; import { currentArchive } from '../stores'; + import { _t } from '../translations'; import ModalBase from './ModalBase.svelte'; import { closeCurrentModal } from './modalTools'; @@ -28,7 +29,7 @@ - + diff --git a/packages/web/src/modals/SaveFileModal.svelte b/packages/web/src/modals/SaveFileModal.svelte index 76d1eafdc..c324028e1 100644 --- a/packages/web/src/modals/SaveFileModal.svelte +++ b/packages/web/src/modals/SaveFileModal.svelte @@ -4,6 +4,7 @@ import FormProvider from '../forms/FormProvider.svelte'; import FormSubmit from '../forms/FormSubmit.svelte'; import FormTextField from '../forms/FormTextField.svelte'; + import { _t } from '../translations'; import { apiCall } from '../utility/api'; import getElectron from '../utility/getElectron'; @@ -56,7 +57,7 @@ Save file - + {#if electron} { closeCurrentModal(); diff --git a/packages/web/src/tableeditor/ForeignKeyEditorModal.svelte b/packages/web/src/tableeditor/ForeignKeyEditorModal.svelte index 72895ddd9..7d4c82871 100644 --- a/packages/web/src/tableeditor/ForeignKeyEditorModal.svelte +++ b/packages/web/src/tableeditor/ForeignKeyEditorModal.svelte @@ -17,6 +17,7 @@ import TextField from '../forms/TextField.svelte'; import SelectField from '../forms/SelectField.svelte'; import _ from 'lodash'; + import { _t } from '../translations'; export let constraintInfo; export let setTableInfo; @@ -204,7 +205,7 @@ { closeCurrentModal(); diff --git a/packages/web/src/tabpanel/TabsPanel.svelte b/packages/web/src/tabpanel/TabsPanel.svelte index 2e194dd8d..73a2144c3 100644 --- a/packages/web/src/tabpanel/TabsPanel.svelte +++ b/packages/web/src/tabpanel/TabsPanel.svelte @@ -1,4 +1,6 @@