diff --git a/packages/web/src/elements/ForeignKeyObjectListControl.svelte b/packages/web/src/elements/ForeignKeyObjectListControl.svelte index c067ae4a9..4b5c88dc5 100644 --- a/packages/web/src/elements/ForeignKeyObjectListControl.svelte +++ b/packages/web/src/elements/ForeignKeyObjectListControl.svelte @@ -5,6 +5,7 @@ import ObjectListControl from '../elements/ObjectListControl.svelte'; import Link from './Link.svelte'; + import { _t } from '../translations'; export let collection; export let title; @@ -24,18 +25,18 @@ columns={[ { fieldName: 'baseColumns', - header: 'Base columns', + header: _t('foreignKey.baseColumns', { defaultMessage: 'Base columns' }), slot: 0, sortable: true, }, { fieldName: 'refTableName', - header: 'Referenced table', + header: _t('foreignKey.refTableName', { defaultMessage: 'Referenced table' }), sortable: true, }, { fieldName: 'refColumns', - header: 'Referenced columns', + header: _t('foreignKey.refColumns', { defaultMessage: 'Referenced columns' }), slot: 1, sortable: true, }, @@ -60,5 +61,5 @@ {row?.columns.map(x => x.columnName).join(', ')} {row?.columns.map(x => x.refColumnName).join(', ')} - onRemove(row)}>Remove + onRemove(row)}>{_t('common.remove', { defaultMessage: 'Remove' })} diff --git a/packages/web/src/elements/ObjectListControl.svelte b/packages/web/src/elements/ObjectListControl.svelte index eaf9fc477..1ea45437c 100644 --- a/packages/web/src/elements/ObjectListControl.svelte +++ b/packages/web/src/elements/ObjectListControl.svelte @@ -4,6 +4,7 @@ import Link from './Link.svelte'; import TableControl from './TableControl.svelte'; import { writable } from 'svelte/store'; + import { _t } from '../translations'; export let title; export let collection; @@ -39,7 +40,7 @@ {title} {#if onAddNew} - Add new + {_t('common.addNew', { defaultMessage: 'Add new' })} {/if} {#if multipleItemsActions && activeMultipleSelection && activeMultipleSelection?.length > 0} {#each multipleItemsActions as item} @@ -65,7 +66,7 @@ columns={_.compact([ !hideDisplayName && { fieldName: displayNameFieldName || 'displayName', - header: 'Name', + header: _t('common.name', { defaultMessage: 'Name' }), slot: -1, sortable: true, filterable: !!displayNameFieldName, diff --git a/packages/web/src/formview/FormViewFilters.svelte b/packages/web/src/formview/FormViewFilters.svelte index db30850c7..d88256d70 100644 --- a/packages/web/src/formview/FormViewFilters.svelte +++ b/packages/web/src/formview/FormViewFilters.svelte @@ -37,7 +37,7 @@ {#if isFormView}
-
Column name filter
+
{_t('datagrid.columnNameFilter', { defaultMessage: 'Column name filter' })}
- Confirm close tabs + {_t('datagrid.closeTabs.header', { defaultMessage: 'Confirm close tabs' })}
- Following files are modified, really close tabs? After closing, you could reopen them in history + {_t('datagrid.closeTabs.modifiedFiles', { defaultMessage: 'Following files are modified, really close tabs? After closing, you could reopen them in history' })} widget
@@ -41,7 +43,7 @@ { closeCurrentModal(); onConfirm(); @@ -49,7 +51,7 @@ /> { closeCurrentModal(); onCancel(); diff --git a/packages/web/src/settings/ConnectionDriverFields.svelte b/packages/web/src/settings/ConnectionDriverFields.svelte index e0f3fdcda..9eec3f334 100644 --- a/packages/web/src/settings/ConnectionDriverFields.svelte +++ b/packages/web/src/settings/ConnectionDriverFields.svelte @@ -466,7 +466,7 @@ {#if defaultDatabase && driver?.showConnectionField('singleDatabase', $values, showConnectionFieldArgs)}
{columnInfo ? 'Edit column' : `Add column ${(tableInfo?.columns || []).length + 1}`}{columnInfo ? _t('columnEditor.editColumn', { defaultMessage: 'Edit column' }) : _t('columnEditor.addColumn', { defaultMessage: 'Add column {columnNumber}', values: { columnNumber: (tableInfo?.columns || []).length + 1 } })} - + {#if !driver?.dialect?.specificNullabilityImplementation} {/if} - + {#if !driver?.dialect?.disableAutoIncrement} - + {/if} - + {#if driver?.dialect?.columnProperties?.isUnsigned} - + {/if} {#if driver?.dialect?.columnProperties?.isZerofill} - + {/if} {#if driver?.dialect?.columnProperties?.columnComment} - + {/if} {#if driver?.dialect?.columnProperties?.isSparse} - + {/if} { closeCurrentModal(); @@ -85,11 +85,11 @@ /> {/if} - + {#if columnInfo} { closeCurrentModal(); setTableInfo(tbl => editorDeleteColumn(tbl, columnInfo, addDataCommand)); diff --git a/packages/web/src/tableeditor/ColumnsConstraintEditorModal.svelte b/packages/web/src/tableeditor/ColumnsConstraintEditorModal.svelte index 431671266..9e26297f1 100644 --- a/packages/web/src/tableeditor/ColumnsConstraintEditorModal.svelte +++ b/packages/web/src/tableeditor/ColumnsConstraintEditorModal.svelte @@ -9,13 +9,15 @@ import { editorAddConstraint, editorDeleteConstraint, editorModifyConstraint } from 'dbgate-tools'; import TextField from '../forms/TextField.svelte'; import SelectField from '../forms/SelectField.svelte'; + import { _t, __t } from '../translations'; + import _ from 'lodash'; export let constraintInfo; export let setTableInfo; export let tableInfo; export let constraintLabel; export let constraintType; - export let constraintNameLabel = 'Constraint name'; + export let constraintNameLabel = _t('tableEditor.constraintName', { defaultMessage: 'Constraint name' }); export let getExtractConstraintProps; export let hideConstraintName = false; @@ -41,7 +43,7 @@ {constraintInfo ? `Edit ${constraintLabel}` : `Add ${constraintLabel}`}{constraintInfo ? _t('tableEdit.editConstraintLabel', { defaultMessage: 'Edit {constraintLabel}', values: { constraintLabel: _.isFunction(constraintLabel) ? constraintLabel() : constraintLabel } }) : _t('tableEdit.addConstraintLabel', { defaultMessage: 'Add {constraintLabel}', values: { constraintLabel: _.isFunction(constraintLabel) ? constraintLabel() : constraintLabel } })}
@@ -65,7 +67,7 @@ {#each columns as column, index}
-
Column {index + 1}
+
{_t('common.column', { defaultMessage: 'Column ' })}{index + 1}
{#key column.columnName} { const x = [...columns]; @@ -104,11 +106,11 @@ {/each}
-
Add new column
+
{_t('columnsConstraintEditor.addNewColumn', { defaultMessage: 'Add new column' })}
{#key columns.length} { @@ -123,7 +125,7 @@ isNative options={[ { - label: 'Choose column', + label: _t('columnsConstraintEditor.chooseColumn', { defaultMessage: 'Choose column' }) , value: '', }, ...(tableInfo?.columns?.map(col => ({ @@ -139,7 +141,7 @@ { closeCurrentModal(); @@ -151,11 +153,11 @@ }} /> - + {#if constraintInfo} { closeCurrentModal(); diff --git a/packages/web/src/tableeditor/DataTypeEditor.svelte b/packages/web/src/tableeditor/DataTypeEditor.svelte index c518475f0..6693c030c 100644 --- a/packages/web/src/tableeditor/DataTypeEditor.svelte +++ b/packages/web/src/tableeditor/DataTypeEditor.svelte @@ -1,6 +1,7 @@ - + diff --git a/packages/web/src/tableeditor/ForeignKeyEditorModal.svelte b/packages/web/src/tableeditor/ForeignKeyEditorModal.svelte index 7d4c82871..e6a6eac54 100644 --- a/packages/web/src/tableeditor/ForeignKeyEditorModal.svelte +++ b/packages/web/src/tableeditor/ForeignKeyEditorModal.svelte @@ -60,11 +60,11 @@ - {constraintInfo ? `Edit foreign key` : `Add foreign key`} + {constraintInfo ? _t('foreignKeyEditor.editForeignKey', { defaultMessage: 'Edit foreign key' }) : _t('foreignKeyEditor.addForeignKey', { defaultMessage: 'Add foreign key' })}
-
Constraint name
+
{_t('tableEditor.constraintName', { defaultMessage: 'Constraint name' })}
-
Referenced table
+
{_t('foreignKeyEditor.referencedTable', { defaultMessage: 'Referenced table' })}
-
On update action
+
{_t('foreignKeyEditor.onUpdateAction', { defaultMessage: 'On update action' })}
-
On delete action
+
{_t('foreignKeyEditor.onDeleteAction', { defaultMessage: 'On delete action' })}
- Base column - {tableInfo.pureName} + {_t('foreignKeyEditor.baseColumn', { defaultMessage: 'Base column - ' })}{tableInfo.pureName}
- Ref column - {refTableName || '(table not set)'} + {_t('foreignKeyEditor.refColumn', { defaultMessage: 'Ref column - ' })}{refTableName || _t('foreignKeyEditor.tableNotSet', { defaultMessage: '(table not set)' })}
@@ -195,7 +195,7 @@ { columns = [...columns, {}]; @@ -217,12 +217,12 @@ }} /> - + {#if constraintInfo} { closeCurrentModal(); setTableInfo(tbl => editorDeleteConstraint(tbl, constraintInfo)); diff --git a/packages/web/src/tableeditor/IndexEditorModal.svelte b/packages/web/src/tableeditor/IndexEditorModal.svelte index a86186ebc..df1dff3f4 100644 --- a/packages/web/src/tableeditor/IndexEditorModal.svelte +++ b/packages/web/src/tableeditor/IndexEditorModal.svelte @@ -3,6 +3,7 @@ import FormCheckboxField from '../forms/FormCheckboxField.svelte'; import SelectField from '../forms/SelectField.svelte'; import TextField from '../forms/TextField.svelte'; + import { _t } from '../translations'; import ColumnsConstraintEditorModal from './ColumnsConstraintEditorModal.svelte'; @@ -29,7 +30,7 @@ {...$$restProps} constraintLabel="index" constraintType="index" - constraintNameLabel="Index name" + constraintNameLabel={_t('indexEditor.indexName', { defaultMessage: 'Index name' })} {constraintInfo} {setTableInfo} {tableInfo} @@ -61,15 +62,14 @@
- (isUnique = e.target.checked)} disabled={isReadOnly} /> Is unique - index + (isUnique = e.target.checked)} disabled={isReadOnly} /> {_t('indexEditor.isUnique', { defaultMessage: 'Is unique index' })}
{#if driver?.dialect?.filteredIndexes}
-
Filtered index condition
+
{_t('indexEditor.filteredIndexCondition', { defaultMessage: 'Filtered index condition' })}
import ColumnsConstraintEditorModal from './ColumnsConstraintEditorModal.svelte'; + import { _t } from '../translations'; export let constraintInfo; export let setTableInfo; export let tableInfo; export let driver; - export let constraintLabel = 'primary key'; + export let constraintLabel = _t('tableEditor.primaryKey', { defaultMessage: 'primary key' }); export let constraintType = 'primaryKey'; diff --git a/packages/web/src/tableeditor/PrimaryKeyLikeListControl.svelte b/packages/web/src/tableeditor/PrimaryKeyLikeListControl.svelte index 3f8de6aac..61e353ea0 100644 --- a/packages/web/src/tableeditor/PrimaryKeyLikeListControl.svelte +++ b/packages/web/src/tableeditor/PrimaryKeyLikeListControl.svelte @@ -9,13 +9,14 @@ import { showModal } from '../modals/modalTools'; import PrimaryKeyEditorModal from './PrimaryKeyEditorModal.svelte'; + import { _t } from '../translations'; export let tableInfo; export let setTableInfo; export let isWritable; export let driver; - export let constraintLabel = 'primary key'; + export let constraintLabel = _t('tableEditor.primaryKey', { defaultMessage: 'primary key' }); export let constraintType = 'primaryKey'; $: columns = tableInfo?.columns; @@ -35,7 +36,12 @@ 0 ? addKeyConstraint : null} hideDisplayName={driver?.dialect?.anonymousPrimaryKey} clickable @@ -51,7 +57,7 @@ columns={[ { fieldName: 'columns', - header: 'Columns', + header: _t('tableEditor.columns', { defaultMessage: 'Columns' }), slot: 0, sortable: true, }, @@ -70,7 +76,7 @@ onClick={e => { e.stopPropagation(); setTableInfo(tbl => editorDeleteConstraint(tbl, row)); - }}>Remove{_t('common.remove', { defaultMessage: 'Remove' })} diff --git a/packages/web/src/tableeditor/TableEditor.svelte b/packages/web/src/tableeditor/TableEditor.svelte index 8b7d54e4b..95da33274 100644 --- a/packages/web/src/tableeditor/TableEditor.svelte +++ b/packages/web/src/tableeditor/TableEditor.svelte @@ -3,8 +3,8 @@ registerCommand({ id: 'tableEditor.addColumn', - category: 'Table editor', - name: 'Add column', + category: __t('tableEditor', { defaultMessage: 'Table editor'}), + name: __t('tableEditor.addColumn', { defaultMessage: 'Add column'}), icon: 'icon add-column', toolbar: true, isRelatedToTab: true, @@ -14,8 +14,8 @@ registerCommand({ id: 'tableEditor.addPrimaryKey', - category: 'Table editor', - name: 'Add primary key', + category: __t('tableEditor', { defaultMessage: 'Table editor'}), + name: __t('tableEditor.addPrimaryKey', { defaultMessage: 'Add primary key'}), icon: 'icon add-key', toolbar: true, isRelatedToTab: true, @@ -25,8 +25,8 @@ registerCommand({ id: 'tableEditor.addForeignKey', - category: 'Table editor', - name: 'Add foreign key', + category: __t('tableEditor', { defaultMessage: 'Table editor'}), + name: __t('tableEditor.addForeignKey', { defaultMessage: 'Add foreign key'}), icon: 'icon add-key', toolbar: true, isRelatedToTab: true, @@ -36,8 +36,8 @@ registerCommand({ id: 'tableEditor.addIndex', - category: 'Table editor', - name: 'Add index', + category: __t('tableEditor', { defaultMessage: 'Table editor'}), + name: __t('tableEditor.addIndex', { defaultMessage: 'Add index'}), icon: 'icon add-key', toolbar: true, isRelatedToTab: true, @@ -47,8 +47,8 @@ registerCommand({ id: 'tableEditor.addUnique', - category: 'Table editor', - name: 'Add unique', + category: __t('tableEditor', { defaultMessage: 'Table editor'}), + name: __t('tableEditor.addUnique', { defaultMessage: 'Add unique'}), icon: 'icon add-key', toolbar: true, isRelatedToTab: true, @@ -83,6 +83,7 @@ import UniqueEditorModal from './UniqueEditorModal.svelte'; import ObjectFieldsEditor from '../elements/ObjectFieldsEditor.svelte'; import PrimaryKeyLikeListControl from './PrimaryKeyLikeListControl.svelte'; + import { __t, _t } from '../translations'; export const activator = createActivator('TableEditor', true); @@ -171,9 +172,9 @@ {#if tableInfo && (tableFormOptions || isCreateTable)} {#key resetCounter} = 0 ? schemaList : null} values={_.pick(tableInfo, ['schemaName', 'pureName', ...(tableFormOptions ?? []).map(x => x.name)])} onChangeValues={vals => { @@ -187,15 +188,15 @@ ({ ...x, ordinal: index + 1 }))} - title={`Columns (${columns?.length || 0})`} - emptyMessage="No columns defined" + title={_t('tableEditor.columns', { defaultMessage: 'Columns ({columnCount})', values: { columnCount: columns?.length || 0 } })} + emptyMessage={_t('tableEditor.nocolumnsdefined', { defaultMessage: 'No columns defined' })} clickable on:clickrow={e => showModal(ColumnEditorModal, { columnInfo: e.detail, tableInfo, setTableInfo, driver })} onAddNew={isWritable ? addColumn : null} displayNameFieldName="columnName" multipleItemsActions={[ { - text: 'Remove', + text: _t('tableEditor.remove', { defaultMessage: 'Remove' }), icon: 'icon delete', onClick: selected => { setTableInfo(tbl => { @@ -205,7 +206,7 @@ }, }, { - text: 'Copy names', + text: _t('tableEditor.copynames', { defaultMessage: 'Copy names' }), icon: 'icon copy', onClick: selected => { const names = selected.map(x => x.columnName).join('\n'); @@ -213,7 +214,7 @@ }, }, { - text: 'Copy definitions', + text: _t('tableEditor.copydefinitions', { defaultMessage: 'Copy definitions' }), icon: 'icon copy', onClick: selected => { const names = selected @@ -226,55 +227,55 @@ columns={[ !driver?.dialect?.specificNullabilityImplementation && { fieldName: 'notNull', - header: 'Nullability', + header: _t('tableEditor.nullability', { defaultMessage: 'Nullability' }), sortable: true, slot: 0, }, { fieldName: 'dataType', - header: 'Data Type', + header: _t('tableEditor.dataType', { defaultMessage: 'Data type' }), sortable: true, filterable: true, }, { fieldName: 'defaultValue', - header: 'Default value', + header: _t('tableEditor.defaultValue', { defaultMessage: 'Default value' }), sortable: true, filterable: true, }, driver?.dialect?.columnProperties?.isSparse && { fieldName: 'isSparse', - header: 'Is Sparse', + header: _t('tableEditor.isSparse', { defaultMessage: 'Is Sparse' }), sortable: true, slot: 1, }, { fieldName: 'computedExpression', - header: 'Computed Expression', + header: _t('tableEditor.computedExpression', { defaultMessage: 'Computed Expression' }), sortable: true, filterable: true, }, driver?.dialect?.columnProperties?.isPersisted && { fieldName: 'isPersisted', - header: 'Is Persisted', + header: _t('tableEditor.isPersisted', { defaultMessage: 'Is Persisted' }), sortable: true, slot: 2, }, driver?.dialect?.columnProperties?.isUnsigned && { fieldName: 'isUnsigned', - header: 'Unsigned', + header: _t('tableEditor.isUnsigned', { defaultMessage: 'Unsigned' }), sortable: true, slot: 4, }, driver?.dialect?.columnProperties?.isZerofill && { fieldName: 'isZerofill', - header: 'Zero fill', + header: _t('tableEditor.isZeroFill', { defaultMessage: 'Zero fill' }), sortable: true, slot: 5, }, driver?.dialect?.columnProperties?.columnComment && { fieldName: 'columnComment', - header: 'Comment', + header: _t('tableEditor.columnComment', { defaultMessage: 'Comment' }), sortable: true, filterable: true, }, @@ -287,19 +288,19 @@ : null, ]} > - {row?.notNull ? 'NOT NULL' : 'NULL'} - {row?.isSparse ? 'YES' : 'NO'} - {row?.isPersisted ? 'YES' : 'NO'} + {row?.notNull ? _t('tableEditor.notnull', { defaultMessage: 'NOT NULL' }) : _t('tableEditor.null', { defaultMessage: 'NULL' })} + {row?.isSparse ? _t('tableEditor.yes', { defaultMessage: 'YES' }) : _t('tableEditor.no', { defaultMessage: 'NO' })} + {row?.isPersisted ? _t('tableEditor.yes', { defaultMessage: 'YES' }) : _t('tableEditor.no', { defaultMessage: 'NO' })} { e.stopPropagation(); setTableInfo(tbl => editorDeleteColumn(tbl, row)); - }}>Remove{_t('tableEditor.remove', { defaultMessage: 'Remove' })} - {row?.isUnsigned ? 'YES' : 'NO'} - {row?.isZerofill ? 'YES' : 'NO'} + {row?.isUnsigned ? _t('tableEditor.yes', { defaultMessage: 'YES' }) : _t('tableEditor.no', { defaultMessage: 'NO' })} + {row?.isZerofill ? _t('tableEditor.yes', { defaultMessage: 'YES' }) : _t('tableEditor.no', { defaultMessage: 'NO' })} @@ -320,20 +321,20 @@ 0 ? addIndex : null} - title={`Indexes (${indexes?.length || 0})`} - emptyMessage={isWritable ? 'No index defined' : null} + title={_t('tableEditor.indexes', { defaultMessage: 'Indexes ({indexCount})', values: { indexCount: indexes?.length || 0 } })} + emptyMessage={isWritable ? _t('tableEditor.noindexdefined', { defaultMessage: 'No index defined' }) : null} clickable on:clickrow={e => showModal(IndexEditorModal, { constraintInfo: e.detail, tableInfo, setTableInfo, driver })} columns={[ { fieldName: 'columns', - header: 'Columns', + header: _t('tableEditor.columns', { defaultMessage: 'Columns' }), slot: 0, sortable: true, }, { fieldName: 'unique', - header: 'Unique', + header: _t('tableEditor.unique', { defaultMessage: 'Unique' }), slot: 1, sortable: true, }, @@ -347,13 +348,13 @@ > {row?.columns.map(x => x.columnName).join(', ')} - {row?.isUnique ? 'YES' : 'NO'} + {row?.isUnique ? _t('tableEditor.yes', { defaultMessage: 'YES' }) : _t('tableEditor.no', { defaultMessage: 'NO' })} { e.stopPropagation(); setTableInfo(tbl => editorDeleteConstraint(tbl, row)); - }}>Remove{_t('common.remove', { defaultMessage: 'Remove' })} @@ -363,14 +364,14 @@ 0 ? addUnique : null} - title={`Unique constraints (${uniques?.length || 0})`} - emptyMessage={isWritable ? 'No unique defined' : null} + title={_t('tableEditor.uniqueConstraints', { defaultMessage: 'Unique constraints ({constraintCount})', values: { constraintCount: uniques?.length || 0 } })} + emptyMessage={isWritable ? _t('tableEditor.nouniquedefined', { defaultMessage: 'No unique defined' }) : null} clickable on:clickrow={e => showModal(UniqueEditorModal, { constraintInfo: e.detail, tableInfo, setTableInfo })} columns={[ { fieldName: 'columns', - header: 'Columns', + header: _t('tableEditor.columns', { defaultMessage: 'Columns' }), slot: 0, sortable: true, }, @@ -390,7 +391,7 @@ onClick={e => { e.stopPropagation(); setTableInfo(tbl => editorDeleteConstraint(tbl, row)); - }}>Remove{_t('common.remove', { defaultMessage: 'Remove' })} @@ -400,13 +401,13 @@ 0 ? addForeignKey : null} - title={`Foreign keys (${foreignKeys?.length || 0})`} - emptyMessage={isWritable ? 'No foreign key defined' : null} + title={_t('tableEditor.foreignKeys', { defaultMessage: 'Foreign keys ({foreignKeyCount})', values: { foreignKeyCount: foreignKeys?.length || 0 } })} + emptyMessage={isWritable ? _t('tableEditor.noforeignkeydefined', { defaultMessage: 'No foreign key defined' }) : null} clickable onRemove={row => setTableInfo(tbl => editorDeleteConstraint(tbl, row))} on:clickrow={e => showModal(ForeignKeyEditorModal, { constraintInfo: e.detail, tableInfo, setTableInfo, dbInfo })} /> - + {/if}
diff --git a/packages/web/src/tableeditor/UniqueEditorModal.svelte b/packages/web/src/tableeditor/UniqueEditorModal.svelte index c136f7e43..5328671e3 100644 --- a/packages/web/src/tableeditor/UniqueEditorModal.svelte +++ b/packages/web/src/tableeditor/UniqueEditorModal.svelte @@ -1,5 +1,6 @@