mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-17 23:45:59 +00:00
Merge pull request #1252 from dbgate/feature/translation2
Feature/translation2
This commit is contained in:
@@ -8,6 +8,7 @@
|
||||
import Link from '../elements/Link.svelte';
|
||||
import { focusedConnectionOrDatabase } from '../stores';
|
||||
import { tick } from 'svelte';
|
||||
import { _val } from '../translations';
|
||||
|
||||
export let list;
|
||||
export let module;
|
||||
@@ -40,12 +41,12 @@
|
||||
|
||||
$: listTranslated = (list || []).map(data => ({
|
||||
...data,
|
||||
group: data?.group && _.isFunction(data.group) ? data.group() : data.group,
|
||||
title: data?.title && _.isFunction(data.title) ? data.title() : data.title,
|
||||
description: data?.description && _.isFunction(data.description) ? data.description() : data.description,
|
||||
group: data?.group && _val(data.group),
|
||||
title: data?.title && _val(data.title),
|
||||
description: data?.description && _val(data.description),
|
||||
args: (data?.args || []).map(x => ({
|
||||
...x,
|
||||
label: x?.label && _.isFunction(x.label) ? x.label() : x.label,
|
||||
label: x?.label && _val(x.label),
|
||||
})),
|
||||
}));
|
||||
|
||||
|
||||
@@ -446,8 +446,7 @@ await dbgateApi.executeQuery(${JSON.stringify(
|
||||
driver?.databaseEngineTypes?.includes('document') && {
|
||||
onClick: handleNewCollection,
|
||||
text: _t('database.newCollection', {
|
||||
defaultMessage: 'New {collectionLabel}',
|
||||
values: { collectionLabel: driver?.collectionSingularLabel ?? 'collection/container' },
|
||||
defaultMessage: 'New collection/container'
|
||||
}),
|
||||
},
|
||||
hasPermission(`dbops/query`) &&
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<script lang="ts" context="module">
|
||||
import { copyTextToClipboard } from '../utility/clipboard';
|
||||
import { _t, _val } from '../translations';
|
||||
|
||||
export const extractKey = ({ schemaName, pureName }) => (schemaName ? `${schemaName}.${pureName}` : pureName);
|
||||
export const createMatcher =
|
||||
@@ -69,13 +70,13 @@
|
||||
|
||||
function createScriptTemplatesSubmenu(objectTypeField) {
|
||||
return {
|
||||
label: 'SQL template',
|
||||
label: _t('dbObject.sqlTemplate', { defaultMessage: 'SQL template' }),
|
||||
submenu: getSupportedScriptTemplates(objectTypeField),
|
||||
};
|
||||
}
|
||||
|
||||
interface DbObjMenuItem {
|
||||
label?: string;
|
||||
label?: string | (() => string);
|
||||
tab?: string;
|
||||
forceNewTab?: boolean;
|
||||
initialData?: any;
|
||||
@@ -113,19 +114,19 @@
|
||||
divider: true,
|
||||
},
|
||||
isProApp() && {
|
||||
label: 'Design query',
|
||||
label: _t('dbObject.designQuery', { defaultMessage: 'Design query' }),
|
||||
isQueryDesigner: true,
|
||||
requiresWriteAccess: true,
|
||||
},
|
||||
isProApp() && {
|
||||
label: 'Design perspective query',
|
||||
label: _t('dbObject.designPerspectiveQuery', { defaultMessage: 'Design perspective query' }),
|
||||
tab: 'PerspectiveTab',
|
||||
forceNewTab: true,
|
||||
icon: 'img perspective',
|
||||
},
|
||||
createScriptTemplatesSubmenu('tables'),
|
||||
{
|
||||
label: 'SQL generator',
|
||||
label: _t('dbObject.sqlGenerator', { defaultMessage: 'SQL generator' }),
|
||||
submenu: [
|
||||
{
|
||||
label: 'CREATE TABLE',
|
||||
@@ -154,33 +155,33 @@
|
||||
divider: true,
|
||||
},
|
||||
hasPermission('dbops/model/edit') && {
|
||||
label: 'Drop table',
|
||||
label: _t('dbObject.dropTable', { defaultMessage: 'Drop table' }),
|
||||
isDrop: true,
|
||||
requiresWriteAccess: true,
|
||||
},
|
||||
hasPermission('dbops/table/rename') &&
|
||||
!driver?.dialect.disableRenameTable && {
|
||||
label: 'Rename table',
|
||||
label: _t('dbObject.renameTable', { defaultMessage: 'Rename table' }),
|
||||
isRename: true,
|
||||
requiresWriteAccess: true,
|
||||
},
|
||||
hasPermission('dbops/table/truncate') && {
|
||||
label: 'Truncate table',
|
||||
label: _t('dbObject.truncateTable', { defaultMessage: 'Truncate table' }),
|
||||
isTruncate: true,
|
||||
requiresWriteAccess: true,
|
||||
},
|
||||
{
|
||||
label: 'Copy table name',
|
||||
label: _t('dbObject.copyTableName', { defaultMessage: 'Copy table name' }),
|
||||
isCopyTableName: true,
|
||||
requiresWriteAccess: false,
|
||||
},
|
||||
hasPermission('dbops/table/backup') && {
|
||||
label: 'Create table backup',
|
||||
label: _t('dbObject.createTableBackup', { defaultMessage: 'Create table backup' }),
|
||||
isDuplicateTable: true,
|
||||
requiresWriteAccess: true,
|
||||
},
|
||||
hasPermission('dbops/model/view') && {
|
||||
label: 'Show diagram',
|
||||
label: _t('dbObject.showDiagram', { defaultMessage: 'Show diagram' }),
|
||||
isDiagram: true,
|
||||
},
|
||||
{
|
||||
@@ -204,18 +205,18 @@
|
||||
divider: true,
|
||||
},
|
||||
isProApp() && {
|
||||
label: 'Design query',
|
||||
label: _t('dbObject.designQuery', { defaultMessage: 'Design query' }),
|
||||
isQueryDesigner: true,
|
||||
},
|
||||
isProApp() && {
|
||||
label: 'Design perspective query',
|
||||
label: _t('dbObject.designPerspectiveQuery', { defaultMessage: 'Design perspective query' }),
|
||||
tab: 'PerspectiveTab',
|
||||
forceNewTab: true,
|
||||
icon: 'img perspective',
|
||||
},
|
||||
createScriptTemplatesSubmenu('views'),
|
||||
{
|
||||
label: 'SQL generator',
|
||||
label: _t('dbObject.sqlGenerator', { defaultMessage: 'SQL generator' }),
|
||||
submenu: [
|
||||
{
|
||||
label: 'CREATE VIEW',
|
||||
@@ -235,12 +236,12 @@
|
||||
divider: true,
|
||||
},
|
||||
hasPermission('dbops/model/edit') && {
|
||||
label: 'Drop view',
|
||||
label: _t('dbObject.dropView', { defaultMessage: 'Drop view' }),
|
||||
isDrop: true,
|
||||
requiresWriteAccess: true,
|
||||
},
|
||||
hasPermission('dbops/model/edit') && {
|
||||
label: 'Rename view',
|
||||
label: _t('dbObject.renameView', { defaultMessage: 'Rename view' }),
|
||||
isRename: true,
|
||||
requiresWriteAccess: true,
|
||||
},
|
||||
@@ -260,12 +261,12 @@
|
||||
divider: true,
|
||||
},
|
||||
hasPermission('dbops/model/edit') && {
|
||||
label: 'Drop view',
|
||||
label: _t('dbObject.dropView', { defaultMessage: 'Drop view' }),
|
||||
isDrop: true,
|
||||
requiresWriteAccess: true,
|
||||
},
|
||||
hasPermission('dbops/model/edit') && {
|
||||
label: 'Rename view',
|
||||
label: _t('dbObject.renameView', { defaultMessage: 'Rename view' }),
|
||||
isRename: true,
|
||||
requiresWriteAccess: true,
|
||||
},
|
||||
@@ -273,12 +274,12 @@
|
||||
divider: true,
|
||||
},
|
||||
{
|
||||
label: 'Query designer',
|
||||
label: _t('dbObject.queryDesigner', { defaultMessage: 'Query designer' }),
|
||||
isQueryDesigner: true,
|
||||
},
|
||||
createScriptTemplatesSubmenu('matviews'),
|
||||
{
|
||||
label: 'SQL generator',
|
||||
label: _t('dbObject.sqlGenerator', { defaultMessage: 'SQL generator' }),
|
||||
submenu: [
|
||||
{
|
||||
label: 'CREATE MATERIALIZED VIEW',
|
||||
@@ -306,7 +307,7 @@
|
||||
case 'queries':
|
||||
return [
|
||||
{
|
||||
label: 'Open data',
|
||||
label: _t('dbObject.openData', { defaultMessage: 'Open data' }),
|
||||
tab: 'QueryDataTab',
|
||||
forceNewTab: true,
|
||||
},
|
||||
@@ -318,18 +319,18 @@
|
||||
divider: true,
|
||||
},
|
||||
hasPermission('dbops/model/edit') && {
|
||||
label: 'Drop procedure',
|
||||
label: _t('dbObject.dropProcedure', { defaultMessage: 'Drop procedure' }),
|
||||
isDrop: true,
|
||||
requiresWriteAccess: true,
|
||||
},
|
||||
hasPermission('dbops/model/edit') && {
|
||||
label: 'Rename procedure',
|
||||
label: _t('dbObject.renameProcedure', { defaultMessage: 'Rename procedure' }),
|
||||
isRename: true,
|
||||
requiresWriteAccess: true,
|
||||
},
|
||||
createScriptTemplatesSubmenu('procedures'),
|
||||
{
|
||||
label: 'SQL generator',
|
||||
label: _t('dbObject.sqlGenerator', { defaultMessage: 'SQL generator' }),
|
||||
submenu: [
|
||||
{
|
||||
label: 'CREATE PROCEDURE',
|
||||
@@ -352,7 +353,7 @@
|
||||
return [
|
||||
...defaultDatabaseObjectAppObjectActions['triggers'],
|
||||
hasPermission('dbops/model/edit') && {
|
||||
label: 'Drop trigger',
|
||||
label: _t('dbObject.dropTrigger', { defaultMessage: 'Drop trigger' }),
|
||||
isDrop: true,
|
||||
requiresWriteAccess: true,
|
||||
},
|
||||
@@ -360,7 +361,7 @@
|
||||
divider: true,
|
||||
},
|
||||
{
|
||||
label: 'SQL generator',
|
||||
label: _t('dbObject.sqlGenerator', { defaultMessage: 'SQL generator' }),
|
||||
submenu: [
|
||||
{
|
||||
label: 'CREATE TRIGGER',
|
||||
@@ -384,7 +385,7 @@
|
||||
divider: true,
|
||||
},
|
||||
isProApp() && {
|
||||
label: 'Design perspective query',
|
||||
label: _t('dbObject.designPerspectiveQuery', { defaultMessage: 'Design perspective query' }),
|
||||
tab: 'PerspectiveTab',
|
||||
forceNewTab: true,
|
||||
icon: 'img perspective',
|
||||
@@ -395,17 +396,17 @@
|
||||
functionName: 'tableReader',
|
||||
},
|
||||
hasPermission('dbops/model/edit') && {
|
||||
label: `Drop ${driver?.collectionSingularLabel ?? 'collection/container'}`,
|
||||
label: _t('dbObject.dropCollection', { defaultMessage: 'Drop collection/container'}),
|
||||
isDropCollection: true,
|
||||
requiresWriteAccess: true,
|
||||
},
|
||||
hasPermission('dbops/table/rename') && {
|
||||
label: `Rename ${driver?.collectionSingularLabel ?? 'collection/container'}`,
|
||||
label: _t('dbObject.renameCollection', { defaultMessage: 'Rename collection/container'}),
|
||||
isRenameCollection: true,
|
||||
requiresWriteAccess: true,
|
||||
},
|
||||
hasPermission('dbops/table/backup') && {
|
||||
label: `Create ${driver?.collectionSingularLabel ?? 'collection/container'} backup`,
|
||||
label: _t('dbObject.createCollectionBackup', { defaultMessage: 'Create collection/container backup'}),
|
||||
isDuplicateCollection: true,
|
||||
requiresWriteAccess: true,
|
||||
},
|
||||
@@ -418,7 +419,7 @@
|
||||
const menu: DbObjMenuItem[] = [
|
||||
...defaultDatabaseObjectAppObjectActions['schedulerEvents'],
|
||||
hasPermission('dbops/model/edit') && {
|
||||
label: 'Drop event',
|
||||
label: _t('dbObject.dropEvent', { defaultMessage: 'Drop event' }),
|
||||
isDrop: true,
|
||||
requiresWriteAccess: true,
|
||||
},
|
||||
@@ -426,12 +427,12 @@
|
||||
|
||||
if (data?.status === 'ENABLED') {
|
||||
menu.push({
|
||||
label: 'Disable',
|
||||
label: _t('dbObject.disable', { defaultMessage: 'Disable' }),
|
||||
isDisableEvent: true,
|
||||
});
|
||||
} else {
|
||||
menu.push({
|
||||
label: 'Enable',
|
||||
label: _t('dbObject.enable', { defaultMessage: 'Enable' }),
|
||||
isEnableEvent: true,
|
||||
});
|
||||
}
|
||||
@@ -441,7 +442,7 @@
|
||||
divider: true,
|
||||
},
|
||||
{
|
||||
label: 'SQL generator',
|
||||
label: _t('dbObject.sqlGenerator', { defaultMessage: 'SQL generator' }),
|
||||
submenu: [
|
||||
{
|
||||
label: 'CREATE SCHEDULER EVENT',
|
||||
@@ -474,7 +475,7 @@
|
||||
if (menu.isQueryDesigner) {
|
||||
openNewTab(
|
||||
{
|
||||
title: 'Query #',
|
||||
title: _t('dbObject.query', { defaultMessage: 'Query #' }),
|
||||
icon: 'img query-design',
|
||||
tabComponent: 'QueryDesignTab',
|
||||
focused: true,
|
||||
@@ -499,7 +500,7 @@
|
||||
} else if (menu.isDiagram) {
|
||||
openNewTab(
|
||||
{
|
||||
title: 'Diagram #',
|
||||
title: _t('dbObject.diagram', { defaultMessage: 'Diagram #' }),
|
||||
icon: 'img diagram',
|
||||
tabComponent: 'DiagramTab',
|
||||
props: {
|
||||
@@ -589,7 +590,7 @@
|
||||
});
|
||||
} else if (menu.isDropCollection) {
|
||||
showModal(ConfirmModal, {
|
||||
message: `Really drop collection ${data.pureName}?`,
|
||||
message: _t('dbObject.confirmDropCollection', { defaultMessage: 'Really drop collection {name}?', values: { name: data.pureName } }),
|
||||
onConfirm: async () => {
|
||||
const dbid = _.pick(data, ['conid', 'database']);
|
||||
runOperationOnDatabase(dbid, {
|
||||
@@ -603,8 +604,8 @@
|
||||
} else if (menu.isRenameCollection) {
|
||||
const driver = await getDriver();
|
||||
showModal(InputTextModal, {
|
||||
label: `New ${driver?.collectionSingularLabel ?? 'collection/container'} name`,
|
||||
header: `Rename ${driver?.collectionSingularLabel ?? 'collection/container'}`,
|
||||
label: _t('dbObject.newCollectionName', { defaultMessage: 'New collection/container name' }),
|
||||
header: _t('dbObject.renameCollection', { defaultMessage: 'Rename collection/container' }),
|
||||
value: data.pureName,
|
||||
onConfirm: async newName => {
|
||||
const dbid = _.pick(data, ['conid', 'database']);
|
||||
@@ -620,7 +621,7 @@
|
||||
const driver = await getDriver();
|
||||
|
||||
showModal(ConfirmModal, {
|
||||
message: `Really create ${driver?.collectionSingularLabel ?? 'collection/container'} copy named ${newName}?`,
|
||||
message: _t('dbObject.confirmCloneCollection', { defaultMessage: 'Really create collection/container copy named {name}?', values: { name: newName } }),
|
||||
onConfirm: async () => {
|
||||
const dbid = _.pick(data, ['conid', 'database']);
|
||||
runOperationOnDatabase(dbid, {
|
||||
@@ -718,7 +719,7 @@
|
||||
|
||||
const filteredSumenus = coreMenus.map(item => {
|
||||
if (!item.submenu) {
|
||||
return item;
|
||||
return { ...item , label: _val(item.label)};
|
||||
}
|
||||
return {
|
||||
...item,
|
||||
@@ -768,7 +769,7 @@
|
||||
openNewTab(
|
||||
{
|
||||
// title: getObjectTitle(connection, schemaName, pureName),
|
||||
title: tabComponent ? getObjectTitle(connection, schemaName, pureName) : 'Query #',
|
||||
title: tabComponent ? getObjectTitle(connection, schemaName, pureName) : _t('dbObject.query', { defaultMessage: 'Query #' }),
|
||||
focused: tabComponent == null,
|
||||
tooltip,
|
||||
icon:
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { __t } from '../translations';
|
||||
export function matchDatabaseObjectAppObject(obj1, obj2) {
|
||||
return (
|
||||
obj1?.objectTypeField == obj2?.objectTypeField &&
|
||||
@@ -11,12 +12,12 @@ export function matchDatabaseObjectAppObject(obj1, obj2) {
|
||||
function getTableLikeActions(dataTab) {
|
||||
return [
|
||||
{
|
||||
label: 'Open data',
|
||||
label: __t('dbObject.openData', { defaultMessage: 'Open data' }),
|
||||
tab: dataTab,
|
||||
defaultActionId: 'openTable',
|
||||
},
|
||||
{
|
||||
label: 'Open raw data',
|
||||
label: __t('dbObject.openRawData', { defaultMessage: 'Open raw data' }),
|
||||
tab: dataTab,
|
||||
defaultActionId: 'openRawTable',
|
||||
isRawMode: true,
|
||||
@@ -33,13 +34,13 @@ function getTableLikeActions(dataTab) {
|
||||
// defaultActionId: 'openForm',
|
||||
// },
|
||||
{
|
||||
label: 'Open structure',
|
||||
label: __t('dbObject.openStructure', { defaultMessage: 'Open structure' }),
|
||||
tab: 'TableStructureTab',
|
||||
icon: 'img table-structure',
|
||||
defaultActionId: 'openStructure',
|
||||
},
|
||||
{
|
||||
label: 'Show SQL',
|
||||
label: __t('dbObject.showSql', { defaultMessage: 'Show SQL' }),
|
||||
tab: 'SqlObjectTab',
|
||||
defaultActionId: 'showSql',
|
||||
icon: 'img sql-file',
|
||||
@@ -53,7 +54,7 @@ export const defaultDatabaseObjectAppObjectActions = {
|
||||
matviews: getTableLikeActions('ViewDataTab'),
|
||||
procedures: [
|
||||
{
|
||||
label: 'Show SQL',
|
||||
label: __t('dbObject.showSql', { defaultMessage: 'Show SQL' }),
|
||||
tab: 'SqlObjectTab',
|
||||
defaultActionId: 'showSql',
|
||||
icon: 'img sql-file',
|
||||
@@ -61,7 +62,7 @@ export const defaultDatabaseObjectAppObjectActions = {
|
||||
],
|
||||
functions: [
|
||||
{
|
||||
label: 'Show SQL',
|
||||
label: __t('dbObject.showSql', { defaultMessage: 'Show SQL' }),
|
||||
tab: 'SqlObjectTab',
|
||||
defaultActionId: 'showSql',
|
||||
icon: 'img sql-file',
|
||||
@@ -69,7 +70,7 @@ export const defaultDatabaseObjectAppObjectActions = {
|
||||
],
|
||||
triggers: [
|
||||
{
|
||||
label: 'Show SQL',
|
||||
label: __t('dbObject.showSql', { defaultMessage: 'Show SQL' }),
|
||||
tab: 'SqlObjectTab',
|
||||
defaultActionId: 'showSql',
|
||||
icon: 'img sql-file',
|
||||
@@ -77,12 +78,12 @@ export const defaultDatabaseObjectAppObjectActions = {
|
||||
],
|
||||
collections: [
|
||||
{
|
||||
label: 'Open data',
|
||||
label: __t('dbObject.openData', { defaultMessage: 'Open data' }),
|
||||
tab: 'CollectionDataTab',
|
||||
defaultActionId: 'openTable',
|
||||
},
|
||||
{
|
||||
label: 'Open JSON',
|
||||
label: __t('dbObject.openJson', { defaultMessage: 'Open JSON' }),
|
||||
tab: 'CollectionDataTab',
|
||||
defaultActionId: 'openJson',
|
||||
initialData: {
|
||||
@@ -94,7 +95,7 @@ export const defaultDatabaseObjectAppObjectActions = {
|
||||
],
|
||||
schedulerEvents: [
|
||||
{
|
||||
label: 'Show SQL',
|
||||
label: __t('dbObject.showSql', { defaultMessage: 'Show SQL' }),
|
||||
tab: 'SqlObjectTab',
|
||||
defaultActionId: 'showSql',
|
||||
icon: 'img sql-file',
|
||||
@@ -102,7 +103,7 @@ export const defaultDatabaseObjectAppObjectActions = {
|
||||
],
|
||||
queries: [
|
||||
{
|
||||
label: 'Show query',
|
||||
label: __t('dbObject.showQuery', { defaultMessage: 'Show query' }),
|
||||
tab: 'QueryDataTab',
|
||||
defaultActionId: 'showAppQuery',
|
||||
icon: 'img app-query',
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<script context="module">
|
||||
function getCommandTitle(command) {
|
||||
let res = _.isFunction(command.text) ? command.text() : command.text;
|
||||
let res = _val(command.text);
|
||||
if (command.keyText || command.keyTextFromGroup) {
|
||||
res += ` (${formatKeyText(command.keyText || command.keyTextFromGroup)})`;
|
||||
}
|
||||
@@ -13,6 +13,7 @@
|
||||
import { formatKeyText } from '../utility/common';
|
||||
import ToolStripButton from './ToolStripButton.svelte';
|
||||
import _ from 'lodash';
|
||||
import { _val } from '../translations';
|
||||
|
||||
export let command;
|
||||
export let component = ToolStripButton;
|
||||
@@ -33,6 +34,6 @@
|
||||
{iconAfter}
|
||||
{...$$restProps}
|
||||
>
|
||||
{(_.isFunction(buttonLabel) ? buttonLabel() : buttonLabel) || (_.isFunction(cmd?.toolbarName) ? cmd.toolbarName() : cmd.toolbarName) || (_.isFunction(cmd?.name) ? cmd.name() : cmd.name)}
|
||||
{(_val(buttonLabel) || _val(cmd?.toolbarName) || _val(cmd?.name))}
|
||||
</svelte:component>
|
||||
{/if}
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
import ToolStripCommandButton from './ToolStripCommandButton.svelte';
|
||||
import ToolStripDropDownButton from './ToolStripDropDownButton.svelte';
|
||||
import _ from 'lodash';
|
||||
import { _val } from '../translations';
|
||||
export let quickExportHandlerRef = null;
|
||||
export let command = 'sqlDataGrid.export';
|
||||
export let label = 'Export';
|
||||
@@ -39,7 +40,7 @@
|
||||
|
||||
{#if hasPermission('dbops/export')}
|
||||
{#if quickExportHandlerRef}
|
||||
<ToolStripDropDownButton menu={getExportMenu} label={_.isFunction(label) ? label() : label} icon="icon export" />
|
||||
<ToolStripDropDownButton menu={getExportMenu} label={_val(label)} icon="icon export" />
|
||||
{:else}
|
||||
<ToolStripCommandButton {command} />
|
||||
{/if}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<script context="module">
|
||||
registerCommand({
|
||||
id: 'commandPalette.show',
|
||||
category: 'Command palette',
|
||||
name: 'Show',
|
||||
toolbarName: 'Command palette',
|
||||
category: __t('command.commandPalette', { defaultMessage: 'Command palette' }),
|
||||
name: __t('command.commandPalette.show', { defaultMessage: 'Show' }),
|
||||
toolbarName: __t('command.commandPalette', { defaultMessage: 'Command palette' }),
|
||||
toolbarOrder: 0,
|
||||
keyText: 'F1',
|
||||
toolbar: true,
|
||||
@@ -15,9 +15,9 @@
|
||||
|
||||
registerCommand({
|
||||
id: 'database.search',
|
||||
category: 'Database',
|
||||
toolbarName: 'Database search',
|
||||
name: 'Search',
|
||||
category: __t('command.database', { defaultMessage: 'Database' }),
|
||||
toolbarName: __t('command.database.databaseSearch', { defaultMessage: 'Database search' }),
|
||||
name: __t('command.database.search', { defaultMessage: 'Search' }),
|
||||
keyText: isElectronAvailable() ? 'CtrlOrCommand+P' : 'F3',
|
||||
onClick: () => visibleCommandPalette.set('database'),
|
||||
testEnabled: () => getVisibleCommandPalette() != 'database',
|
||||
@@ -81,7 +81,7 @@
|
||||
import { getLocalStorage } from '../utility/storageCache';
|
||||
import registerCommand from './registerCommand';
|
||||
import { formatKeyText, switchCurrentDatabase } from '../utility/common';
|
||||
import { _val } from '../translations';
|
||||
import { _val, __t } from '../translations';
|
||||
|
||||
let domInput;
|
||||
let filter = '';
|
||||
|
||||
@@ -4,11 +4,12 @@ import getElectron from '../utility/getElectron';
|
||||
import registerCommand from './registerCommand';
|
||||
import { apiCall } from '../utility/api';
|
||||
import { switchCurrentDatabase } from '../utility/common';
|
||||
import { __t } from '../translations';
|
||||
|
||||
registerCommand({
|
||||
id: 'database.changeState',
|
||||
category: 'Database',
|
||||
name: 'Change status',
|
||||
category: __t('command.database', { defaultMessage: 'Database' }),
|
||||
name: __t('command.database.changeStatus', { defaultMessage: 'Change status' }),
|
||||
getSubCommands: () => {
|
||||
const current = getCurrentDatabase();
|
||||
if (!current) return [];
|
||||
|
||||
@@ -3,6 +3,7 @@ import { recentDatabases, currentDatabase, getRecentDatabases } from '../stores'
|
||||
import registerCommand from './registerCommand';
|
||||
import { getConnectionLabel } from 'dbgate-tools';
|
||||
import { switchCurrentDatabase } from '../utility/common';
|
||||
import { __t } from '../translations';
|
||||
|
||||
currentDatabase.subscribe(value => {
|
||||
if (!value) return;
|
||||
@@ -24,8 +25,8 @@ function switchDatabaseCommand(db) {
|
||||
|
||||
registerCommand({
|
||||
id: 'database.switch',
|
||||
category: 'Database',
|
||||
name: 'Change to recent',
|
||||
category: __t('command.database', { defaultMessage: 'Database' }),
|
||||
name: __t('command.database.changeRecent', { defaultMessage: 'Change to recent' }),
|
||||
menuName: 'Switch recent database',
|
||||
keyText: 'CtrlOrCommand+D',
|
||||
getSubCommands: () => getRecentDatabases().map(switchDatabaseCommand),
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { commands } from '../stores';
|
||||
import { invalidateCommandDefinitions } from './invalidateCommands';
|
||||
import _ from 'lodash';
|
||||
import { _val } from '../translations';
|
||||
|
||||
export interface SubCommand {
|
||||
text: string;
|
||||
@@ -44,10 +45,7 @@ export default function registerCommand(command: GlobalCommand) {
|
||||
[command.id]: {
|
||||
text:
|
||||
_.isFunction(command.category) || _.isFunction(command.name)
|
||||
? () =>
|
||||
`${_.isFunction(command.category) ? command.category() : command.category}: ${
|
||||
_.isFunction(command.name) ? command.name() : command.name
|
||||
}`
|
||||
? () => `${_val(command.category)}: ${_val(command.name)}`
|
||||
: `${command.category}: ${command.name}`,
|
||||
...command,
|
||||
enabled: !testEnabled,
|
||||
|
||||
@@ -52,6 +52,7 @@ import { openWebLink } from '../utility/simpleTools';
|
||||
import { _t } from '../translations';
|
||||
import ExportImportConnectionsModal from '../modals/ExportImportConnectionsModal.svelte';
|
||||
import { getBoolSettingsValue } from '../settings/settingsTools';
|
||||
import { __t } from '../translations';
|
||||
|
||||
// function themeCommand(theme: ThemeDefinition) {
|
||||
// return {
|
||||
@@ -69,42 +70,42 @@ import { getBoolSettingsValue } from '../settings/settingsTools';
|
||||
|
||||
registerCommand({
|
||||
id: 'theme.changeTheme',
|
||||
category: 'Theme',
|
||||
name: 'Change',
|
||||
toolbarName: 'Change theme',
|
||||
category: __t('command.theme', { defaultMessage: 'Theme' }),
|
||||
name: __t('command.theme.change', { defaultMessage: 'Change' }),
|
||||
toolbarName: __t('command.theme.changeToolbar', { defaultMessage: 'Change theme' }),
|
||||
onClick: () => showModal(SettingsModal, { selectedTab: 'theme' }),
|
||||
// getSubCommands: () => get(extensions).themes.map(themeCommand),
|
||||
});
|
||||
|
||||
registerCommand({
|
||||
id: 'toolbar.show',
|
||||
category: 'Toolbar',
|
||||
name: 'Show',
|
||||
category: __t('command.toolbar', { defaultMessage: 'Toolbar' }),
|
||||
name: __t('command.toolbar.show', { defaultMessage: 'Show' }),
|
||||
onClick: () => visibleToolbar.set(true),
|
||||
testEnabled: () => !getVisibleToolbar(),
|
||||
});
|
||||
|
||||
registerCommand({
|
||||
id: 'toolbar.hide',
|
||||
category: 'Toolbar',
|
||||
name: 'Hide',
|
||||
category: __t('command.toolbar', { defaultMessage: 'Toolbar' }),
|
||||
name: __t('command.toolbar.hide', { defaultMessage: 'Hide' }),
|
||||
onClick: () => visibleToolbar.set(false),
|
||||
testEnabled: () => getVisibleToolbar(),
|
||||
});
|
||||
|
||||
registerCommand({
|
||||
id: 'about.show',
|
||||
category: 'About',
|
||||
name: 'Show',
|
||||
toolbarName: 'About',
|
||||
category: __t('command.about', { defaultMessage: 'About' }),
|
||||
name: __t('command.about.show', { defaultMessage: 'Show' }),
|
||||
toolbarName: __t('command.about.toolbar', { defaultMessage: 'About' }),
|
||||
onClick: () => showModal(AboutModal),
|
||||
});
|
||||
|
||||
registerCommand({
|
||||
id: 'toggle.sidebar',
|
||||
category: 'Sidebar',
|
||||
name: 'Show',
|
||||
toolbarName: 'Toggle sidebar',
|
||||
category: __t('command.sidebar', { defaultMessage: 'Sidebar' }),
|
||||
name: __t('command.sidebar.show', { defaultMessage: 'Show' }),
|
||||
toolbarName: __t('command.sidebar.toggleToolbar', { defaultMessage: 'Toggle sidebar' }),
|
||||
keyText: 'CtrlOrCommand+B',
|
||||
onClick: () => visibleWidgetSideBar.update(x => !x),
|
||||
});
|
||||
@@ -113,10 +114,10 @@ registerCommand({
|
||||
id: 'new.connection',
|
||||
toolbar: true,
|
||||
icon: 'icon new-connection',
|
||||
toolbarName: 'Add connection',
|
||||
category: 'New',
|
||||
toolbarName: __t('command.new.connection', { defaultMessage: 'Add connection' }),
|
||||
category: __t('command.new', { defaultMessage: 'New'}),
|
||||
toolbarOrder: 1,
|
||||
name: 'Connection',
|
||||
name: __t('command.new.connection', { defaultMessage: 'Connection' }),
|
||||
testEnabled: () => !getCurrentConfig()?.runAsPortal && !getCurrentConfig()?.storageDatabase,
|
||||
onClick: () => {
|
||||
openNewTab({
|
||||
@@ -131,10 +132,10 @@ registerCommand({
|
||||
id: 'new.connectionOnCloud',
|
||||
toolbar: true,
|
||||
icon: 'img cloud-connection',
|
||||
toolbarName: 'Add connection',
|
||||
category: 'New',
|
||||
toolbarName: __t('command.new.connection', { defaultMessage: 'Add connection' }),
|
||||
category: __t('command.new', { defaultMessage: 'New' }),
|
||||
toolbarOrder: 1,
|
||||
name: 'Connection on Cloud',
|
||||
name: __t('command.new.connectionCloud', { defaultMessage: 'Connection on Cloud' }),
|
||||
testEnabled: () =>
|
||||
!getCurrentConfig()?.runAsPortal && !getCurrentConfig()?.storageDatabase && !!getCloudSigninTokenHolder(),
|
||||
onClick: () => {
|
||||
@@ -153,10 +154,10 @@ registerCommand({
|
||||
id: 'new.connection.folder',
|
||||
toolbar: true,
|
||||
icon: 'icon add-folder',
|
||||
toolbarName: 'Add connection folder',
|
||||
category: 'New',
|
||||
toolbarName: __t('command.new.connectionFolderToolbar', { defaultMessage: 'Add connection folder' }),
|
||||
category: __t('command.new', { defaultMessage: 'New' }),
|
||||
toolbarOrder: 1,
|
||||
name: 'Connection folder',
|
||||
name: __t('command.new.connectionFolder', { defaultMessage: 'Connection folder' }),
|
||||
testEnabled: () => !getCurrentConfig()?.runAsPortal,
|
||||
onClick: () => {
|
||||
showModal(InputTextModal, {
|
||||
@@ -176,21 +177,21 @@ registerCommand({
|
||||
|
||||
registerCommand({
|
||||
id: 'new.query',
|
||||
category: 'New',
|
||||
category: __t('command.new', { defaultMessage: 'New' }),
|
||||
icon: 'icon file',
|
||||
toolbar: true,
|
||||
toolbarOrder: 2,
|
||||
name: 'Query',
|
||||
toolbarName: 'New query',
|
||||
name: __t('command.new.query', { defaultMessage: 'Query' }),
|
||||
toolbarName: __t('command.new.queryToolbar', { defaultMessage: 'New query' }),
|
||||
keyText: 'CtrlOrCommand+T',
|
||||
onClick: () => newQuery(),
|
||||
});
|
||||
|
||||
registerCommand({
|
||||
id: 'new.shell',
|
||||
category: 'New',
|
||||
category: __t('command.new', { defaultMessage: 'New' }),
|
||||
icon: 'img shell',
|
||||
name: 'JavaScript Shell',
|
||||
name: __t('command.new.shell', { defaultMessage: 'JavaScript Shell' }),
|
||||
menuName: 'New JavaScript shell',
|
||||
onClick: () => {
|
||||
openNewTab({
|
||||
@@ -204,9 +205,9 @@ registerCommand({
|
||||
if (isProApp()) {
|
||||
registerCommand({
|
||||
id: 'new.queryDesign',
|
||||
category: 'New',
|
||||
category: __t('command.new', { defaultMessage: 'New' }),
|
||||
icon: 'img query-design',
|
||||
name: 'Query design',
|
||||
name: __t('command.new.queryDesign', { defaultMessage: 'Query design' }),
|
||||
menuName: 'New query design',
|
||||
onClick: () => newQueryDesign(),
|
||||
testEnabled: () =>
|
||||
@@ -218,9 +219,9 @@ if (isProApp()) {
|
||||
if (isProApp()) {
|
||||
registerCommand({
|
||||
id: 'new.modelTransform',
|
||||
category: 'New',
|
||||
category: __t('command.new', { defaultMessage: 'New' }),
|
||||
icon: 'img transform',
|
||||
name: 'Model transform',
|
||||
name: __t('command.new.modelTransform', { defaultMessage: 'Model transform' }),
|
||||
menuName: 'New model transform',
|
||||
onClick: () => {
|
||||
openNewTab(
|
||||
@@ -262,9 +263,9 @@ if (isProApp()) {
|
||||
if (isProApp()) {
|
||||
registerCommand({
|
||||
id: 'new.perspective',
|
||||
category: 'New',
|
||||
category: __t('command.new', { defaultMessage: 'New' }),
|
||||
icon: 'img perspective',
|
||||
name: 'Perspective',
|
||||
name: __t('command.new.perspective', { defaultMessage: 'Perspective' }),
|
||||
menuName: 'New perspective',
|
||||
onClick: () => newPerspective(),
|
||||
});
|
||||
@@ -273,9 +274,9 @@ if (isProApp()) {
|
||||
if (isProApp()) {
|
||||
registerCommand({
|
||||
id: 'new.application',
|
||||
category: 'New',
|
||||
category: __t('command.new', { defaultMessage: 'New' }),
|
||||
icon: 'img app',
|
||||
name: 'Application',
|
||||
name: __t('command.new.application', { defaultMessage: 'Application' }),
|
||||
menuName: 'New application',
|
||||
onClick: () => {
|
||||
openNewTab({
|
||||
@@ -289,9 +290,9 @@ if (isProApp()) {
|
||||
|
||||
registerCommand({
|
||||
id: 'new.diagram',
|
||||
category: 'New',
|
||||
category: __t('command.new', { defaultMessage: 'New' }),
|
||||
icon: 'img diagram',
|
||||
name: 'ER Diagram',
|
||||
name: __t('command.new.diagram', { defaultMessage: 'ER Diagram' }),
|
||||
menuName: 'New ER diagram',
|
||||
testEnabled: () =>
|
||||
getCurrentDatabase() &&
|
||||
@@ -301,9 +302,9 @@ registerCommand({
|
||||
|
||||
registerCommand({
|
||||
id: 'new.archiveFolder',
|
||||
category: 'New',
|
||||
category: __t('command.new', { defaultMessage: 'New' }),
|
||||
icon: 'img archive',
|
||||
name: 'Archive folder',
|
||||
name: __t('command.new.archiveFolder', { defaultMessage: 'Archive folder' }),
|
||||
onClick: () => {
|
||||
showModal(InputTextModal, {
|
||||
value: '',
|
||||
@@ -335,11 +336,11 @@ registerCommand({
|
||||
|
||||
registerCommand({
|
||||
id: 'new.table',
|
||||
category: 'New',
|
||||
category: __t('command.new', { defaultMessage: 'New' }),
|
||||
icon: 'icon table',
|
||||
name: 'Table',
|
||||
name: __t('command.new.table', { defaultMessage: 'Table' }),
|
||||
toolbar: true,
|
||||
toolbarName: 'New table',
|
||||
toolbarName: __t('command.new.tableToolbar', { defaultMessage: 'New table' }),
|
||||
testEnabled: () => {
|
||||
if (!hasPermission('dbops/model/edit')) return false;
|
||||
const driver = findEngineDriver(get(currentDatabase)?.connection, getExtensions());
|
||||
@@ -355,11 +356,11 @@ registerCommand({
|
||||
|
||||
registerCommand({
|
||||
id: 'new.collection',
|
||||
category: 'New',
|
||||
category: __t('command.new', { defaultMessage: 'New' }),
|
||||
icon: 'icon table',
|
||||
name: 'Collection',
|
||||
name: __t('command.new.collection', { defaultMessage: 'Collection' }),
|
||||
toolbar: true,
|
||||
toolbarName: 'New collection/container',
|
||||
toolbarName: __t('command.new.collectionToolbar', { defaultMessage: 'New collection/container' }),
|
||||
testEnabled: () => {
|
||||
const driver = findEngineDriver(get(currentDatabase)?.connection, getExtensions());
|
||||
return !!get(currentDatabase) && driver?.databaseEngineTypes?.includes('document');
|
||||
@@ -381,9 +382,9 @@ registerCommand({
|
||||
|
||||
registerCommand({
|
||||
id: 'new.markdown',
|
||||
category: 'New',
|
||||
category: __t('command.new', { defaultMessage: 'New' }),
|
||||
icon: 'img markdown',
|
||||
name: 'Markdown page',
|
||||
name: __t('command.new.markdown', { defaultMessage: 'Markdown page' }),
|
||||
onClick: () => {
|
||||
openNewTab({
|
||||
title: 'Page #',
|
||||
@@ -396,9 +397,9 @@ registerCommand({
|
||||
if (isProApp()) {
|
||||
registerCommand({
|
||||
id: 'new.modelCompare',
|
||||
category: 'New',
|
||||
category: __t('command.new', { defaultMessage: 'New' }),
|
||||
icon: 'icon compare',
|
||||
name: 'Compare DB',
|
||||
name: __t('command.new.modelCompare', { defaultMessage: 'Compare DB' }),
|
||||
toolbar: true,
|
||||
onClick: () => {
|
||||
openNewTab({
|
||||
@@ -412,9 +413,9 @@ if (isProApp()) {
|
||||
|
||||
registerCommand({
|
||||
id: 'new.jsonl',
|
||||
category: 'New',
|
||||
category: __t('command.new', { defaultMessage: 'New' }),
|
||||
icon: 'img archive',
|
||||
name: 'JSON Lines',
|
||||
name: __t('command.new.jsonl', { defaultMessage: 'JSON Lines' }),
|
||||
menuName: 'New JSON lines file',
|
||||
onClick: () => {
|
||||
openNewTab(
|
||||
@@ -432,9 +433,9 @@ registerCommand({
|
||||
|
||||
registerCommand({
|
||||
id: 'new.sqliteDatabase',
|
||||
category: 'New',
|
||||
category: __t('command.new', { defaultMessage: 'New' }),
|
||||
icon: 'img sqlite-database',
|
||||
name: 'SQLite database',
|
||||
name: __t('command.new.sqliteDatabase', { defaultMessage: 'SQLite database' }),
|
||||
menuName: _t('command.new.sqliteDatabase', { defaultMessage: 'New SQLite database' }),
|
||||
onClick: () => {
|
||||
showModal(InputTextModal, {
|
||||
@@ -452,9 +453,9 @@ registerCommand({
|
||||
|
||||
registerCommand({
|
||||
id: 'new.duckdbDatabase',
|
||||
category: 'New',
|
||||
category: __t('command.new', { defaultMessage: 'New' }),
|
||||
icon: 'img sqlite-database',
|
||||
name: 'DuckDB database',
|
||||
name: __t('command.new.duckdbDatabase', { defaultMessage: 'DuckDB database' }),
|
||||
menuName: _t('command.new.duckdbDatabase', { defaultMessage: 'New DuckDB database' }),
|
||||
onClick: () => {
|
||||
showModal(InputTextModal, {
|
||||
@@ -472,8 +473,8 @@ registerCommand({
|
||||
|
||||
registerCommand({
|
||||
id: 'tabs.changelog',
|
||||
category: 'Tabs',
|
||||
name: 'Changelog',
|
||||
category: __t('command.tabs', { defaultMessage: 'Tabs' }),
|
||||
name: __t('command.tabs.changelog', { defaultMessage: 'Changelog' }),
|
||||
onClick: () => {
|
||||
openNewTab({
|
||||
title: 'ChangeLog',
|
||||
@@ -488,7 +489,7 @@ registerCommand({
|
||||
id: 'group.save',
|
||||
category: null,
|
||||
isGroupCommand: true,
|
||||
name: 'Save',
|
||||
name: __t('command.save', { defaultMessage: 'Save' }),
|
||||
keyText: 'CtrlOrCommand+S',
|
||||
group: 'save',
|
||||
});
|
||||
@@ -497,7 +498,7 @@ registerCommand({
|
||||
id: 'group.saveAs',
|
||||
category: null,
|
||||
isGroupCommand: true,
|
||||
name: 'Save As',
|
||||
name: __t('command.saveAs', { defaultMessage: 'Save As' }),
|
||||
keyText: 'CtrlOrCommand+Shift+S',
|
||||
group: 'saveAs',
|
||||
});
|
||||
@@ -506,7 +507,7 @@ registerCommand({
|
||||
id: 'group.undo',
|
||||
category: null,
|
||||
isGroupCommand: true,
|
||||
name: 'Undo',
|
||||
name: __t('command.undo', { defaultMessage: 'Undo' }),
|
||||
keyText: 'CtrlOrCommand+Z',
|
||||
group: 'undo',
|
||||
});
|
||||
@@ -515,15 +516,15 @@ registerCommand({
|
||||
id: 'group.redo',
|
||||
category: null,
|
||||
isGroupCommand: true,
|
||||
name: 'Redo',
|
||||
name: __t('command.redo', { defaultMessage: 'Redo' }),
|
||||
keyText: 'CtrlOrCommand+Y',
|
||||
group: 'redo',
|
||||
});
|
||||
|
||||
registerCommand({
|
||||
id: 'file.open',
|
||||
category: 'File',
|
||||
name: 'Open',
|
||||
category: __t('command.file', { defaultMessage: 'File' }),
|
||||
name: __t('command.file.open', { defaultMessage: 'Open' }),
|
||||
keyText: 'CtrlOrCommand+O',
|
||||
testEnabled: () => getElectron() != null,
|
||||
onClick: openElectronFile,
|
||||
@@ -531,36 +532,36 @@ registerCommand({
|
||||
|
||||
registerCommand({
|
||||
id: 'file.openArchive',
|
||||
category: 'File',
|
||||
name: 'Open DB Model/Archive',
|
||||
category: __t('command.file', { defaultMessage: 'File' }),
|
||||
name: __t('command.file.openArchive', { defaultMessage: 'Open DB Model/Archive' }),
|
||||
testEnabled: () => getElectron() != null,
|
||||
onClick: openArchiveFolder,
|
||||
});
|
||||
|
||||
registerCommand({
|
||||
id: 'folder.showLogs',
|
||||
category: 'Folder',
|
||||
name: 'Open logs',
|
||||
category: __t('command.folder', { defaultMessage: 'Folder' }),
|
||||
name: __t('command.folder.openLogs', { defaultMessage: 'Open logs' }),
|
||||
testEnabled: () => getElectron() != null,
|
||||
onClick: () => electron.showItemInFolder(getCurrentConfig().logsFilePath),
|
||||
});
|
||||
|
||||
registerCommand({
|
||||
id: 'folder.showData',
|
||||
category: 'Folder',
|
||||
name: 'Open data folder',
|
||||
category: __t('command.folder', { defaultMessage: 'Folder' }),
|
||||
name: __t('command.folder.openData', { defaultMessage: 'Open data folder' }),
|
||||
testEnabled: () => getElectron() != null,
|
||||
onClick: () => electron.showItemInFolder(getCurrentConfig().connectionsFilePath),
|
||||
});
|
||||
|
||||
registerCommand({
|
||||
id: 'app.resetSettings',
|
||||
category: 'File',
|
||||
name: 'Reset layout data & settings',
|
||||
category: __t('command.file', { defaultMessage: 'File' }),
|
||||
name: __t('command.file.resetLayout', { defaultMessage: 'Reset layout data & settings' }),
|
||||
testEnabled: () => true,
|
||||
onClick: () => {
|
||||
showModal(ConfirmModal, {
|
||||
message: `Really reset layout data? All opened tabs, settings and layout data will be lost. Connections and saved files will be preserved. After this, restart DbGate for applying changes.`,
|
||||
message: _t('command.file.resetLayoutConfirm', { defaultMessage: 'Really reset layout data? All opened tabs, settings and layout data will be lost. Connections and saved files will be preserved. After this, restart DbGate for applying changes.' }),
|
||||
onConfirm: async () => {
|
||||
await apiCall('config/delete-settings');
|
||||
localStorage.clear();
|
||||
@@ -577,8 +578,8 @@ registerCommand({
|
||||
|
||||
registerCommand({
|
||||
id: 'app.exportConnections',
|
||||
category: 'Settings',
|
||||
name: 'Export connections',
|
||||
category: __t('command.settings', { defaultMessage: 'Settings' }),
|
||||
name: __t('command.settings.exportConnections', { defaultMessage: 'Export connections' }),
|
||||
testEnabled: () => !getCurrentConfig()?.runAsPortal && !getCurrentConfig()?.storageDatabase,
|
||||
onClick: () => {
|
||||
showModal(ExportImportConnectionsModal, {
|
||||
@@ -589,8 +590,8 @@ registerCommand({
|
||||
|
||||
registerCommand({
|
||||
id: 'app.importConnections',
|
||||
category: 'Settings',
|
||||
name: 'Import connections',
|
||||
category: __t('command.settings', { defaultMessage: 'Settings' }),
|
||||
name: __t('command.settings.importConnections', { defaultMessage: 'Import connections' }),
|
||||
testEnabled: () => !getCurrentConfig()?.runAsPortal && !getCurrentConfig()?.storageDatabase,
|
||||
onClick: async () => {
|
||||
const files = await electron.showOpenDialog({
|
||||
@@ -615,8 +616,8 @@ registerCommand({
|
||||
|
||||
registerCommand({
|
||||
id: 'file.import',
|
||||
category: 'File',
|
||||
name: 'Import data',
|
||||
category: __t('command.file', { defaultMessage: 'File' }),
|
||||
name: __t('command.file.import', { defaultMessage: 'Import data' }),
|
||||
toolbar: true,
|
||||
icon: 'icon import',
|
||||
onClick: () =>
|
||||
@@ -636,8 +637,8 @@ registerCommand({
|
||||
|
||||
registerCommand({
|
||||
id: 'view.reset',
|
||||
category: 'View',
|
||||
name: 'Reset view',
|
||||
category: __t('command.view', { defaultMessage: 'View' }),
|
||||
name: __t('command.view.reset', { defaultMessage: 'Reset view' }),
|
||||
onClick: () => {
|
||||
const keys = [
|
||||
'leftPanelWidth',
|
||||
@@ -664,14 +665,14 @@ registerCommand({
|
||||
'currentArchive',
|
||||
];
|
||||
for (const key of keys) removeLocalStorage(key);
|
||||
showSnackbarSuccess('Restart DbGate (or reload on web) for applying changes');
|
||||
showSnackbarSuccess(_t('command.view.restart', { defaultMessage: 'Restart DbGate (or reload on web) for applying changes' }));
|
||||
},
|
||||
});
|
||||
|
||||
registerCommand({
|
||||
id: 'sql.generator',
|
||||
category: 'SQL',
|
||||
name: 'SQL Generator',
|
||||
category: __t('command.sql', { defaultMessage: 'SQL' }),
|
||||
name: __t('command.sql.generator', { defaultMessage: 'SQL Generator' }),
|
||||
toolbar: true,
|
||||
icon: 'icon sql-generator',
|
||||
testEnabled: () =>
|
||||
@@ -687,8 +688,8 @@ registerCommand({
|
||||
|
||||
registerCommand({
|
||||
id: 'database.export',
|
||||
category: 'Database',
|
||||
name: 'Export database',
|
||||
category: __t('command.database', { defaultMessage: 'Database' }),
|
||||
name: __t('command.database.export', { defaultMessage: 'Export database' }),
|
||||
toolbar: true,
|
||||
icon: 'icon export',
|
||||
testEnabled: () => getCurrentDatabase() != null && hasPermission(`dbops/export`) && isProApp(),
|
||||
@@ -705,8 +706,8 @@ registerCommand({
|
||||
if (isProApp()) {
|
||||
registerCommand({
|
||||
id: 'database.compare',
|
||||
category: 'Database',
|
||||
name: 'Compare databases',
|
||||
category: __t('command.database', { defaultMessage: 'Database' }),
|
||||
name: __t('command.database.compare', { defaultMessage: 'Compare databases' }),
|
||||
toolbar: true,
|
||||
icon: 'icon compare',
|
||||
testEnabled: () =>
|
||||
@@ -738,8 +739,8 @@ if (isProApp()) {
|
||||
|
||||
registerCommand({
|
||||
id: 'database.chat',
|
||||
category: 'Database',
|
||||
name: 'Database chat',
|
||||
category: __t('command.database', { defaultMessage: 'Database' }),
|
||||
name: __t('command.database.chat', { defaultMessage: 'Database chat' }),
|
||||
toolbar: true,
|
||||
icon: 'icon ai',
|
||||
testEnabled: () =>
|
||||
@@ -763,11 +764,11 @@ if (isProApp()) {
|
||||
if (hasPermission('settings/change')) {
|
||||
registerCommand({
|
||||
id: 'settings.commands',
|
||||
category: 'Settings',
|
||||
name: 'Keyboard shortcuts',
|
||||
category: __t('command.settings', { defaultMessage: 'Settings' }),
|
||||
name: __t('command.settings.shortcuts', { defaultMessage: 'Keyboard shortcuts' }),
|
||||
onClick: () => {
|
||||
openNewTab({
|
||||
title: 'Keyboard Shortcuts',
|
||||
title: _t('command.settings.shortcuts', { defaultMessage: 'Keyboard shortcuts' }),
|
||||
icon: 'icon keyboard',
|
||||
tabComponent: 'CommandListTab',
|
||||
props: {},
|
||||
@@ -778,9 +779,9 @@ if (hasPermission('settings/change')) {
|
||||
|
||||
registerCommand({
|
||||
id: 'settings.show',
|
||||
category: 'Settings',
|
||||
name: 'Change',
|
||||
toolbarName: 'Settings',
|
||||
category: __t('command.settings', { defaultMessage: 'Settings' }),
|
||||
name: __t('command.settings.change', { defaultMessage: 'Change' }),
|
||||
toolbarName: __t('command.settings', { defaultMessage: 'Settings' }),
|
||||
onClick: () => showModal(SettingsModal),
|
||||
testEnabled: () => hasPermission('settings/change'),
|
||||
});
|
||||
@@ -788,8 +789,8 @@ if (hasPermission('settings/change')) {
|
||||
|
||||
registerCommand({
|
||||
id: 'cloud.logout',
|
||||
category: 'Cloud',
|
||||
name: 'Logout',
|
||||
category: __t('command.cloud', { defaultMessage: 'Cloud' }),
|
||||
name: __t('command.cloud.logout', { defaultMessage: 'Logout' }),
|
||||
onClick: () => {
|
||||
cloudSigninTokenHolder.set(null);
|
||||
},
|
||||
@@ -797,8 +798,8 @@ registerCommand({
|
||||
|
||||
registerCommand({
|
||||
id: 'file.exit',
|
||||
category: 'File',
|
||||
name: isMac() ? 'Quit' : 'Exit',
|
||||
category: __t('command.file', { defaultMessage: 'File' }),
|
||||
name: isMac() ? __t('command.file.quit', { defaultMessage: 'Quit' }) : __t('command.file.exit', { defaultMessage: 'Exit' }),
|
||||
// keyText: isMac() ? 'Command+Q' : null,
|
||||
testEnabled: () => getElectron() != null,
|
||||
onClick: () => getElectron().send('quit-app'),
|
||||
@@ -806,16 +807,16 @@ registerCommand({
|
||||
|
||||
registerCommand({
|
||||
id: 'app.logout',
|
||||
category: 'App',
|
||||
name: 'Logout',
|
||||
category: __t('command.application', { defaultMessage: 'Application' }),
|
||||
name: __t('command.app.logout', { defaultMessage: 'Logout' }),
|
||||
testEnabled: () => getCurrentConfig()?.isUserLoggedIn,
|
||||
onClick: doLogout,
|
||||
});
|
||||
|
||||
registerCommand({
|
||||
id: 'app.loggedUserCommands',
|
||||
category: 'App',
|
||||
name: 'Logged user',
|
||||
category: __t('command.application', { defaultMessage: 'Application' }),
|
||||
name: __t('command.app.loggedUser', { defaultMessage: 'Logged user' }),
|
||||
getSubCommands: () => {
|
||||
const config = getCurrentConfig();
|
||||
if (!config) return [];
|
||||
@@ -832,16 +833,16 @@ registerCommand({
|
||||
|
||||
registerCommand({
|
||||
id: 'app.disconnect',
|
||||
category: 'App',
|
||||
name: 'Disconnect',
|
||||
category: __t('command.application', { defaultMessage: 'Application' }),
|
||||
name: __t('command.app.disconnect', { defaultMessage: 'Disconnect' }),
|
||||
testEnabled: () => getCurrentConfig()?.singleConnection != null && !getCurrentConfig()?.isUserLoggedIn,
|
||||
onClick: () => disconnectServerConnection(getCurrentConfig()?.singleConnection?._id),
|
||||
});
|
||||
|
||||
registerCommand({
|
||||
id: 'file.checkForUpdates',
|
||||
category: 'App',
|
||||
name: 'Check for updates',
|
||||
id: 'app.checkForUpdates',
|
||||
category: __t('command.application', { defaultMessage: 'Application' }),
|
||||
name: __t('command.app.checkForUpdates', { defaultMessage: 'Check for updates' }),
|
||||
// testEnabled: () => true,
|
||||
testEnabled: () => getAppUpdaterActive(),
|
||||
onClick: () => getElectron().send('check-for-updates'),
|
||||
@@ -867,7 +868,7 @@ export function registerFileCommands({
|
||||
id: idPrefix + '.save',
|
||||
group: 'save',
|
||||
category,
|
||||
name: 'Save',
|
||||
name: __t('command.save', { defaultMessage: 'Save' }),
|
||||
// keyText: 'CtrlOrCommand+S',
|
||||
icon: 'icon save',
|
||||
toolbar: true,
|
||||
@@ -879,14 +880,14 @@ export function registerFileCommands({
|
||||
id: idPrefix + '.saveAs',
|
||||
group: 'saveAs',
|
||||
category,
|
||||
name: 'Save As',
|
||||
name: __t('command.saveAs', { defaultMessage: 'Save As' }),
|
||||
testEnabled: () => getCurrentEditor() != null,
|
||||
onClick: () => saveTabFile(getCurrentEditor(), 'save-as', folder, format, fileExtension),
|
||||
});
|
||||
registerCommand({
|
||||
id: idPrefix + '.saveToDisk',
|
||||
category,
|
||||
name: 'Save to disk',
|
||||
name: __t('command.saveToDisk', { defaultMessage: 'Save to disk' }),
|
||||
testEnabled: () => getCurrentEditor() != null && getElectron() != null,
|
||||
onClick: () => saveTabFile(getCurrentEditor(), 'save-to-disk', folder, format, fileExtension),
|
||||
});
|
||||
@@ -896,7 +897,7 @@ export function registerFileCommands({
|
||||
registerCommand({
|
||||
id: idPrefix + '.execute',
|
||||
category,
|
||||
name: 'Execute',
|
||||
name: __t('command.execute', { defaultMessage: 'Execute' }),
|
||||
icon: 'icon run',
|
||||
toolbar: true,
|
||||
isRelatedToTab: true,
|
||||
@@ -910,7 +911,7 @@ export function registerFileCommands({
|
||||
registerCommand({
|
||||
id: idPrefix + '.kill',
|
||||
category,
|
||||
name: 'Kill',
|
||||
name: __t('command.kill', { defaultMessage: 'Kill' }),
|
||||
icon: 'icon close',
|
||||
toolbar: true,
|
||||
isRelatedToTab: true,
|
||||
@@ -923,7 +924,7 @@ export function registerFileCommands({
|
||||
registerCommand({
|
||||
id: idPrefix + '.toggleComment',
|
||||
category,
|
||||
name: 'Toggle comment',
|
||||
name: __t('command.toggleComment', { defaultMessage: 'Toggle comment' }),
|
||||
keyText: 'CtrlOrCommand+/',
|
||||
disableHandleKeyText: 'CtrlOrCommand+/',
|
||||
testEnabled: () => getCurrentEditor() != null,
|
||||
@@ -935,7 +936,7 @@ export function registerFileCommands({
|
||||
registerCommand({
|
||||
id: idPrefix + '.copy',
|
||||
category,
|
||||
name: 'Copy',
|
||||
name: __t('command.copy', { defaultMessage: 'Copy' }),
|
||||
disableHandleKeyText: 'CtrlOrCommand+C',
|
||||
testEnabled: () => getCurrentEditor() != null,
|
||||
onClick: () => getCurrentEditor().copy(),
|
||||
@@ -943,7 +944,7 @@ export function registerFileCommands({
|
||||
registerCommand({
|
||||
id: idPrefix + '.paste',
|
||||
category,
|
||||
name: 'Paste',
|
||||
name: __t('command.paste', { defaultMessage: 'Paste' }),
|
||||
disableHandleKeyText: 'CtrlOrCommand+V',
|
||||
testEnabled: () => getCurrentEditor() != null,
|
||||
onClick: () => getCurrentEditor().paste(),
|
||||
@@ -954,7 +955,7 @@ export function registerFileCommands({
|
||||
registerCommand({
|
||||
id: idPrefix + '.find',
|
||||
category,
|
||||
name: 'Find',
|
||||
name: __t('command.find', { defaultMessage: 'Find' }),
|
||||
keyText: 'CtrlOrCommand+F',
|
||||
testEnabled: () => getCurrentEditor() != null,
|
||||
onClick: () => getCurrentEditor().find(),
|
||||
@@ -963,7 +964,7 @@ export function registerFileCommands({
|
||||
id: idPrefix + '.replace',
|
||||
category,
|
||||
keyText: isMac() ? 'Alt+Command+F' : 'CtrlOrCommand+H',
|
||||
name: 'Replace',
|
||||
name: __t('command.replace', { defaultMessage: 'Replace' }),
|
||||
testEnabled: () => getCurrentEditor() != null,
|
||||
onClick: () => getCurrentEditor().replace(),
|
||||
});
|
||||
@@ -972,7 +973,7 @@ export function registerFileCommands({
|
||||
registerCommand({
|
||||
id: idPrefix + '.undo',
|
||||
category,
|
||||
name: 'Undo',
|
||||
name: __t('command.undo', { defaultMessage: 'Undo' }),
|
||||
group: 'undo',
|
||||
icon: 'icon undo',
|
||||
testEnabled: () => getCurrentEditor()?.canUndo(),
|
||||
@@ -982,7 +983,7 @@ export function registerFileCommands({
|
||||
id: idPrefix + '.redo',
|
||||
category,
|
||||
group: 'redo',
|
||||
name: 'Redo',
|
||||
name: __t('command.redo', { defaultMessage: 'Redo' }),
|
||||
icon: 'icon redo',
|
||||
testEnabled: () => getCurrentEditor()?.canRedo(),
|
||||
onClick: () => getCurrentEditor().redo(),
|
||||
@@ -992,24 +993,24 @@ export function registerFileCommands({
|
||||
|
||||
registerCommand({
|
||||
id: 'app.minimize',
|
||||
category: 'Application',
|
||||
name: 'Minimize',
|
||||
category: __t('command.application', { defaultMessage: 'Application' }),
|
||||
name: __t('command.application.minimize', { defaultMessage: 'Minimize' }),
|
||||
testEnabled: () => getElectron() != null,
|
||||
onClick: () => getElectron().send('window-action', 'minimize'),
|
||||
});
|
||||
|
||||
registerCommand({
|
||||
id: 'app.maximize',
|
||||
category: 'Application',
|
||||
name: 'Maximize',
|
||||
category: __t('command.application', { defaultMessage: 'Application' }),
|
||||
name: __t('command.application.maximize', { defaultMessage: 'Maximize' }),
|
||||
testEnabled: () => getElectron() != null,
|
||||
onClick: () => getElectron().send('window-action', 'maximize'),
|
||||
});
|
||||
|
||||
registerCommand({
|
||||
id: 'app.toggleFullScreen',
|
||||
category: 'Application',
|
||||
name: 'Toggle full screen',
|
||||
category: __t('command.application', { defaultMessage: 'Application' }),
|
||||
name: __t('command.application.toggleFullScreen', { defaultMessage: 'Toggle full screen' }),
|
||||
keyText: 'F11',
|
||||
testEnabled: () => getElectron() != null,
|
||||
onClick: async () => {
|
||||
@@ -1023,45 +1024,45 @@ registerCommand({
|
||||
|
||||
registerCommand({
|
||||
id: 'app.toggleDevTools',
|
||||
category: 'Application',
|
||||
name: 'Toggle Dev Tools',
|
||||
category: __t('command.application', { defaultMessage: 'Application' }),
|
||||
name: __t('command.application.toggleDevTools', { defaultMessage: 'Toggle Dev Tools' }),
|
||||
testEnabled: () => getElectron() != null,
|
||||
onClick: () => getElectron().send('window-action', 'devtools'),
|
||||
});
|
||||
|
||||
registerCommand({
|
||||
id: 'app.reload',
|
||||
category: 'Application',
|
||||
name: 'Reload',
|
||||
category: __t('command.application', { defaultMessage: 'Application' }),
|
||||
name: __t('command.application.reload', { defaultMessage: 'Reload' }),
|
||||
testEnabled: () => getElectron() != null,
|
||||
onClick: () => getElectron().send('window-action', 'reload'),
|
||||
});
|
||||
|
||||
registerCommand({
|
||||
id: 'app.openDocs',
|
||||
category: 'Application',
|
||||
name: 'Documentation',
|
||||
category: __t('command.application', { defaultMessage: 'Application' }),
|
||||
name: __t('command.application.documentation', { defaultMessage: 'Documentation' }),
|
||||
onClick: () => openWebLink('https://docs.dbgate.io/'),
|
||||
});
|
||||
|
||||
registerCommand({
|
||||
id: 'app.openWeb',
|
||||
category: 'Application',
|
||||
name: 'DbGate web',
|
||||
category: __t('command.application', { defaultMessage: 'Application' }),
|
||||
name: __t('command.application.web', { defaultMessage: 'DbGate web' }),
|
||||
onClick: () => openWebLink('https://www.dbgate.io/'),
|
||||
});
|
||||
|
||||
registerCommand({
|
||||
id: 'app.openIssue',
|
||||
category: 'Application',
|
||||
name: 'Report problem or feature request',
|
||||
category: __t('command.application', { defaultMessage: 'Application' }),
|
||||
name: __t('command.application.openIssue', { defaultMessage: 'Report problem or feature request' }),
|
||||
onClick: () => openWebLink('https://github.com/dbgate/dbgate/issues/new'),
|
||||
});
|
||||
|
||||
registerCommand({
|
||||
id: 'app.openSponsoring',
|
||||
category: 'Application',
|
||||
name: 'Become sponsor',
|
||||
category: __t('command.application', { defaultMessage: 'Application' }),
|
||||
name: __t('command.application.becomeSponsor', { defaultMessage: 'Become sponsor' }),
|
||||
testEnabled: () => !isProApp(),
|
||||
onClick: () => openWebLink('https://opencollective.com/dbgate'),
|
||||
});
|
||||
@@ -1075,8 +1076,8 @@ registerCommand({
|
||||
|
||||
registerCommand({
|
||||
id: 'app.zoomIn',
|
||||
category: 'Application',
|
||||
name: 'Zoom in',
|
||||
category: __t('command.application', { defaultMessage: 'Application' }),
|
||||
name: __t('command.application.zoomIn', { defaultMessage: 'Zoom in' }),
|
||||
keyText: 'CtrlOrCommand+=',
|
||||
testEnabled: () => getElectron() != null,
|
||||
onClick: () => getElectron().send('window-action', 'zoomin'),
|
||||
@@ -1084,8 +1085,8 @@ registerCommand({
|
||||
|
||||
registerCommand({
|
||||
id: 'app.zoomOut',
|
||||
category: 'Application',
|
||||
name: 'Zoom out',
|
||||
category: __t('command.application', { defaultMessage: 'Application' }),
|
||||
name: __t('command.application.zoomOut', { defaultMessage: 'Zoom out' }),
|
||||
keyText: 'CtrlOrCommand+-',
|
||||
testEnabled: () => getElectron() != null,
|
||||
onClick: () => getElectron().send('window-action', 'zoomout'),
|
||||
@@ -1093,16 +1094,16 @@ registerCommand({
|
||||
|
||||
registerCommand({
|
||||
id: 'app.zoomReset',
|
||||
category: 'Application',
|
||||
name: 'Reset zoom',
|
||||
category: __t('command.application', { defaultMessage: 'Application' }),
|
||||
name: __t('command.application.zoomReset', { defaultMessage: 'Reset zoom' }),
|
||||
testEnabled: () => getElectron() != null,
|
||||
onClick: () => getElectron().send('window-action', 'zoomreset'),
|
||||
});
|
||||
|
||||
registerCommand({
|
||||
id: 'edit.undo',
|
||||
category: 'Edit',
|
||||
name: 'Undo',
|
||||
category: __t('command.edit', { defaultMessage: 'Edit' }),
|
||||
name: __t('command.edit.undo', { defaultMessage: 'Undo' }),
|
||||
keyText: 'CtrlOrCommand+Z',
|
||||
systemCommand: true,
|
||||
testEnabled: () => getElectron() != null,
|
||||
@@ -1111,8 +1112,8 @@ registerCommand({
|
||||
|
||||
registerCommand({
|
||||
id: 'edit.redo',
|
||||
category: 'Edit',
|
||||
name: 'Redo',
|
||||
category: __t('command.edit', { defaultMessage: 'Edit' }),
|
||||
name: __t('command.edit.redo', { defaultMessage: 'Redo' }),
|
||||
systemCommand: true,
|
||||
testEnabled: () => getElectron() != null,
|
||||
onClick: () => getElectron().send('window-action', 'redo'),
|
||||
@@ -1120,8 +1121,8 @@ registerCommand({
|
||||
|
||||
registerCommand({
|
||||
id: 'edit.cut',
|
||||
category: 'Edit',
|
||||
name: 'Cut',
|
||||
category: __t('command.edit', { defaultMessage: 'Edit' }),
|
||||
name: __t('command.edit.cut', { defaultMessage: 'Cut' }),
|
||||
keyText: 'CtrlOrCommand+X',
|
||||
systemCommand: true,
|
||||
testEnabled: () => getElectron() != null,
|
||||
@@ -1130,8 +1131,8 @@ registerCommand({
|
||||
|
||||
registerCommand({
|
||||
id: 'edit.copy',
|
||||
category: 'Edit',
|
||||
name: 'Copy',
|
||||
category: __t('command.edit', { defaultMessage: 'Edit' }),
|
||||
name: __t('command.edit.copy', { defaultMessage: 'Copy' }),
|
||||
keyText: 'CtrlOrCommand+C',
|
||||
systemCommand: true,
|
||||
testEnabled: () => getElectron() != null,
|
||||
@@ -1140,8 +1141,8 @@ registerCommand({
|
||||
|
||||
registerCommand({
|
||||
id: 'edit.paste',
|
||||
category: 'Edit',
|
||||
name: 'Paste',
|
||||
category: __t('command.edit', { defaultMessage: 'Edit' }),
|
||||
name: __t('command.edit.paste', { defaultMessage: 'Paste' }),
|
||||
keyText: 'CtrlOrCommand+V',
|
||||
systemCommand: true,
|
||||
testEnabled: () => getElectron() != null,
|
||||
@@ -1150,8 +1151,8 @@ registerCommand({
|
||||
|
||||
registerCommand({
|
||||
id: 'edit.selectAll',
|
||||
category: 'Edit',
|
||||
name: 'Select All',
|
||||
category: __t('command.edit', { defaultMessage: 'Edit' }),
|
||||
name: __t('command.edit.selectAll', { defaultMessage: 'Select All' }),
|
||||
keyText: 'CtrlOrCommand+A',
|
||||
systemCommand: true,
|
||||
testEnabled: () => getElectron() != null,
|
||||
@@ -1160,8 +1161,8 @@ registerCommand({
|
||||
|
||||
registerCommand({
|
||||
id: 'app.unsetCurrentDatabase',
|
||||
category: 'Application',
|
||||
name: 'Unset current database',
|
||||
category: __t('command.application', { defaultMessage: 'Application' }),
|
||||
name: __t('command.application.unsetCurrentDatabase', { defaultMessage: 'Unset current database' }),
|
||||
testEnabled: () => getCurrentDatabase() != null,
|
||||
onClick: () => currentDatabase.set(null),
|
||||
});
|
||||
@@ -1170,8 +1171,8 @@ let loadedCampaignList = [];
|
||||
|
||||
registerCommand({
|
||||
id: 'internal.loadCampaigns',
|
||||
category: 'Internal',
|
||||
name: 'Load campaign list',
|
||||
category: __t('command.internal', { defaultMessage: 'Internal' }),
|
||||
name: __t('command.internal.loadCampaigns', { defaultMessage: 'Load campaign list' }),
|
||||
testEnabled: () => getBoolSettingsValue('internal.showCampaigns', false),
|
||||
onClick: async () => {
|
||||
const resp = await apiCall('cloud/promo-widget-list', {});
|
||||
@@ -1181,8 +1182,8 @@ registerCommand({
|
||||
|
||||
registerCommand({
|
||||
id: 'internal.showCampaigns',
|
||||
category: 'Internal',
|
||||
name: 'Show campaigns',
|
||||
category: __t('command.internal', { defaultMessage: 'Internal' }),
|
||||
name: __t('command.internal.showCampaigns', { defaultMessage: 'Show campaigns' }),
|
||||
testEnabled: () => getBoolSettingsValue('internal.showCampaigns', false) && loadedCampaignList?.length > 0,
|
||||
getSubCommands: () => {
|
||||
return loadedCampaignList.map(campaign => ({
|
||||
|
||||
@@ -3,16 +3,16 @@
|
||||
|
||||
registerCommand({
|
||||
id: 'collectionDataGrid.openQuery',
|
||||
category: 'Data grid',
|
||||
name: 'Open query',
|
||||
category: __t('command.dataGrid', { defaultMessage: 'Data grid' }),
|
||||
name: __t('command.dataGrid.openQuery', { defaultMessage: 'Open query' }),
|
||||
testEnabled: () => getCurrentEditor() != null,
|
||||
onClick: () => getCurrentEditor().openQuery(),
|
||||
});
|
||||
|
||||
registerCommand({
|
||||
id: 'collectionDataGrid.export',
|
||||
category: 'Data grid',
|
||||
name: 'Export',
|
||||
category: __t('command.dataGrid', { defaultMessage: 'Data grid' }),
|
||||
name: __t('command.dataGrid.export', { defaultMessage: 'Export' }),
|
||||
keyText: 'CtrlOrCommand+E',
|
||||
icon: 'icon export',
|
||||
testEnabled: () => getCurrentEditor() != null,
|
||||
@@ -140,6 +140,7 @@
|
||||
import LoadingDataGridCore from './LoadingDataGridCore.svelte';
|
||||
import { mongoFilterBehaviour, standardFilterBehaviours } from 'dbgate-tools';
|
||||
import { openImportExportTab } from '../utility/importExportTools';
|
||||
import { __t } from '../translations';
|
||||
|
||||
export let conid;
|
||||
export let display;
|
||||
|
||||
@@ -421,7 +421,7 @@
|
||||
import { openJsonLinesData } from '../utility/openJsonLinesData';
|
||||
import contextMenuActivator from '../utility/contextMenuActivator';
|
||||
import InputTextModal from '../modals/InputTextModal.svelte';
|
||||
import { __t, _t } from '../translations';
|
||||
import { __t, _t, _val } from '../translations';
|
||||
import { isProApp } from '../utility/proTools';
|
||||
import SaveArchiveModal from '../modals/SaveArchiveModal.svelte';
|
||||
import hasPermission from '../utility/hasPermission';
|
||||
@@ -1795,12 +1795,12 @@
|
||||
text: _t('datagrid.copyAdvanced', { defaultMessage: 'Copy advanced'}),
|
||||
submenu: [
|
||||
_.keys(copyRowsFormatDefs).map(format => ({
|
||||
text: _.isFunction(copyRowsFormatDefs[format].label) ? copyRowsFormatDefs[format].label() : copyRowsFormatDefs[format].label,
|
||||
text: _val(copyRowsFormatDefs[format].label),
|
||||
onClick: () => copyToClipboardCore(format),
|
||||
})),
|
||||
{ divider: true },
|
||||
_.keys(copyRowsFormatDefs).map(format => ({
|
||||
text: _t('datagrid.setFormat', { defaultMessage: 'Set format: ' }) + (_.isFunction(copyRowsFormatDefs[format].name) ? copyRowsFormatDefs[format].name() : copyRowsFormatDefs[format].name),
|
||||
text: _t('datagrid.setFormat', { defaultMessage: 'Set format: ' }) + (_val(copyRowsFormatDefs[format].name)),
|
||||
onClick: () => ($copyRowsFormat = format),
|
||||
})),
|
||||
|
||||
@@ -1870,7 +1870,7 @@
|
||||
return [
|
||||
menu,
|
||||
{
|
||||
text: _.isFunction(copyRowsFormatDefs[$copyRowsFormat].label) ? copyRowsFormatDefs[$copyRowsFormat].label() : copyRowsFormatDefs[$copyRowsFormat].label,
|
||||
text: _val(copyRowsFormatDefs[$copyRowsFormat].label),
|
||||
onClick: () => copyToClipboardCore($copyRowsFormat),
|
||||
keyText: 'CtrlOrCommand+C',
|
||||
tag: 'copy',
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
|
||||
registerCommand({
|
||||
id: 'jslTableGrid.export',
|
||||
category: 'Data grid',
|
||||
name: 'Export',
|
||||
category: __t('command.dataGrid', { defaultMessage: 'Data grid' }),
|
||||
name: __t('command.dataGrid.export', { defaultMessage: 'Export' }),
|
||||
icon: 'icon export',
|
||||
keyText: 'CtrlOrCommand+E',
|
||||
testEnabled: () => getCurrentEditor() != null,
|
||||
@@ -56,6 +56,7 @@
|
||||
|
||||
import LoadingDataGridCore from './LoadingDataGridCore.svelte';
|
||||
import { openImportExportTab } from '../utility/importExportTools';
|
||||
import { __t } from '../translations';
|
||||
|
||||
export let jslid;
|
||||
export let display;
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
{/if}
|
||||
|
||||
{#if dependencies.length > 0}
|
||||
<div class="bold nowrap ml-1">Dependent tables ({dependencies.length})</div>
|
||||
<div class="bold nowrap ml-1">{_t('dataGrid.dependentTables', { defaultMessage: 'Dependent tables' })} ({dependencies.length})</div>
|
||||
{#each dependencies.filter(fk => filterName(filter, fk.pureName)) as fk}
|
||||
<div
|
||||
class="link"
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
|
||||
registerCommand({
|
||||
id: 'designer.arrange',
|
||||
category: 'Designer',
|
||||
category: __t('command.designer', { defaultMessage: 'Designer' }),
|
||||
icon: 'icon arrange',
|
||||
name: 'Arrange',
|
||||
name: __t('command.designer.arrange', { defaultMessage: 'Arrange' }),
|
||||
toolbar: true,
|
||||
isRelatedToTab: true,
|
||||
testEnabled: () => getCurrentEditor()?.canArrange(),
|
||||
@@ -15,9 +15,9 @@
|
||||
|
||||
registerCommand({
|
||||
id: 'diagram.export',
|
||||
category: 'Designer',
|
||||
toolbarName: 'Export diagram',
|
||||
name: 'Export diagram',
|
||||
category: __t('command.designer', { defaultMessage: 'Designer' }),
|
||||
toolbarName: __t('command.designer.exportDiagram', { defaultMessage: 'Export diagram' }),
|
||||
name: __t('command.designer.exportDiagram', { defaultMessage: 'Export diagram' }),
|
||||
icon: 'icon report',
|
||||
toolbar: true,
|
||||
isRelatedToTab: true,
|
||||
@@ -27,9 +27,9 @@
|
||||
|
||||
registerCommand({
|
||||
id: 'diagram.deleteSelectedTables',
|
||||
category: 'Designer',
|
||||
toolbarName: 'Remove',
|
||||
name: 'Remove selected tables',
|
||||
category: __t('command.designer', { defaultMessage: 'Designer' }),
|
||||
toolbarName: __t('command.designer.remove', { defaultMessage: 'Remove' }),
|
||||
name: __t('command.designer.removeSelectedTables', { defaultMessage: 'Remove selected tables' }),
|
||||
icon: 'icon delete',
|
||||
toolbar: true,
|
||||
isRelatedToTab: true,
|
||||
@@ -67,6 +67,7 @@
|
||||
import { isProApp } from '../utility/proTools';
|
||||
import dragScroll from '../utility/dragScroll';
|
||||
import FormStyledButton from '../buttons/FormStyledButton.svelte';
|
||||
import { __t } from '../translations';
|
||||
|
||||
export let value;
|
||||
export let onChange;
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
import { evaluateCondition } from 'dbgate-sqltree';
|
||||
import { compileCompoudEvalCondition } from 'dbgate-filterparser';
|
||||
import { chevronExpandIcon } from '../icons/expandIcons';
|
||||
import { _val } from '../translations';
|
||||
|
||||
export let columns: (TableControlColumn | false)[];
|
||||
export let rows = null;
|
||||
@@ -368,7 +369,7 @@
|
||||
{/if}
|
||||
{/key}
|
||||
{:else}
|
||||
{ _.isFunction(row[col.fieldName]) ? row[col.fieldName]() : row[col.fieldName] || ''}
|
||||
{ _val(row[col.fieldName]) || '' }
|
||||
{/if}
|
||||
</td>
|
||||
{/each}
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
import { getFormContext } from './FormProviderCore.svelte';
|
||||
import TextField from './TextField.svelte';
|
||||
import { _t } from '../translations';
|
||||
|
||||
export let name;
|
||||
export let disabled = false;
|
||||
@@ -29,7 +30,7 @@
|
||||
setFieldValue(name, e.target['value']);
|
||||
}
|
||||
}}
|
||||
placeholder={isCrypted ? '(Password is encrypted)' : undefined}
|
||||
placeholder={isCrypted ? _t('common.passwordEncrypted', { defaultMessage: 'Password is encrypted' }) : undefined}
|
||||
type={isCrypted || showPassword ? 'text' : 'password'}
|
||||
/>
|
||||
{#if !isCrypted}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<script lang="ts">
|
||||
import { getFormContext } from './FormProviderCore.svelte';
|
||||
import TextField from './TextField.svelte';
|
||||
import { _val } from '../translations';
|
||||
|
||||
export let name;
|
||||
export let defaultValue;
|
||||
@@ -11,7 +12,7 @@
|
||||
|
||||
<TextField
|
||||
{...$$restProps}
|
||||
value={$values?.[name] ?? defaultValue}
|
||||
value={$values?.[name] ? _val($values[name]) : defaultValue}
|
||||
on:input={e => setFieldValue(name, e.target['value'])}
|
||||
on:input={e => {
|
||||
if (saveOnInput) {
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
|
||||
registerCommand({
|
||||
id: 'collectionJsonView.expandAll',
|
||||
category: 'Collection data',
|
||||
name: 'Expand all',
|
||||
category: __t('command.collectionData', { defaultMessage: 'Collection data' }),
|
||||
name: __t('command.collectionData.expandAll', { defaultMessage: 'Expand all' }),
|
||||
isRelatedToTab: true,
|
||||
icon: 'icon expand-all',
|
||||
onClick: () => getCurrentEditor().handleExpandAll(),
|
||||
@@ -12,8 +12,8 @@
|
||||
});
|
||||
registerCommand({
|
||||
id: 'collectionJsonView.collapseAll',
|
||||
category: 'Collection data',
|
||||
name: 'Collapse all',
|
||||
category: __t('command.collectionData', { defaultMessage: 'Collection data' }),
|
||||
name: __t('command.collectionData.collapseAll', { defaultMessage: 'Collapse all' }),
|
||||
isRelatedToTab: true,
|
||||
icon: 'icon collapse-all',
|
||||
onClick: () => getCurrentEditor().handleCollapseAll(),
|
||||
@@ -37,6 +37,7 @@
|
||||
import CollectionJsonRow from './CollectionJsonRow.svelte';
|
||||
import { getIntSettingsValue } from '../settings/settingsTools';
|
||||
import invalidateCommands from '../commands/invalidateCommands';
|
||||
import { __t } from '../translations';
|
||||
|
||||
export let conid;
|
||||
export let database;
|
||||
|
||||
@@ -14,8 +14,8 @@
|
||||
|
||||
registerCommand({
|
||||
id: 'dataForm.refresh',
|
||||
category: 'Data form',
|
||||
name: _t('common.refresh', { defaultMessage: 'Refresh' }),
|
||||
category: __t('command.dataForm', { defaultMessage: 'Data form' }),
|
||||
name: __t('common.refresh', { defaultMessage: 'Refresh' }),
|
||||
keyText: 'F5 | CtrlOrCommand+R',
|
||||
toolbar: true,
|
||||
isRelatedToTab: true,
|
||||
@@ -26,8 +26,8 @@
|
||||
|
||||
registerCommand({
|
||||
id: 'dataForm.copyToClipboard',
|
||||
category: 'Data form',
|
||||
name: 'Copy to clipboard',
|
||||
category: __t('command.dataForm', { defaultMessage: 'Data form' }),
|
||||
name: __t('command.dataForm.copyToClipboard', { defaultMessage: 'Copy to clipboard' }),
|
||||
keyText: 'CtrlOrCommand+C',
|
||||
disableHandleKeyText: 'CtrlOrCommand+C',
|
||||
testEnabled: () => getCurrentDataForm() != null,
|
||||
@@ -36,8 +36,8 @@
|
||||
|
||||
registerCommand({
|
||||
id: 'dataForm.revertRowChanges',
|
||||
category: 'Data form',
|
||||
name: 'Revert row changes',
|
||||
category: __t('command.dataForm', { defaultMessage: 'Data form' }),
|
||||
name: __t('command.dataForm.revertRowChanges', { defaultMessage: 'Revert row changes' }),
|
||||
keyText: 'CtrlOrCommand+U',
|
||||
testEnabled: () => getCurrentDataForm()?.getGrider()?.containsChanges,
|
||||
onClick: () => getCurrentDataForm().getGrider().revertRowChanges(0),
|
||||
@@ -45,8 +45,8 @@
|
||||
|
||||
registerCommand({
|
||||
id: 'dataForm.setNull',
|
||||
category: 'Data form',
|
||||
name: 'Set NULL',
|
||||
category: __t('command.dataForm', { defaultMessage: 'Data form' }),
|
||||
name: __t('command.dataForm.setNull', { defaultMessage: 'Set NULL' }),
|
||||
keyText: 'CtrlOrCommand+0',
|
||||
testEnabled: () => getCurrentDataForm() != null && !getCurrentDataForm()?.getEditorTypes()?.supportFieldRemoval,
|
||||
onClick: () => getCurrentDataForm().setFixedValue(null),
|
||||
@@ -54,8 +54,8 @@
|
||||
|
||||
registerCommand({
|
||||
id: 'dataForm.removeField',
|
||||
category: 'Data form',
|
||||
name: 'Remove field',
|
||||
category: __t('command.dataForm', { defaultMessage: 'Data form' }),
|
||||
name: __t('command.dataForm.removeField', { defaultMessage: 'Remove field' }),
|
||||
keyText: 'CtrlOrCommand+0',
|
||||
testEnabled: () => getCurrentDataForm() != null && getCurrentDataForm()?.getEditorTypes()?.supportFieldRemoval,
|
||||
onClick: () => getCurrentDataForm().setFixedValue(undefined),
|
||||
@@ -63,8 +63,8 @@
|
||||
|
||||
registerCommand({
|
||||
id: 'dataForm.undo',
|
||||
category: 'Data form',
|
||||
name: 'Undo',
|
||||
category: __t('command.dataForm', { defaultMessage: 'Data form' }),
|
||||
name: __t('command.dataForm.undo', { defaultMessage: 'Undo' }),
|
||||
group: 'undo',
|
||||
icon: 'icon undo',
|
||||
toolbar: true,
|
||||
@@ -75,8 +75,8 @@
|
||||
|
||||
registerCommand({
|
||||
id: 'dataForm.redo',
|
||||
category: 'Data form',
|
||||
name: 'Redo',
|
||||
category: __t('command.dataForm', { defaultMessage: 'Data form' }),
|
||||
name: __t('command.dataForm.redo', { defaultMessage: 'Redo' }),
|
||||
group: 'redo',
|
||||
icon: 'icon redo',
|
||||
toolbar: true,
|
||||
@@ -87,16 +87,16 @@
|
||||
|
||||
registerCommand({
|
||||
id: 'dataForm.reconnect',
|
||||
category: 'Data grid',
|
||||
name: 'Reconnect',
|
||||
category: __t('command.dataGrid', { defaultMessage: 'Data grid' }),
|
||||
name: __t('command.dataGrid.reconnect', { defaultMessage: 'Reconnect' }),
|
||||
testEnabled: () => getCurrentDataForm() != null,
|
||||
onClick: () => getCurrentDataForm().reconnect(),
|
||||
});
|
||||
|
||||
registerCommand({
|
||||
id: 'dataForm.filterSelected',
|
||||
category: 'Data form',
|
||||
name: 'Filter this value',
|
||||
category: __t('command.dataForm', { defaultMessage: 'Data form' }),
|
||||
name: __t('command.dataForm.filterSelected', { defaultMessage: 'Filter this value' }),
|
||||
keyText: 'CtrlOrCommand+Shift+F',
|
||||
testEnabled: () => getCurrentDataForm() != null,
|
||||
onClick: () => getCurrentDataForm().filterSelectedValue(),
|
||||
@@ -104,16 +104,16 @@
|
||||
|
||||
registerCommand({
|
||||
id: 'dataForm.addToFilter',
|
||||
category: 'Data form',
|
||||
name: 'Add to filter',
|
||||
category: __t('command.dataForm', { defaultMessage: 'Data form' }),
|
||||
name: __t('command.dataForm.addToFilter', { defaultMessage: 'Add to filter' }),
|
||||
testEnabled: () => getCurrentDataForm() != null,
|
||||
onClick: () => getCurrentDataForm().addToFilter(),
|
||||
});
|
||||
|
||||
registerCommand({
|
||||
id: 'dataForm.goToFirst',
|
||||
category: 'Data form',
|
||||
name: 'First',
|
||||
category: __t('command.dataForm', { defaultMessage: 'Data form' }),
|
||||
name: __t('command.dataForm.goToFirst', { defaultMessage: 'First' }),
|
||||
keyText: 'CtrlOrCommand+Home',
|
||||
toolbar: true,
|
||||
isRelatedToTab: true,
|
||||
@@ -124,8 +124,8 @@
|
||||
|
||||
registerCommand({
|
||||
id: 'dataForm.goToPrevious',
|
||||
category: 'Data form',
|
||||
name: 'Previous',
|
||||
category: __t('command.dataForm', { defaultMessage: 'Data form' }),
|
||||
name: __t('command.dataForm.goToPrevious', { defaultMessage: 'Previous' }),
|
||||
keyText: 'CtrlOrCommand+ArrowUp',
|
||||
toolbar: true,
|
||||
isRelatedToTab: true,
|
||||
@@ -136,8 +136,8 @@
|
||||
|
||||
registerCommand({
|
||||
id: 'dataForm.goToNext',
|
||||
category: 'Data form',
|
||||
name: 'Next',
|
||||
category: __t('command.dataForm', { defaultMessage: 'Data form' }),
|
||||
name: __t('command.dataForm.goToNext', { defaultMessage: 'Next' }),
|
||||
keyText: 'CtrlOrCommand+ArrowDown',
|
||||
toolbar: true,
|
||||
isRelatedToTab: true,
|
||||
@@ -148,8 +148,8 @@
|
||||
|
||||
registerCommand({
|
||||
id: 'dataForm.goToLast',
|
||||
category: 'Data form',
|
||||
name: 'Last',
|
||||
category: __t('command.dataForm', { defaultMessage: 'Data form' }),
|
||||
name: __t('command.dataForm.goToLast', { defaultMessage: 'Last' }),
|
||||
keyText: 'CtrlOrCommand+End',
|
||||
toolbar: true,
|
||||
isRelatedToTab: true,
|
||||
@@ -197,7 +197,7 @@
|
||||
import resizeObserver from '../utility/resizeObserver';
|
||||
import openReferenceForm from './openReferenceForm';
|
||||
import { useSettings } from '../utility/metadataLoaders';
|
||||
import { _t } from '../translations';
|
||||
import { _t, __t } from '../translations';
|
||||
|
||||
export let conid;
|
||||
export let database;
|
||||
@@ -243,20 +243,16 @@
|
||||
|
||||
function getRowCountInfo(allRowCount) {
|
||||
if (rowCountNotAvailable) {
|
||||
return `Row: ${((display.config.formViewRecordNumber || 0) + 1).toLocaleString()} / ???`;
|
||||
return _t('dataForm.rowCount', { defaultMessage: 'Row: {rowCount} / ???', values: { rowCount: ((display.config.formViewRecordNumber || 0) + 1).toLocaleString() } });
|
||||
}
|
||||
if (rowData == null) {
|
||||
if (allRowCount != null) {
|
||||
return `Out of bounds: ${(
|
||||
(display.config.formViewRecordNumber || 0) + 1
|
||||
).toLocaleString()} / ${allRowCount.toLocaleString()}`;
|
||||
return _t('dataForm.outOfBounds', { defaultMessage: 'Out of bounds: {current} / {total}', values: { current: ((display.config.formViewRecordNumber || 0) + 1).toLocaleString(), total: allRowCount.toLocaleString() } });
|
||||
}
|
||||
return 'No data';
|
||||
return _t('dataForm.noData', { defaultMessage: 'No data' });
|
||||
}
|
||||
if (allRowCount == null || display == null) return 'Loading row count...';
|
||||
return `Row: ${(
|
||||
(display.config.formViewRecordNumber || 0) + 1
|
||||
).toLocaleString()} / ${allRowCount.toLocaleString()}`;
|
||||
if (allRowCount == null || display == null) return _t('dataForm.loadingRowCount', { defaultMessage: 'Loading row count...' });
|
||||
return _t('dataForm.rowCount', { defaultMessage: 'Row: {current} / {total}', values: { current: ((display.config.formViewRecordNumber || 0) + 1).toLocaleString(), total: allRowCount.toLocaleString() } });
|
||||
}
|
||||
|
||||
export function getGrider() {
|
||||
@@ -720,7 +716,7 @@
|
||||
</div>
|
||||
|
||||
{#if isLoading}
|
||||
<LoadingInfo wrapper message="Loading data" />
|
||||
<LoadingInfo wrapper message={_t('common.loadingData', { defaultMessage: 'Loading data' })} />
|
||||
{/if}
|
||||
|
||||
<style>
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
import KeyboardModal from './KeyboardModal.svelte';
|
||||
import ModalBase from './ModalBase.svelte';
|
||||
import { closeCurrentModal, showModal } from './modalTools';
|
||||
import { _t } from '../translations';
|
||||
|
||||
export let command;
|
||||
|
||||
@@ -23,16 +24,16 @@
|
||||
|
||||
<FormProviderCore {values}>
|
||||
<ModalBase {...$$restProps}>
|
||||
<svelte:fragment slot="header">Configure commmand</svelte:fragment>
|
||||
<svelte:fragment slot="header">{_t('commandModal.configure', { defaultMessage: 'Configure command' })}</svelte:fragment>
|
||||
|
||||
<FormTextField label="Category" name="category" disabled />
|
||||
<FormTextField label="Name" name="name" disabled />
|
||||
<FormTextField label={_t('commandModal.category', { defaultMessage: 'Category' })} name="category" disabled />
|
||||
<FormTextField label={_t('commandModal.name', { defaultMessage: 'Name' })} name="name" disabled />
|
||||
|
||||
<div class="row">
|
||||
<FormTextField label="Keyboard shortcut" name="keyText" templateProps={{ noMargin: true }} focused />
|
||||
<FormTextField label={_t('commandModal.keyboardShortcut', { defaultMessage: 'Keyboard shortcut' })} name="keyText" templateProps={{ noMargin: true }} focused />
|
||||
<FormStyledButton
|
||||
type="button"
|
||||
value="Keyboard"
|
||||
value={_t('commandModal.keyboard', { defaultMessage: 'Keyboard' })}
|
||||
on:click={handleKeyboard}
|
||||
data-testid="CommandModal_keyboardButton"
|
||||
/>
|
||||
@@ -56,7 +57,7 @@
|
||||
/>
|
||||
<FormStyledButton
|
||||
type="button"
|
||||
value="Reset"
|
||||
value={_t('common.reset', { defaultMessage: 'Reset' })}
|
||||
on:click={() => {
|
||||
closeCurrentModal();
|
||||
apiCall('config/update-settings', {
|
||||
@@ -64,7 +65,7 @@
|
||||
});
|
||||
}}
|
||||
/>
|
||||
<FormStyledButton type="button" value="Close" on:click={closeCurrentModal} />
|
||||
<FormStyledButton type="button" value={_t('common.close', { defaultMessage: 'Close' })} on:click={closeCurrentModal} />
|
||||
</svelte:fragment>
|
||||
</ModalBase>
|
||||
</FormProviderCore>
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
import { parseCellValue, safeJsonParse, stringifyCellValue } from 'dbgate-tools';
|
||||
import { showSnackbarError } from '../utility/snackbar';
|
||||
import ErrorMessageModal from './ErrorMessageModal.svelte';
|
||||
import { _t } from '../translations';
|
||||
|
||||
export let onSave;
|
||||
export let value;
|
||||
@@ -49,14 +50,14 @@
|
||||
if (parsed) {
|
||||
textValue = JSON.stringify(parsed, null, 2);
|
||||
} else {
|
||||
showModal(ErrorMessageModal, { message: 'Not valid JSON' });
|
||||
showModal(ErrorMessageModal, { message: _t('dataGrid.formatJson.invalid', { defaultMessage: 'Not valid JSON' }) });
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<FormProvider>
|
||||
<ModalBase {...$$restProps}>
|
||||
<div slot="header">Edit cell value</div>
|
||||
<div slot="header">{_t('dataGrid.editCellValue', { defaultMessage: 'Edit cell value' })}</div>
|
||||
|
||||
<div class="editor">
|
||||
<AceEditor bind:value={textValue} bind:this={editor} onKeyDown={handleKeyDown} mode={syntaxMode} />
|
||||
@@ -72,21 +73,21 @@
|
||||
closeCurrentModal();
|
||||
}}
|
||||
/>
|
||||
<FormStyledButton type="button" value="Cancel" on:click={closeCurrentModal} />
|
||||
<FormStyledButton type="button" value={_t('common.cancel', { defaultMessage: 'Cancel' })} on:click={closeCurrentModal} />
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<FormStyledButton type="button" value="Format JSON" on:click={handleFormatJson} />
|
||||
<FormStyledButton type="button" skipWidth={true} value={_t('dataGrid.formatJson', { defaultMessage: 'Format JSON' })} on:click={handleFormatJson} />
|
||||
|
||||
Code highlighting:
|
||||
{_t('dataGrid.codeHighlighting', { defaultMessage: 'Code highlighting:' })}
|
||||
<SelectField
|
||||
isNative
|
||||
value={syntaxMode}
|
||||
on:change={e => (syntaxMode = e.detail)}
|
||||
options={[
|
||||
{ value: 'text', label: 'None (raw text)' },
|
||||
{ value: 'text', label: _t('dataGrid.codeHighlighting.none', { defaultMessage: 'None (raw text)' }) },
|
||||
{ value: 'json', label: 'JSON' },
|
||||
{ value: 'html', label: 'HTML' },
|
||||
{ value: 'html', label: 'HTML'},
|
||||
{ value: 'xml', label: 'XML' },
|
||||
]}
|
||||
/>
|
||||
|
||||
@@ -6,8 +6,9 @@
|
||||
|
||||
import ModalBase from './ModalBase.svelte';
|
||||
import { closeCurrentModal } from './modalTools';
|
||||
import { _t } from '../translations';
|
||||
|
||||
export let title = 'Error';
|
||||
export let title = _t('common.error', { defaultMessage: 'Error' });
|
||||
export let message;
|
||||
export let showAsCode = false;
|
||||
</script>
|
||||
@@ -30,7 +31,7 @@
|
||||
{/if}
|
||||
|
||||
<div slot="footer">
|
||||
<FormSubmit value="Close" on:click={closeCurrentModal} data-testid="ErrorMessageModal_closeButton" />
|
||||
<FormSubmit value={_t('common.close', { defaultMessage: 'Close' })} on:click={closeCurrentModal} data-testid="ErrorMessageModal_closeButton" />
|
||||
</div>
|
||||
</ModalBase>
|
||||
</FormProvider>
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
import keycodes from '../utility/keycodes';
|
||||
import ModalBase from './ModalBase.svelte';
|
||||
import { closeCurrentModal } from './modalTools';
|
||||
import { _t } from '../translations';
|
||||
|
||||
export let onChange;
|
||||
let value;
|
||||
@@ -38,7 +39,7 @@
|
||||
</script>
|
||||
|
||||
<ModalBase {...$$restProps} simple>
|
||||
<div class="mb-2">Show desired key combination and press ENTER</div>
|
||||
<div class="mb-2">_{_t('commandModal.showKeyCombination', { defaultMessage: 'Show desired key combination and press ENTER' })}</div>
|
||||
<div class="largeFormMarker">
|
||||
<TextField on:keydown={handleKeyDown} bind:value focused />
|
||||
</div>
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
import ErrorMessageModal from './ErrorMessageModal.svelte';
|
||||
import ModalBase from './ModalBase.svelte';
|
||||
import { closeCurrentModal, showModal } from './modalTools';
|
||||
import { _t } from '../translations';
|
||||
|
||||
export let driver;
|
||||
export let dbid;
|
||||
@@ -44,14 +45,14 @@
|
||||
<FormProvider initialValues={{ name: '' }}>
|
||||
<ModalBase {...$$restProps}>
|
||||
<svelte:fragment slot="header">
|
||||
Create {driver?.collectionSingularLabel ?? 'collection/container'}
|
||||
{_t('dbObject.createCollection', { defaultMessage: 'Create collection/container'})}
|
||||
</svelte:fragment>
|
||||
|
||||
<FormArgumentList args={driver?.newCollectionFormParams} />
|
||||
|
||||
<svelte:fragment slot="footer">
|
||||
<FormSubmit value="OK" on:click={e => handleSubmit(e.detail)} disabled={isSaving} />
|
||||
<FormStyledButton type="button" value="Cancel" on:click={closeCurrentModal} />
|
||||
<FormStyledButton type="button" value={_t('common.cancel', { defaultMessage: 'Cancel' })} on:click={closeCurrentModal} />
|
||||
</svelte:fragment>
|
||||
</ModalBase>
|
||||
</FormProvider>
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
import _ from 'lodash';
|
||||
import { apiCall } from '../utility/api';
|
||||
import ErrorInfo from '../elements/ErrorInfo.svelte';
|
||||
import { _t } from '../translations';
|
||||
|
||||
export let onConfirm;
|
||||
export let conid;
|
||||
@@ -73,15 +74,15 @@
|
||||
|
||||
<FormProvider>
|
||||
<ModalBase {...$$restProps}>
|
||||
<svelte:fragment slot="header">Choose value from {field}</svelte:fragment>
|
||||
<svelte:fragment slot="header">{_t('dataGrid.chooseValue', { defaultMessage: 'Choose value from {field}', values: { field } })}</svelte:fragment>
|
||||
|
||||
<!-- <FormTextField name="search" label='Search' placeholder="Search" bind:value={search} /> -->
|
||||
<div class="largeFormMarker">
|
||||
<SearchInput placeholder="Search" bind:value={search} isDebounced />
|
||||
<SearchInput placeholder={_t('common.search', { defaultMessage: 'Search' })} bind:value={search} isDebounced />
|
||||
</div>
|
||||
|
||||
{#if isLoading}
|
||||
<LoadingInfo message="Loading data" />
|
||||
<LoadingInfo message={_t('common.loadingData', { defaultMessage: 'Loading data' })} />
|
||||
{/if}
|
||||
|
||||
{#if !isLoading && rows}
|
||||
@@ -111,7 +112,7 @@
|
||||
},
|
||||
{
|
||||
fieldName: 'value',
|
||||
header: 'Value',
|
||||
header: _t('dataGrid.value', { defaultMessage: 'Value' }),
|
||||
formatter: row => (row.value == null ? '(NULL)' : row.value),
|
||||
},
|
||||
]}
|
||||
@@ -146,7 +147,7 @@
|
||||
}}
|
||||
/>
|
||||
{/if}
|
||||
<FormStyledButton type="button" value="Close" on:click={closeCurrentModal} />
|
||||
<FormStyledButton type="button" value={_t('common.close', { defaultMessage: 'Close' })} on:click={closeCurrentModal} />
|
||||
</svelte:fragment>
|
||||
</ModalBase>
|
||||
</FormProvider>
|
||||
|
||||
@@ -143,19 +143,20 @@ ORDER BY
|
||||
label={_t('settings.tabGroup.showServerName', { defaultMessage: 'Show server name alongside database name in title of the tab group' })}
|
||||
defaultValue={false}
|
||||
/>
|
||||
<!-- <div class="heading">{_t('settings.localization', { defaultMessage: 'Localization' })}</div>
|
||||
<div class="heading">{_t('settings.localization', { defaultMessage: 'Localization' })}</div>
|
||||
<FormSelectField
|
||||
label="Language"
|
||||
label={_t('settings.localization.language', { defaultMessage: 'Language' })}
|
||||
name="localization.language"
|
||||
defaultValue={getSelectedLanguage()}
|
||||
isNative
|
||||
options={[
|
||||
{ value: 'en', label: 'English' },
|
||||
{ value: 'cs', label: 'Czech' },
|
||||
{ value: 'cs', label: 'Čeština' },
|
||||
{ value: 'sk', label: 'Slovenčina' },
|
||||
]}
|
||||
on:change={() => {
|
||||
showModal(ConfirmModal, {
|
||||
message: 'Application will be reloaded to apply new language settings',
|
||||
message: _t('settings.localization.reloadWarning', { defaultMessage: 'Application will be reloaded to apply new language settings' }),
|
||||
onConfirm: () => {
|
||||
setTimeout(() => {
|
||||
internalRedirectTo('/');
|
||||
@@ -163,7 +164,7 @@ ORDER BY
|
||||
},
|
||||
});
|
||||
}}
|
||||
/> -->
|
||||
/>
|
||||
|
||||
<div class="heading">{_t('settings.dataGrid.title', { defaultMessage: 'Data grid' })}</div>
|
||||
<FormTextField
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
<FormProvider>
|
||||
<ModalBase {...$$restProps}>
|
||||
<svelte:fragment slot="header"
|
||||
>{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 } })}</svelte:fragment
|
||||
>{constraintInfo ? _t('tableEdit.editConstraintLabel', { defaultMessage: 'Edit {constraintLabel}', values: { constraintLabel } }) : _t('tableEdit.addConstraintLabel', { defaultMessage: 'Add {constraintLabel}', values: { constraintLabel } })}</svelte:fragment
|
||||
>
|
||||
|
||||
<div class="largeFormMarker">
|
||||
|
||||
@@ -239,8 +239,8 @@
|
||||
|
||||
registerCommand({
|
||||
id: 'tabs.nextTab',
|
||||
category: 'Tabs',
|
||||
name: _t('command.tabs.nextTab', { defaultMessage: 'Next tab' }),
|
||||
category: __t('command.tabs', { defaultMessage: 'Tabs' }),
|
||||
name: __t('command.tabs.nextTab', { defaultMessage: 'Next tab' }),
|
||||
keyText: 'Ctrl+Tab',
|
||||
testEnabled: () => getOpenedTabs().filter(x => !x.closedTime).length >= 2,
|
||||
onClick: () => switchTabByOrder(false),
|
||||
@@ -248,8 +248,8 @@
|
||||
|
||||
registerCommand({
|
||||
id: 'tabs.previousTab',
|
||||
category: 'Tabs',
|
||||
name: _t('command.tabs.previousTab', { defaultMessage: 'Previous tab' }),
|
||||
category: __t('command.tabs', { defaultMessage: 'Tabs' }),
|
||||
name: __t('command.tabs.previousTab', { defaultMessage: 'Previous tab' }),
|
||||
keyText: 'Ctrl+Shift+Tab',
|
||||
testEnabled: () => getOpenedTabs().filter(x => !x.closedTime).length >= 2,
|
||||
onClick: () => switchTabByOrder(true),
|
||||
@@ -257,16 +257,16 @@
|
||||
|
||||
registerCommand({
|
||||
id: 'tabs.closeAll',
|
||||
category: 'Tabs',
|
||||
name: _t('command.tabs.closeAll', { defaultMessage: 'Close all tabs' }),
|
||||
category: __t('command.tabs', { defaultMessage: 'Tabs' }),
|
||||
name: __t('command.tabs.closeAll', { defaultMessage: 'Close all tabs' }),
|
||||
testEnabled: () => getOpenedTabs().filter(x => !x.closedTime).length >= 1,
|
||||
onClick: closeAll,
|
||||
});
|
||||
|
||||
registerCommand({
|
||||
id: 'tabs.closeTab',
|
||||
category: 'Tabs',
|
||||
name: _t('command.tabs.closeTab', { defaultMessage: 'Close tab' }),
|
||||
category: __t('command.tabs', { defaultMessage: 'Tabs' }),
|
||||
name: __t('command.tabs.closeTab', { defaultMessage: 'Close tab' }),
|
||||
keyText: isElectronAvailable() ? 'CtrlOrCommand+W' : 'Alt+W',
|
||||
testEnabled: () => {
|
||||
const hasAnyOtherTab = getOpenedTabs().filter(x => !x.closedTime).length >= 1;
|
||||
@@ -279,24 +279,24 @@
|
||||
|
||||
registerCommand({
|
||||
id: 'tabs.closeTabsWithCurrentDb',
|
||||
category: 'Tabs',
|
||||
name: _t('command.tabs.closeTabsWithCurrentDb', { defaultMessage: 'Close tabs with current DB' }),
|
||||
category: __t('command.tabs', { defaultMessage: 'Tabs' }),
|
||||
name: __t('command.tabs.closeTabsWithCurrentDb', { defaultMessage: 'Close tabs with current DB' }),
|
||||
testEnabled: () => getOpenedTabs().filter(x => !x.closedTime).length >= 1 && !!getCurrentDatabase(),
|
||||
onClick: closeTabsWithCurrentDb,
|
||||
});
|
||||
|
||||
registerCommand({
|
||||
id: 'tabs.closeTabsButCurrentDb',
|
||||
category: 'Tabs',
|
||||
name: _t('command.tabs.closeTabsButCurrentDb', { defaultMessage: 'Close tabs but current DB' }),
|
||||
category: __t('command.tabs', { defaultMessage: 'Tabs' }),
|
||||
name: __t('command.tabs.closeTabsButCurrentDb', { defaultMessage: 'Close tabs but current DB' }),
|
||||
testEnabled: () => getOpenedTabs().filter(x => !x.closedTime).length >= 1 && !!getCurrentDatabase(),
|
||||
onClick: closeTabsButCurrentDb,
|
||||
});
|
||||
|
||||
registerCommand({
|
||||
id: 'tabs.reopenClosedTab',
|
||||
category: 'Tabs',
|
||||
name: _t('command.tabs.reopenClosedTab', { defaultMessage: 'Reopen closed tab' }),
|
||||
category: __t('command.tabs', { defaultMessage: 'Tabs' }),
|
||||
name: __t('command.tabs.reopenClosedTab', { defaultMessage: 'Reopen closed tab' }),
|
||||
keyText: 'CtrlOrCommand+Shift+T',
|
||||
testEnabled: () => getOpenedTabs().filter(x => x.closedTime).length >= 1,
|
||||
onClick: reopenClosedTab,
|
||||
@@ -304,8 +304,8 @@
|
||||
|
||||
registerCommand({
|
||||
id: 'tabs.addToFavorites',
|
||||
category: 'Tabs',
|
||||
name: _t('command.tabs.addToFavorites', { defaultMessage: 'Add current tab to favorites' }),
|
||||
category: __t('command.tabs', { defaultMessage: 'Tabs' }),
|
||||
name: __t('command.tabs.addToFavorites', { defaultMessage: 'Add current tab to favorites' }),
|
||||
// icon: 'icon favorite',
|
||||
// toolbar: true,
|
||||
testEnabled: () =>
|
||||
@@ -360,6 +360,7 @@
|
||||
import NewObjectModal from '../modals/NewObjectModal.svelte';
|
||||
import { isProApp } from '../utility/proTools';
|
||||
import { openWebLink } from '../utility/simpleTools';
|
||||
import { __t } from '../translations';
|
||||
|
||||
export let multiTabIndex;
|
||||
export let shownTab;
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
registerCommand({
|
||||
id: 'archiveFile.save',
|
||||
group: 'save',
|
||||
category: 'Archive file',
|
||||
name: 'Save',
|
||||
category: __t('command.archiveFile', { defaultMessage: 'Archive file' }),
|
||||
name: __t('command.archiveFile.save', { defaultMessage: 'Save' }),
|
||||
toolbar: true,
|
||||
isRelatedToTab: true,
|
||||
icon: 'icon save',
|
||||
@@ -17,8 +17,8 @@
|
||||
|
||||
registerCommand({
|
||||
id: 'archiveFile.saveAs',
|
||||
category: 'Archive file',
|
||||
name: 'Save as',
|
||||
category: __t('command.archiveFile', { defaultMessage: 'Archive file' }),
|
||||
name: __t('command.archiveFile.saveAs', { defaultMessage: 'Save as' }),
|
||||
icon: 'icon save',
|
||||
isRelatedToTab: true,
|
||||
testEnabled: () => getCurrentEditor() != null,
|
||||
@@ -49,6 +49,7 @@
|
||||
import { changeTab, markTabSaved, markTabUnsaved, sleep } from '../utility/common';
|
||||
import createActivator, { getActiveComponent } from '../utility/createActivator';
|
||||
import createUndoReducer from '../utility/createUndoReducer';
|
||||
import { __t } from '../translations';
|
||||
|
||||
export const activator = createActivator('ArchiveFileTab', true);
|
||||
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
registerCommand({
|
||||
id: 'collectionTable.save',
|
||||
group: 'save',
|
||||
category: 'Collection data',
|
||||
name: 'Save',
|
||||
category: __t('command.collectionData', { defaultMessage: 'Collection data' }),
|
||||
name: __t('command.collectionData.save', { defaultMessage: 'Save' }),
|
||||
// keyText: 'CtrlOrCommand+S',
|
||||
toolbar: true,
|
||||
isRelatedToTab: true,
|
||||
@@ -56,6 +56,7 @@
|
||||
import useEditorData from '../query/useEditorData';
|
||||
import { markTabSaved, markTabUnsaved } from '../utility/common';
|
||||
import { getNumberIcon } from '../icons/FontIcon.svelte';
|
||||
import { __t } from '../translations';
|
||||
|
||||
export let tabid;
|
||||
export let conid;
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
registerFileCommands({
|
||||
idPrefix: 'diagram',
|
||||
category: 'Diagram',
|
||||
category: __t('command.diagram', { defaultMessage: 'Diagram' }),
|
||||
getCurrentEditor,
|
||||
folder: 'diagrams',
|
||||
format: 'json',
|
||||
@@ -32,6 +32,7 @@
|
||||
import DiagramSettings from '../designer/DiagramSettings.svelte';
|
||||
import { derived } from 'svelte/store';
|
||||
import { isProApp } from '../utility/proTools';
|
||||
import { __t } from '../translations';
|
||||
|
||||
export let tabid;
|
||||
export let conid;
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
registerFileCommands({
|
||||
idPrefix: 'favoriteJsonEditor',
|
||||
category: 'Favorite JSON editor',
|
||||
category: __t('command.favoriteJsonEditor', { defaultMessage: 'Favorite JSON editor' }),
|
||||
getCurrentEditor,
|
||||
folder: null,
|
||||
format: null,
|
||||
@@ -15,15 +15,15 @@
|
||||
registerCommand({
|
||||
id: 'favoriteJsonEditor.save',
|
||||
group: 'save',
|
||||
name: 'Save',
|
||||
category: 'Favorite JSON editor',
|
||||
name: __t('command.favoriteJsonEditor.save', { defaultMessage: 'Save' }),
|
||||
category: __t('command.favoriteJsonEditor', { defaultMessage: 'Favorite JSON editor' }),
|
||||
testEnabled: () => getCurrentEditor() != null,
|
||||
onClick: () => getCurrentEditor().save(),
|
||||
});
|
||||
registerCommand({
|
||||
id: 'favoriteJsonEditor.preview',
|
||||
name: 'Preview',
|
||||
category: 'Favorite JSON editor',
|
||||
name: __t('command.favoriteJsonEditor.preview', { defaultMessage: 'Preview' }),
|
||||
category: __t('command.favoriteJsonEditor', { defaultMessage: 'Favorite JSON editor' }),
|
||||
keyText: 'F5 | CtrlOrCommand+Enter',
|
||||
testEnabled: () => getCurrentEditor() != null,
|
||||
onClick: () => getCurrentEditor().preview(),
|
||||
@@ -43,6 +43,7 @@
|
||||
import { openFavorite } from '../appobj/FavoriteFileAppObject.svelte';
|
||||
import createActivator, { getActiveComponent } from '../utility/createActivator';
|
||||
import { apiCall } from '../utility/api';
|
||||
import { __t } from '../translations';
|
||||
|
||||
export let tabid;
|
||||
export let savedFile;
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
id: 'jsonl.save',
|
||||
group: 'save',
|
||||
category: 'JSON Lines editor',
|
||||
name: 'Save',
|
||||
name: __t('command.jsonl.save', { defaultMessage: 'Save' }),
|
||||
toolbar: true,
|
||||
isRelatedToTab: true,
|
||||
icon: 'icon save',
|
||||
@@ -28,7 +28,7 @@
|
||||
registerCommand({
|
||||
id: 'jsonl.preview',
|
||||
category: 'JSON Lines editor',
|
||||
name: 'Preview',
|
||||
name: __t('command.jsonl.preview', { defaultMessage: 'Preview' }),
|
||||
icon: 'icon preview',
|
||||
keyText: 'F5',
|
||||
testEnabled: () => getCurrentEditor() != null,
|
||||
@@ -38,7 +38,7 @@
|
||||
registerCommand({
|
||||
id: 'jsonl.previewNewTab',
|
||||
category: 'JSON Lines editor',
|
||||
name: 'Preview in new tab',
|
||||
name: __t('command.jsonl.previewNewTab', { defaultMessage: 'Preview in new tab' }),
|
||||
icon: 'icon preview',
|
||||
testEnabled: () => getCurrentEditor() != null,
|
||||
onClick: () => getCurrentEditor().previewMewTab(),
|
||||
@@ -47,7 +47,7 @@
|
||||
registerCommand({
|
||||
id: 'jsonl.closePreview',
|
||||
category: 'JSON Lines editor',
|
||||
name: 'Close preview',
|
||||
name: __t('command.jsonl.closePreview', { defaultMessage: 'Close preview' }),
|
||||
icon: 'icon close',
|
||||
testEnabled: () => getCurrentEditor()?.isPreview(),
|
||||
onClick: () => getCurrentEditor().closePreview(),
|
||||
@@ -74,6 +74,7 @@
|
||||
import VerticalSplitter from '../elements/VerticalSplitter.svelte';
|
||||
import JslDataGrid from '../datagrid/JslDataGrid.svelte';
|
||||
import ToolStripCommandSplitButton from '../buttons/ToolStripCommandSplitButton.svelte';
|
||||
import { __t } from '../translations';
|
||||
|
||||
export let tabid;
|
||||
export let archiveFolder;
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
registerCommand({
|
||||
id: 'markdown.preview',
|
||||
category: 'Markdown',
|
||||
name: 'Preview',
|
||||
name: __t('command.markdown.preview', { defaultMessage: 'Preview' }),
|
||||
icon: 'icon run',
|
||||
toolbar: true,
|
||||
isRelatedToTab: true,
|
||||
@@ -38,6 +38,7 @@
|
||||
import openNewTab from '../utility/openNewTab';
|
||||
import { setSelectedTab } from '../utility/common';
|
||||
import createActivator, { getActiveComponent } from '../utility/createActivator';
|
||||
import { __t } from '../translations';
|
||||
|
||||
export let tabid;
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
|
||||
registerCommand({
|
||||
id: 'queryData.stopLoading',
|
||||
category: 'Query data',
|
||||
name: 'Stop loading',
|
||||
category: __t('command.queryData', { defaultMessage: 'Query data' }),
|
||||
name: __t('command.queryData.stopLoading', { defaultMessage: 'Stop loading' }),
|
||||
icon: 'icon stop',
|
||||
testEnabled: () => getCurrentEditor()?.isLoading(),
|
||||
onClick: () => getCurrentEditor().stopLoading(),
|
||||
@@ -32,6 +32,7 @@
|
||||
import yaml from 'js-yaml';
|
||||
import JslChart from '../charts/JslChart.svelte';
|
||||
import ToolStripButton from '../buttons/ToolStripButton.svelte';
|
||||
import { __t } from '../translations';
|
||||
|
||||
export const activator = createActivator('QueryDataTab', true);
|
||||
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
|
||||
registerCommand({
|
||||
id: 'serverSummary.refresh',
|
||||
category: 'Server sumnmary',
|
||||
name: _t('common.refresh', { defaultMessage: 'Refresh' }),
|
||||
category: __t('command.serverSummary', { defaultMessage: 'Server summary' }),
|
||||
name: __t('common.refresh', { defaultMessage: 'Refresh' }),
|
||||
keyText: 'F5 | CtrlOrCommand+R',
|
||||
toolbar: true,
|
||||
isRelatedToTab: true,
|
||||
@@ -21,7 +21,7 @@
|
||||
import LoadingInfo from '../elements/LoadingInfo.svelte';
|
||||
import TabControl from '../elements/TabControl.svelte';
|
||||
|
||||
import { _t } from '../translations';
|
||||
import { _t, __t } from '../translations';
|
||||
import { apiCall } from '../utility/api';
|
||||
import createActivator, { getActiveComponent } from '../utility/createActivator';
|
||||
import openNewTab from '../utility/openNewTab';
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
registerCommand({
|
||||
id: 'shell.copyNodeScript',
|
||||
category: 'Shell',
|
||||
name: 'Copy nodejs script',
|
||||
name: __t('command.shell.copyNodeScript', { defaultMessage: 'Copy nodejs script' }),
|
||||
testEnabled: () => getCurrentEditor() != null,
|
||||
onClick: () => getCurrentEditor().copyNodeScript(),
|
||||
});
|
||||
@@ -49,6 +49,7 @@
|
||||
import { showSnackbarError } from '../utility/snackbar';
|
||||
import useEffect from '../utility/useEffect';
|
||||
import useTimerLabel from '../utility/useTimerLabel';
|
||||
import { __t } from '../translations';
|
||||
|
||||
export let tabid;
|
||||
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
|
||||
registerCommand({
|
||||
id: 'sqlObject.find',
|
||||
category: 'SQL Object',
|
||||
name: 'Find',
|
||||
category: __t('command.sqlObject', { defaultMessage: 'SQL Object' }),
|
||||
name: __t('command.sqlObject.find', { defaultMessage: 'Find' }),
|
||||
keyText: 'CtrlOrCommand+F',
|
||||
testEnabled: () => getCurrentEditor() != null,
|
||||
onClick: () => getCurrentEditor().find(),
|
||||
@@ -31,6 +31,7 @@
|
||||
import ToolStripButton from '../buttons/ToolStripButton.svelte';
|
||||
import openNewTab from '../utility/openNewTab';
|
||||
import { getBoolSettingsValue } from '../settings/settingsTools';
|
||||
import { __t } from '../translations';
|
||||
|
||||
export let tabid;
|
||||
export let appObjectData;
|
||||
|
||||
@@ -3,6 +3,7 @@ import { currentDatabase, getExtensions, getOpenedTabs, loadingSchemaLists, open
|
||||
import _ from 'lodash';
|
||||
import { getSchemaList } from './metadataLoaders';
|
||||
import { showSnackbarError } from './snackbar';
|
||||
import { _t } from '../translations';
|
||||
|
||||
export class LoadingToken {
|
||||
isCanceled = false;
|
||||
@@ -57,8 +58,14 @@ export function setSelectedTab(tabid) {
|
||||
}
|
||||
|
||||
export function getObjectTypeFieldLabel(objectTypeField, driver?) {
|
||||
if (objectTypeField == 'matviews') return 'Materialized Views';
|
||||
if (objectTypeField == 'collections') return _.startCase(driver?.collectionPluralLabel) ?? 'Collections/Containers';
|
||||
if (objectTypeField == 'tables') return _t('dbObject.tables', { defaultMessage: 'Tables' });
|
||||
if (objectTypeField == 'views') return _t('dbObject.views', { defaultMessage: 'Views' });
|
||||
if (objectTypeField == 'procedures') return _t('dbObject.procedures', { defaultMessage: 'Procedures' });
|
||||
if (objectTypeField == 'functions') return _t('dbObject.functions', { defaultMessage: 'Functions' });
|
||||
if (objectTypeField == 'triggers') return _t('dbObject.triggers', { defaultMessage: 'Triggers' });
|
||||
if (objectTypeField == 'schedulerEvents') return _t('dbObject.schedulerEvents', { defaultMessage: 'Scheduler Events' });
|
||||
if (objectTypeField == 'matviews') return _t('dbObject.matviews', { defaultMessage: 'Materialized Views' });
|
||||
if (objectTypeField == 'collections') return _t('dbObject.collections', { defaultMessage: 'Collections/Containers' });
|
||||
return _.startCase(objectTypeField);
|
||||
}
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ import invalidateCommands from '../commands/invalidateCommands';
|
||||
import { runGroupCommand } from '../commands/runCommand';
|
||||
import { currentDropDownMenu, visibleCommandPalette } from '../stores';
|
||||
import getAsArray from './getAsArray';
|
||||
import { _val } from '../translations';
|
||||
|
||||
let isContextMenuSupressed = false;
|
||||
|
||||
@@ -114,7 +115,7 @@ function mapItem(item, commands) {
|
||||
if (command) {
|
||||
const commandText = item.text || command.menuName || command.toolbarName || command.name;
|
||||
return {
|
||||
text: _.isFunction(commandText) ? commandText() : commandText,
|
||||
text: _val(commandText),
|
||||
keyText: command.keyText || command.keyTextFromGroup || command.disableHandleKeyText,
|
||||
onClick: () => {
|
||||
if (command.isGroupCommand) {
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
|
||||
<WidgetColumnBarItem
|
||||
title={driver?.databaseEngineTypes?.includes('document')
|
||||
? (driver?.collectionPluralLabel ?? 'Collections/containers')
|
||||
? _t('widget.collectionsContainers', { defaultMessage: 'Collections/containers' })
|
||||
: _t('widget.tablesViewsFunctions', { defaultMessage: 'Tables, views, functions' })}
|
||||
name="dbObjects"
|
||||
storageName="dbObjectsWidget"
|
||||
|
||||
@@ -205,7 +205,7 @@
|
||||
{#if driver?.databaseEngineTypes?.includes('document')}
|
||||
<div class="m-1" />
|
||||
<InlineButton on:click={() => runCommand('new.collection')}
|
||||
>New {driver?.collectionSingularLabel ?? 'collection/container'}</InlineButton
|
||||
>{_t('sqlObject.newCollection', { defaultMessage: 'New collection/container'})}</InlineButton
|
||||
>
|
||||
{/if}
|
||||
</WidgetsInnerContainer>
|
||||
|
||||
@@ -44,6 +44,64 @@
|
||||
"columnsConstraintEditor.addNewColumn": "Přidat nový sloupec",
|
||||
"columnsConstraintEditor.chooseColumn": "Vybrat sloupec",
|
||||
"columnsConstraintEditor.selectColumn": "Vybrat sloupec",
|
||||
"command.about": "O aplikaci",
|
||||
"command.about.show": "Zobrazit",
|
||||
"command.about.toolbar": "O aplikaci",
|
||||
"command.app.checkForUpdates": "Zkontrolovat dostupné aktualizace",
|
||||
"command.app.disconnect": "Odpojit",
|
||||
"command.app.loggedUser": "Přihlášený uživatel",
|
||||
"command.app.logout": "Odhlásit",
|
||||
"command.application": "Aplikace",
|
||||
"command.application.becomeSponsor": "Stát se sponzorem",
|
||||
"command.application.documentation": "Dokumentace",
|
||||
"command.application.maximize": "Maximalizovat",
|
||||
"command.application.minimize": "Minimalizovat",
|
||||
"command.application.openIssue": "Nahlásit problém nebo požadavek na funkci",
|
||||
"command.application.reload": "Obnovit",
|
||||
"command.application.toggleDevTools": "Přepnout vývojářské nástroje",
|
||||
"command.application.toggleFullScreen": "Přepnout celou obrazovku",
|
||||
"command.application.unsetCurrentDatabase": "Zrušit aktuální databázi",
|
||||
"command.application.web": "DbGate web",
|
||||
"command.application.zoomIn": "Přiblížit",
|
||||
"command.application.zoomOut": "Oddálit",
|
||||
"command.application.zoomReset": "Resetovat přiblížení",
|
||||
"command.archiveFile": "Archivní soubor",
|
||||
"command.archiveFile.save": "Uložit",
|
||||
"command.archiveFile.saveAs": "Uložit jako",
|
||||
"command.cloud": "Cloud",
|
||||
"command.cloud.logout": "Odhlásit",
|
||||
"command.collectionData": "Data kolekce",
|
||||
"command.collectionData.collapseAll": "Sbalit vše",
|
||||
"command.collectionData.expandAll": "Rozbalit vše",
|
||||
"command.collectionData.save": "Uložit",
|
||||
"command.commandPalette": "Paleta příkazů",
|
||||
"command.commandPalette.show": "Zobrazit",
|
||||
"command.copy": "Kopírovat",
|
||||
"command.dataForm": "Formulář dat",
|
||||
"command.dataForm.addToFilter": "Přidat do filtru",
|
||||
"command.dataForm.copyToClipboard": "Zkopírovat do schránky",
|
||||
"command.dataForm.filterSelected": "Filtrovat tuto hodnotu",
|
||||
"command.dataForm.goToFirst": "První",
|
||||
"command.dataForm.goToLast": "Poslední",
|
||||
"command.dataForm.goToNext": "Další",
|
||||
"command.dataForm.goToPrevious": "Předchozí",
|
||||
"command.dataForm.redo": "Znovu",
|
||||
"command.dataForm.removeField": "Odstranit pole",
|
||||
"command.dataForm.revertRowChanges": "Vrátit změny řádku",
|
||||
"command.dataForm.setNull": "Nastavit NULL",
|
||||
"command.dataForm.undo": "Vrátit",
|
||||
"command.dataGrid": "Datová mřížka",
|
||||
"command.dataGrid.export": "Export",
|
||||
"command.dataGrid.openQuery": "Otevřít dotaz",
|
||||
"command.dataGrid.reconnect": "Znovu připojit",
|
||||
"command.database": "Databáze",
|
||||
"command.database.changeRecent": "Změnit na nedávnou",
|
||||
"command.database.changeStatus": "Změnit stav",
|
||||
"command.database.chat": "Chat databáze",
|
||||
"command.database.compare": "Porovnat databáze",
|
||||
"command.database.databaseSearch": "Vyhledávání v databázi",
|
||||
"command.database.export": "Exportovat databázi",
|
||||
"command.database.search": "Vyhledat",
|
||||
"command.datagrid": "Datová mřížka",
|
||||
"command.datagrid.addJsonDocument": "Přidat JSON dokument",
|
||||
"command.datagrid.addNewColumn": "Přidat nový sloupec",
|
||||
@@ -91,9 +149,69 @@
|
||||
"command.datagrid.viewJsonValue": "Zobrazit buňku jako JSON dokument",
|
||||
"command.datagrid.witchToTable": "Přepnout na tabulku",
|
||||
"command.datgrid.hideColumn": "Skrýt sloupec",
|
||||
"command.designer": "Návrhář",
|
||||
"command.designer.arrange": "Uspořádat",
|
||||
"command.designer.exportDiagram": "Exportovat diagram",
|
||||
"command.designer.remove": "Odebrat",
|
||||
"command.designer.removeSelectedTables": "Odebrat vybrané tabulky",
|
||||
"command.diagram": "Diagram",
|
||||
"command.edit": "Upravit",
|
||||
"command.edit.copy": "Kopírovat",
|
||||
"command.edit.cut": "Vyjmout",
|
||||
"command.edit.paste": "Vložit",
|
||||
"command.edit.redo": "Znovu",
|
||||
"command.edit.selectAll": "Vybrat vše",
|
||||
"command.edit.undo": "Zpět",
|
||||
"command.execute": "Spustit",
|
||||
"command.favoriteJsonEditor": "Oblíbený JSON editor",
|
||||
"command.favoriteJsonEditor.preview": "Náhled",
|
||||
"command.favoriteJsonEditor.save": "Uložit",
|
||||
"command.file": "Soubor",
|
||||
"command.file.exit": "Ukončit",
|
||||
"command.file.import": "Importovat data",
|
||||
"command.file.open": "Otevřít",
|
||||
"command.file.openArchive": "Otevřít DB Model/Archiv",
|
||||
"command.file.quit": "Ukončit",
|
||||
"command.file.resetLayout": "Resetovat data rozložení a nastavení",
|
||||
"command.file.resetLayoutConfirm": "Opravdu resetovat data rozložení? Všechny otevřené karty, nastavení a data rozložení budou ztracena. Připojení a uložené soubory budou zachovány. Po tomto restartujte DbGate pro použití změn.",
|
||||
"command.find": "Najít",
|
||||
"command.folder": "Složka",
|
||||
"command.folder.openData": "Otevřít složku dat",
|
||||
"command.folder.openLogs": "Otevřít logy",
|
||||
"command.internal": "Interní",
|
||||
"command.internal.loadCampaigns": "Načíst seznam kampaní",
|
||||
"command.internal.showCampaigns": "Zobrazit kampaně",
|
||||
"command.jsonl.closePreview": "Zavřít náhled",
|
||||
"command.jsonl.preview": "Náhled",
|
||||
"command.jsonl.previewNewTab": "Náhled v nové kartě",
|
||||
"command.jsonl.save": "Uložit",
|
||||
"command.kill": "Ukončit",
|
||||
"command.markdown.preview": "Náhled",
|
||||
"command.new": "Nový",
|
||||
"command.new.application": "Aplikace",
|
||||
"command.new.archiveFolder": "Složka archivů",
|
||||
"command.new.collection": "Kolekce",
|
||||
"command.new.collectionToolbar": "Nová kolekce/kontejner",
|
||||
"command.new.connection": "Přidat připojení",
|
||||
"command.new.connectionCloud": "Připojení na Cloud",
|
||||
"command.new.connectionFolder": "Složka připojení",
|
||||
"command.new.connectionFolderToolbar": "Přidat složku připojení",
|
||||
"command.new.diagram": "ER Diagram",
|
||||
"command.new.duckdbDatabase": "Nová DuckDB databáze",
|
||||
"command.new.jsonl": "JSON Lines",
|
||||
"command.new.markdown": "Markdown stránka",
|
||||
"command.new.modelCompare": "Porovnat DB",
|
||||
"command.new.modelTransform": "Transformace modelu",
|
||||
"command.new.perspective": "Perspektiva",
|
||||
"command.new.query": "Dotaz",
|
||||
"command.new.queryDesign": "Design dotazu",
|
||||
"command.new.queryToolbar": "Nový dotaz",
|
||||
"command.new.shell": "JavaScript Shell",
|
||||
"command.new.sqliteDatabase": "Nová SQLite databáze",
|
||||
"command.new.table": "Tabulka",
|
||||
"command.new.tableToolbar": "Nová tabulka",
|
||||
"command.openQuery": "Otevřít dotaz",
|
||||
"command.paste": "Vložit",
|
||||
"command.query": "Dotaz",
|
||||
"command.query.AiAssistant": "AI Asistent",
|
||||
"command.query.autocommitOffSwitch": "Automatické potvrzování: VYPNUTO",
|
||||
@@ -109,12 +227,35 @@
|
||||
"command.query.toggleAutoExecute": "Přepnout automatické spuštění",
|
||||
"command.query.toggleFixedConnection": "Přepnout pevné připojení",
|
||||
"command.query.toggleVisibleResultTabs": "Přepnout zobrazení záložek výsledků",
|
||||
"command.queryData": "Údaje z dotazu",
|
||||
"command.queryData.stopLoading": "Zastavit načítání",
|
||||
"command.redo": "Znovu",
|
||||
"command.replace": "Nahradit",
|
||||
"command.save": "Uložit",
|
||||
"command.saveAs": "Uložit jako",
|
||||
"command.saveToDisk": "Uložit na disk",
|
||||
"command.serverSummary": "Souhrn serveru",
|
||||
"command.settings": "Nastavení",
|
||||
"command.settings.change": "Změnit",
|
||||
"command.settings.exportConnections": "Exportovat připojení",
|
||||
"command.settings.importConnections": "Importovat připojení",
|
||||
"command.settings.shortcuts": "Klávesové zkratky",
|
||||
"command.shell.copyNodeScript": "Kopírovat nodejs script",
|
||||
"command.sidebar": "Postranní panel",
|
||||
"command.sidebar.show": "Zobrazit",
|
||||
"command.sidebar.toggleToolbar": "Přepnout postranní panel",
|
||||
"command.sql": "SQL",
|
||||
"command.sql.generator": "SQL Generátor",
|
||||
"command.sqlObject": "SQL Objekt",
|
||||
"command.sqlObject.find": "Najít",
|
||||
"command.tableData": "Data tabulky",
|
||||
"command.tableData.save": "Uložit",
|
||||
"command.tableEditor": "Editor tabulek",
|
||||
"command.tableEditor.reset": "Resetovat změny",
|
||||
"command.tableEditor.save": "Uložit",
|
||||
"command.tabs": "Karty",
|
||||
"command.tabs.addToFavorites": "Přidat aktuální kartu do oblíbených",
|
||||
"command.tabs.changelog": "Seznam změn",
|
||||
"command.tabs.closeAll": "Zavřít všechny karty",
|
||||
"command.tabs.closeTab": "Zavřít kartu",
|
||||
"command.tabs.closeTabsButCurrentDb": "Zavřít karty kromě aktuální DB",
|
||||
@@ -122,6 +263,23 @@
|
||||
"command.tabs.nextTab": "Další karta",
|
||||
"command.tabs.previousTab": "Předchozí karta",
|
||||
"command.tabs.reopenClosedTab": "Znovu otevřít zavřenou kartu",
|
||||
"command.theme": "Téma",
|
||||
"command.theme.change": "Změnit",
|
||||
"command.theme.changeToolbar": "Změnit téma",
|
||||
"command.toggleComment": "Přepnout komentář",
|
||||
"command.toolbar": "Panel nástrojů",
|
||||
"command.toolbar.hide": "Skrýt",
|
||||
"command.toolbar.show": "Zobrazit",
|
||||
"command.undo": "Zpět",
|
||||
"command.view": "Zobrazení",
|
||||
"command.view.reset": "Resetovat zobrazení",
|
||||
"command.view.restart": "Restartovat DbGate (nebo obnovit na webu) pro použití změn",
|
||||
"commandModal.category": "Kategorie",
|
||||
"commandModal.configure": "Konfigurovat příkaz",
|
||||
"commandModal.keyboard": "Klávesnice",
|
||||
"commandModal.keyboardShortcut": "Klávesová zkratka",
|
||||
"commandModal.name": "Název",
|
||||
"commandModal.showKeyCombination": "Zadejte požadovanou kombinaci kláves a stiskněte ENTER",
|
||||
"common.addNew": "Přidat nový",
|
||||
"common.advanced": "Pokročilé",
|
||||
"common.archive": "Archivovat (JSONL)",
|
||||
@@ -140,6 +298,7 @@
|
||||
"common.delete": "Smazat",
|
||||
"common.description": "Popis",
|
||||
"common.erDiagram": "ER Diagram",
|
||||
"common.error": "Chyba",
|
||||
"common.execute": "Spustit",
|
||||
"common.export": "Export",
|
||||
"common.exportDatabase": "Exportovat databázi",
|
||||
@@ -147,19 +306,23 @@
|
||||
"common.general": "Obecné",
|
||||
"common.import": "Import",
|
||||
"common.kill": "Ukončit",
|
||||
"common.loadingData": "Načítání dat",
|
||||
"common.name": "Název",
|
||||
"common.notSelectedOptional": "(nezvoleno - volitelné)",
|
||||
"common.parameters": "Parametry",
|
||||
"common.passwordEncrypted": "Heslo je zašifrované",
|
||||
"common.perspective": "Perspektiva",
|
||||
"common.query": "Dotaz",
|
||||
"common.queryDesigner": "Návrhář dotazů",
|
||||
"common.queryEditor": "Editor SQL dotazů",
|
||||
"common.refresh": "Obnovit",
|
||||
"common.remove": "Odstranit",
|
||||
"common.reset": "Resetovat",
|
||||
"common.save": "Uložit",
|
||||
"common.saveAndNext": "Uložit a další",
|
||||
"common.saveToArchive": "Uložit do archívu",
|
||||
"common.schema": "Schéma",
|
||||
"common.search": "Hledat",
|
||||
"common.searchBy": "Hledat podle:",
|
||||
"common.sqlGenerator": "SQL Generátor",
|
||||
"common.table": "Tabulka",
|
||||
@@ -240,13 +403,25 @@
|
||||
"connection.user": "Uživatel",
|
||||
"connection.viewDetails": "Zobrazit detaily",
|
||||
"connection.windowsDomain": "Doména (zadejte pro použití NTLM autentizace)",
|
||||
"dataForm.loadingRowCount": "Načítání počtu řádků...",
|
||||
"dataForm.noData": "Žádná data",
|
||||
"dataForm.outOfBounds": "Mimo rozsah: {current} / {total}",
|
||||
"dataForm.rowCount": "Řádek: {current} / {total}",
|
||||
"dataGrid.chooseValue": "Vybrat hodnotu z {field}",
|
||||
"dataGrid.codeHighlighting": "Zvýraznění kódu:",
|
||||
"dataGrid.codeHighlighting.none": "Žádné (neformátovaný text)",
|
||||
"dataGrid.columns": "Sloupce",
|
||||
"dataGrid.dependentTables": "Závislé tabulky",
|
||||
"dataGrid.editCellValue": "Upravit hodnotu buňky",
|
||||
"dataGrid.filters": "Filtry",
|
||||
"dataGrid.formatJson": "Formátovat JSON",
|
||||
"dataGrid.formatJson.invalid": "Neplatný JSON",
|
||||
"dataGrid.macros": "Makra",
|
||||
"dataGrid.multiColumnFilter": "Filtr více sloupců",
|
||||
"dataGrid.references": "Reference",
|
||||
"dataGrid.referencesTables": "Reference na tabulky",
|
||||
"dataGrid.searchReferences": "Hledat reference",
|
||||
"dataGrid.value": "Hodnota",
|
||||
"database.backup": "Záloha #",
|
||||
"database.chooseArchiveFolderForDataDeployer": "Vybrat archivní složku pro data deployer",
|
||||
"database.closeConfirm": "Uzavření připojení uzavře {count} otevřených karet, pokračovat?",
|
||||
@@ -270,7 +445,7 @@
|
||||
"database.exportDbModel": "Export DB model",
|
||||
"database.generateScript": "Vygenerovat skript",
|
||||
"database.import": "Import",
|
||||
"database.newCollection": "Nová {collectionLabel}",
|
||||
"database.newCollection": "Nová kolekce/kontejner",
|
||||
"database.newQuery": "Nový dotaz",
|
||||
"database.newTable": "Nová tabulka",
|
||||
"database.perspective": "Perspektiva #",
|
||||
@@ -349,6 +524,48 @@
|
||||
"datagrid.searchMacros": "Hledat makra",
|
||||
"datagrid.setFormat": "Nastavit formát: ",
|
||||
"datagrid.structure": "Struktura",
|
||||
"dbObject.collections": "Kolekce/Kontejnery",
|
||||
"dbObject.confirmCloneCollection": "Opravdu vytvořit kopii kolekce/kontejneru s názvem {name}?",
|
||||
"dbObject.confirmDropCollection": "Opravdu odstranit kolekci {name}?",
|
||||
"dbObject.copyTableName": "Kopírovat název tabulky",
|
||||
"dbObject.createCollection": "Vytvořit kolekci/kontejner",
|
||||
"dbObject.createCollectionBackup": "Vytvořit zálohu kolekce/kontejneru",
|
||||
"dbObject.createTableBackup": "Vytvořit zálohu tabulky",
|
||||
"dbObject.designPerspectiveQuery": "Návrh perspektivního dotazu",
|
||||
"dbObject.designQuery": "Návrh dotazu",
|
||||
"dbObject.diagram": "Diagram #",
|
||||
"dbObject.disable": "Zakázat",
|
||||
"dbObject.dropCollection": "Odstranit kolekci/kontejner",
|
||||
"dbObject.dropEvent": "Odstranit událost",
|
||||
"dbObject.dropProcedure": "Odstranit proceduru",
|
||||
"dbObject.dropTable": "Odstranit tabulku",
|
||||
"dbObject.dropTrigger": "Odstranit trigger",
|
||||
"dbObject.dropView": "Odstranit pohled",
|
||||
"dbObject.enable": "Povolit",
|
||||
"dbObject.functions": "Funkce",
|
||||
"dbObject.matviews": "Materializované pohledy",
|
||||
"dbObject.newCollectionName": "Nový název kolekce/kontejneru",
|
||||
"dbObject.openData": "Otevřít data",
|
||||
"dbObject.openJson": "Otevřít JSON",
|
||||
"dbObject.openRawData": "Otevřít surová data",
|
||||
"dbObject.openStructure": "Otevřít strukturu",
|
||||
"dbObject.procedures": "Procedury",
|
||||
"dbObject.query": "Dotaz #",
|
||||
"dbObject.queryDesigner": "Návrhář dotazů",
|
||||
"dbObject.renameCollection": "Přejmenovat kolekci/kontejner",
|
||||
"dbObject.renameProcedure": "Přejmenovat proceduru",
|
||||
"dbObject.renameTable": "Přejmenovat tabulku",
|
||||
"dbObject.renameView": "Přejmenovat pohled",
|
||||
"dbObject.schedulerEvents": "Události plánovače",
|
||||
"dbObject.showDiagram": "Zobrazit diagram",
|
||||
"dbObject.showQuery": "Zobrazit dotaz",
|
||||
"dbObject.showSql": "Zobrazit SQL",
|
||||
"dbObject.sqlGenerator": "SQL generátor",
|
||||
"dbObject.sqlTemplate": "SQL šablona",
|
||||
"dbObject.tables": "Tabulky",
|
||||
"dbObject.triggers": "Triggery",
|
||||
"dbObject.truncateTable": "Oříznout tabulku",
|
||||
"dbObject.views": "Pohledy",
|
||||
"error.driverNotFound": "Neplatné připojení k databázi, ovladač nebyl nalezen",
|
||||
"error.selectedCloudConnection": "Vybrané připojení je z DbGate cloudu",
|
||||
"error.selectedNotCloudConnection": "Vybrané připojení není z DbGate cloudu",
|
||||
@@ -587,6 +804,7 @@
|
||||
"sqlObject.columnName": "Název sloupce",
|
||||
"sqlObject.databaseEmpty": "Databáze {database} je prázdná nebo struktura není načtena, stiskněte tlačítko Obnovit pro znovunačtení struktury",
|
||||
"sqlObject.loadingStructure": "Načítání struktury databáze",
|
||||
"sqlObject.newCollection": "Nová kolekce/kontejner",
|
||||
"sqlObject.schemaName": "Schéma",
|
||||
"sqlObject.search.placeholder": "Hledat v tabulkách, pohledech, procedurách",
|
||||
"sqlObject.searchBy": "Hledat podle:",
|
||||
@@ -654,6 +872,7 @@
|
||||
"tableEditor.yes": "ANO",
|
||||
"tableStructure.alter": "Upravit tabulku",
|
||||
"tableStructure.create": "Vytvořit tabulku",
|
||||
"widget.collectionsContainers": "Kolekce/kontejnery",
|
||||
"widget.databaseContent": "Obsah databáze",
|
||||
"widget.databases": "Databáze",
|
||||
"widget.keys": "Klíče",
|
||||
|
||||
@@ -44,6 +44,64 @@
|
||||
"columnsConstraintEditor.addNewColumn": "Add new column",
|
||||
"columnsConstraintEditor.chooseColumn": "Choose column",
|
||||
"columnsConstraintEditor.selectColumn": "Select column",
|
||||
"command.about": "About",
|
||||
"command.about.show": "Show",
|
||||
"command.about.toolbar": "About",
|
||||
"command.app.checkForUpdates": "Check for updates",
|
||||
"command.app.disconnect": "Disconnect",
|
||||
"command.app.loggedUser": "Logged user",
|
||||
"command.app.logout": "Logout",
|
||||
"command.application": "Application",
|
||||
"command.application.becomeSponsor": "Become sponsor",
|
||||
"command.application.documentation": "Documentation",
|
||||
"command.application.maximize": "Maximize",
|
||||
"command.application.minimize": "Minimize",
|
||||
"command.application.openIssue": "Report problem or feature request",
|
||||
"command.application.reload": "Reload",
|
||||
"command.application.toggleDevTools": "Toggle Dev Tools",
|
||||
"command.application.toggleFullScreen": "Toggle full screen",
|
||||
"command.application.unsetCurrentDatabase": "Unset current database",
|
||||
"command.application.web": "DbGate web",
|
||||
"command.application.zoomIn": "Zoom in",
|
||||
"command.application.zoomOut": "Zoom out",
|
||||
"command.application.zoomReset": "Reset zoom",
|
||||
"command.archiveFile": "Archive file",
|
||||
"command.archiveFile.save": "Save",
|
||||
"command.archiveFile.saveAs": "Save as",
|
||||
"command.cloud": "Cloud",
|
||||
"command.cloud.logout": "Logout",
|
||||
"command.collectionData": "Collection data",
|
||||
"command.collectionData.collapseAll": "Collapse all",
|
||||
"command.collectionData.expandAll": "Expand all",
|
||||
"command.collectionData.save": "Save",
|
||||
"command.commandPalette": "Command palette",
|
||||
"command.commandPalette.show": "Show",
|
||||
"command.copy": "Copy",
|
||||
"command.dataForm": "Data form",
|
||||
"command.dataForm.addToFilter": "Add to filter",
|
||||
"command.dataForm.copyToClipboard": "Copy to clipboard",
|
||||
"command.dataForm.filterSelected": "Filter this value",
|
||||
"command.dataForm.goToFirst": "First",
|
||||
"command.dataForm.goToLast": "Last",
|
||||
"command.dataForm.goToNext": "Next",
|
||||
"command.dataForm.goToPrevious": "Previous",
|
||||
"command.dataForm.redo": "Redo",
|
||||
"command.dataForm.removeField": "Remove field",
|
||||
"command.dataForm.revertRowChanges": "Revert row changes",
|
||||
"command.dataForm.setNull": "Set NULL",
|
||||
"command.dataForm.undo": "Undo",
|
||||
"command.dataGrid": "Data grid",
|
||||
"command.dataGrid.export": "Export",
|
||||
"command.dataGrid.openQuery": "Open query",
|
||||
"command.dataGrid.reconnect": "Reconnect",
|
||||
"command.database": "Database",
|
||||
"command.database.changeRecent": "Change to recent",
|
||||
"command.database.changeStatus": "Change status",
|
||||
"command.database.chat": "Database chat",
|
||||
"command.database.compare": "Compare databases",
|
||||
"command.database.databaseSearch": "Database search",
|
||||
"command.database.export": "Export database",
|
||||
"command.database.search": "Search",
|
||||
"command.datagrid": "Data grid",
|
||||
"command.datagrid.addJsonDocument": "Add JSON document",
|
||||
"command.datagrid.addNewColumn": "Add new column",
|
||||
@@ -91,9 +149,69 @@
|
||||
"command.datagrid.viewJsonValue": "View cell as JSON document",
|
||||
"command.datagrid.witchToTable": "Switch to table",
|
||||
"command.datgrid.hideColumn": "Hide column",
|
||||
"command.designer": "Designer",
|
||||
"command.designer.arrange": "Arrange",
|
||||
"command.designer.exportDiagram": "Export diagram",
|
||||
"command.designer.remove": "Remove",
|
||||
"command.designer.removeSelectedTables": "Remove selected tables",
|
||||
"command.diagram": "Diagram",
|
||||
"command.edit": "Edit",
|
||||
"command.edit.copy": "Copy",
|
||||
"command.edit.cut": "Cut",
|
||||
"command.edit.paste": "Paste",
|
||||
"command.edit.redo": "Redo",
|
||||
"command.edit.selectAll": "Select All",
|
||||
"command.edit.undo": "Undo",
|
||||
"command.execute": "Execute",
|
||||
"command.favoriteJsonEditor": "Favorite JSON editor",
|
||||
"command.favoriteJsonEditor.preview": "Preview",
|
||||
"command.favoriteJsonEditor.save": "Save",
|
||||
"command.file": "File",
|
||||
"command.file.exit": "Exit",
|
||||
"command.file.import": "Import data",
|
||||
"command.file.open": "Open",
|
||||
"command.file.openArchive": "Open DB Model/Archive",
|
||||
"command.file.quit": "Quit",
|
||||
"command.file.resetLayout": "Reset layout data & settings",
|
||||
"command.file.resetLayoutConfirm": "Really reset layout data? All opened tabs, settings and layout data will be lost. Connections and saved files will be preserved. After this, restart DbGate for applying changes.",
|
||||
"command.find": "Find",
|
||||
"command.folder": "Folder",
|
||||
"command.folder.openData": "Open data folder",
|
||||
"command.folder.openLogs": "Open logs",
|
||||
"command.internal": "Internal",
|
||||
"command.internal.loadCampaigns": "Load campaign list",
|
||||
"command.internal.showCampaigns": "Show campaigns",
|
||||
"command.jsonl.closePreview": "Close preview",
|
||||
"command.jsonl.preview": "Preview",
|
||||
"command.jsonl.previewNewTab": "Preview in new tab",
|
||||
"command.jsonl.save": "Save",
|
||||
"command.kill": "Kill",
|
||||
"command.markdown.preview": "Preview",
|
||||
"command.new": "New",
|
||||
"command.new.application": "Application",
|
||||
"command.new.archiveFolder": "Archive folder",
|
||||
"command.new.collection": "Collection",
|
||||
"command.new.collectionToolbar": "New collection/container",
|
||||
"command.new.connection": "Add connection",
|
||||
"command.new.connectionCloud": "Connection on Cloud",
|
||||
"command.new.connectionFolder": "Connection folder",
|
||||
"command.new.connectionFolderToolbar": "Add connection folder",
|
||||
"command.new.diagram": "ER Diagram",
|
||||
"command.new.duckdbDatabase": "New DuckDB database",
|
||||
"command.new.jsonl": "JSON Lines",
|
||||
"command.new.markdown": "Markdown page",
|
||||
"command.new.modelCompare": "Compare DB",
|
||||
"command.new.modelTransform": "Model transform",
|
||||
"command.new.perspective": "Perspective",
|
||||
"command.new.query": "Query",
|
||||
"command.new.queryDesign": "Query design",
|
||||
"command.new.queryToolbar": "New query",
|
||||
"command.new.shell": "JavaScript Shell",
|
||||
"command.new.sqliteDatabase": "New SQLite database",
|
||||
"command.new.table": "Table",
|
||||
"command.new.tableToolbar": "New table",
|
||||
"command.openQuery": "Open query",
|
||||
"command.paste": "Paste",
|
||||
"command.query": "Query",
|
||||
"command.query.AiAssistant": "AI Assistant",
|
||||
"command.query.autocommitOffSwitch": "Auto commit: OFF",
|
||||
@@ -109,12 +227,35 @@
|
||||
"command.query.toggleAutoExecute": "Toggle auto execute",
|
||||
"command.query.toggleFixedConnection": "Toggle fixed connection",
|
||||
"command.query.toggleVisibleResultTabs": "Toggle visible result tabs",
|
||||
"command.queryData": "Query data",
|
||||
"command.queryData.stopLoading": "Stop loading",
|
||||
"command.redo": "Redo",
|
||||
"command.replace": "Replace",
|
||||
"command.save": "Save",
|
||||
"command.saveAs": "Save As",
|
||||
"command.saveToDisk": "Save to disk",
|
||||
"command.serverSummary": "Server summary",
|
||||
"command.settings": "Settings",
|
||||
"command.settings.change": "Change",
|
||||
"command.settings.exportConnections": "Export connections",
|
||||
"command.settings.importConnections": "Import connections",
|
||||
"command.settings.shortcuts": "Keyboard shortcuts",
|
||||
"command.shell.copyNodeScript": "Copy nodejs script",
|
||||
"command.sidebar": "Sidebar",
|
||||
"command.sidebar.show": "Show",
|
||||
"command.sidebar.toggleToolbar": "Toggle sidebar",
|
||||
"command.sql": "SQL",
|
||||
"command.sql.generator": "SQL Generator",
|
||||
"command.sqlObject": "SQL Object",
|
||||
"command.sqlObject.find": "Find",
|
||||
"command.tableData": "Table data",
|
||||
"command.tableData.save": "Save",
|
||||
"command.tableEditor": "Table editor",
|
||||
"command.tableEditor.reset": "Reset changes",
|
||||
"command.tableEditor.save": "Save",
|
||||
"command.tabs": "Tabs",
|
||||
"command.tabs.addToFavorites": "Add current tab to favorites",
|
||||
"command.tabs.changelog": "Changelog",
|
||||
"command.tabs.closeAll": "Close all tabs",
|
||||
"command.tabs.closeTab": "Close tab",
|
||||
"command.tabs.closeTabsButCurrentDb": "Close tabs but current DB",
|
||||
@@ -122,6 +263,23 @@
|
||||
"command.tabs.nextTab": "Next tab",
|
||||
"command.tabs.previousTab": "Previous tab",
|
||||
"command.tabs.reopenClosedTab": "Reopen closed tab",
|
||||
"command.theme": "Theme",
|
||||
"command.theme.change": "Change",
|
||||
"command.theme.changeToolbar": "Change theme",
|
||||
"command.toggleComment": "Toggle comment",
|
||||
"command.toolbar": "Toolbar",
|
||||
"command.toolbar.hide": "Hide",
|
||||
"command.toolbar.show": "Show",
|
||||
"command.undo": "Undo",
|
||||
"command.view": "View",
|
||||
"command.view.reset": "Reset view",
|
||||
"command.view.restart": "Restart DbGate (or reload on web) for applying changes",
|
||||
"commandModal.category": "Category",
|
||||
"commandModal.configure": "Configure command",
|
||||
"commandModal.keyboard": "Keyboard",
|
||||
"commandModal.keyboardShortcut": "Keyboard shortcut",
|
||||
"commandModal.name": "Name",
|
||||
"commandModal.showKeyCombination": "Show desired key combination and press ENTER",
|
||||
"common.addNew": "Add new",
|
||||
"common.advanced": "Advanced",
|
||||
"common.archive": "Archive (JSONL)",
|
||||
@@ -140,6 +298,7 @@
|
||||
"common.delete": "Delete",
|
||||
"common.description": "Description",
|
||||
"common.erDiagram": "ER Diagram",
|
||||
"common.error": "Error",
|
||||
"common.execute": "Execute",
|
||||
"common.export": "Export",
|
||||
"common.exportDatabase": "Export database",
|
||||
@@ -147,19 +306,23 @@
|
||||
"common.general": "General",
|
||||
"common.import": "Import",
|
||||
"common.kill": "Kill",
|
||||
"common.loadingData": "Loading data",
|
||||
"common.name": "Name",
|
||||
"common.notSelectedOptional": "(not selected - optional)",
|
||||
"common.parameters": "Parameters",
|
||||
"common.passwordEncrypted": "Password is encrypted",
|
||||
"common.perspective": "Perspective",
|
||||
"common.query": "Query",
|
||||
"common.queryDesigner": "Query Designer",
|
||||
"common.queryEditor": "SQL query editor",
|
||||
"common.refresh": "Refresh",
|
||||
"common.remove": "Remove",
|
||||
"common.reset": "Reset",
|
||||
"common.save": "Save",
|
||||
"common.saveAndNext": "Save and next",
|
||||
"common.saveToArchive": "Save to archive",
|
||||
"common.schema": "Schema",
|
||||
"common.search": "Search",
|
||||
"common.searchBy": "Search by:",
|
||||
"common.sqlGenerator": "SQL Generator",
|
||||
"common.table": "Table",
|
||||
@@ -240,13 +403,25 @@
|
||||
"connection.user": "User",
|
||||
"connection.viewDetails": "View details",
|
||||
"connection.windowsDomain": "Domain (specify to use NTLM authentication)",
|
||||
"dataForm.loadingRowCount": "Loading row count...",
|
||||
"dataForm.noData": "No data",
|
||||
"dataForm.outOfBounds": "Out of bounds: {current} / {total}",
|
||||
"dataForm.rowCount": "Row: {current} / {total}",
|
||||
"dataGrid.chooseValue": "Choose value from {field}",
|
||||
"dataGrid.codeHighlighting": "Code highlighting:",
|
||||
"dataGrid.codeHighlighting.none": "None (raw text)",
|
||||
"dataGrid.columns": "Columns",
|
||||
"dataGrid.dependentTables": "Dependent tables",
|
||||
"dataGrid.editCellValue": "Edit cell value",
|
||||
"dataGrid.filters": "Filters",
|
||||
"dataGrid.formatJson": "Format JSON",
|
||||
"dataGrid.formatJson.invalid": "Not valid JSON",
|
||||
"dataGrid.macros": "Macros",
|
||||
"dataGrid.multiColumnFilter": "Multi column filter",
|
||||
"dataGrid.references": "References",
|
||||
"dataGrid.referencesTables": "References tables",
|
||||
"dataGrid.searchReferences": "Search references",
|
||||
"dataGrid.value": "Value",
|
||||
"database.backup": "Backup #",
|
||||
"database.chooseArchiveFolderForDataDeployer": "Choose archive folder for data deployer",
|
||||
"database.closeConfirm": "Closing connection will close {count} opened tabs, continue?",
|
||||
@@ -270,7 +445,7 @@
|
||||
"database.exportDbModel": "Export DB model",
|
||||
"database.generateScript": "Generate script",
|
||||
"database.import": "Import",
|
||||
"database.newCollection": "New {collectionLabel}",
|
||||
"database.newCollection": "New collection/container",
|
||||
"database.newQuery": "New query",
|
||||
"database.newTable": "New table",
|
||||
"database.perspective": "Perspective #",
|
||||
@@ -349,6 +524,48 @@
|
||||
"datagrid.searchMacros": "Search macros",
|
||||
"datagrid.setFormat": "Set format: ",
|
||||
"datagrid.structure": "Structure",
|
||||
"dbObject.collections": "Collections/Containers",
|
||||
"dbObject.confirmCloneCollection": "Really create collection/container copy named {name}?",
|
||||
"dbObject.confirmDropCollection": "Really drop collection {name}?",
|
||||
"dbObject.copyTableName": "Copy table name",
|
||||
"dbObject.createCollection": "Create collection/container",
|
||||
"dbObject.createCollectionBackup": "Create collection/container backup",
|
||||
"dbObject.createTableBackup": "Create table backup",
|
||||
"dbObject.designPerspectiveQuery": "Design perspective query",
|
||||
"dbObject.designQuery": "Design query",
|
||||
"dbObject.diagram": "Diagram #",
|
||||
"dbObject.disable": "Disable",
|
||||
"dbObject.dropCollection": "Drop collection/container",
|
||||
"dbObject.dropEvent": "Drop event",
|
||||
"dbObject.dropProcedure": "Drop procedure",
|
||||
"dbObject.dropTable": "Drop table",
|
||||
"dbObject.dropTrigger": "Drop trigger",
|
||||
"dbObject.dropView": "Drop view",
|
||||
"dbObject.enable": "Enable",
|
||||
"dbObject.functions": "Functions",
|
||||
"dbObject.matviews": "Materialized Views",
|
||||
"dbObject.newCollectionName": "New collection/container name",
|
||||
"dbObject.openData": "Open data",
|
||||
"dbObject.openJson": "Open JSON",
|
||||
"dbObject.openRawData": "Open raw data",
|
||||
"dbObject.openStructure": "Open structure",
|
||||
"dbObject.procedures": "Procedures",
|
||||
"dbObject.query": "Query #",
|
||||
"dbObject.queryDesigner": "Query designer",
|
||||
"dbObject.renameCollection": "Rename collection/container",
|
||||
"dbObject.renameProcedure": "Rename procedure",
|
||||
"dbObject.renameTable": "Rename table",
|
||||
"dbObject.renameView": "Rename view",
|
||||
"dbObject.schedulerEvents": "Scheduler Events",
|
||||
"dbObject.showDiagram": "Show diagram",
|
||||
"dbObject.showQuery": "Show query",
|
||||
"dbObject.showSql": "Show SQL",
|
||||
"dbObject.sqlGenerator": "SQL generator",
|
||||
"dbObject.sqlTemplate": "SQL template",
|
||||
"dbObject.tables": "Tables",
|
||||
"dbObject.triggers": "Triggers",
|
||||
"dbObject.truncateTable": "Truncate table",
|
||||
"dbObject.views": "Views",
|
||||
"error.driverNotFound": "Invalid database connection, driver not found",
|
||||
"error.selectedCloudConnection": "Selected connection is from DbGate cloud",
|
||||
"error.selectedNotCloudConnection": "Selected connection is not from DbGate cloud",
|
||||
@@ -587,6 +804,7 @@
|
||||
"sqlObject.columnName": "Column name",
|
||||
"sqlObject.databaseEmpty": "Database {database} is empty or structure is not loaded, press Refresh button to reload structure",
|
||||
"sqlObject.loadingStructure": "Loading database structure",
|
||||
"sqlObject.newCollection": "New collection/container",
|
||||
"sqlObject.schemaName": "Schema",
|
||||
"sqlObject.search.placeholder": "Search in tables, views, procedures",
|
||||
"sqlObject.searchBy": "Search by:",
|
||||
@@ -654,6 +872,7 @@
|
||||
"tableEditor.yes": "YES",
|
||||
"tableStructure.alter": "Alter table",
|
||||
"tableStructure.create": "Create table",
|
||||
"widget.collectionsContainers": "Collections/containers",
|
||||
"widget.databaseContent": "Database content",
|
||||
"widget.databases": "Databases",
|
||||
"widget.keys": "Keys",
|
||||
|
||||
@@ -44,6 +44,64 @@
|
||||
"columnsConstraintEditor.addNewColumn": "Pridať nový stĺpec",
|
||||
"columnsConstraintEditor.chooseColumn": "Vybrať stĺpec",
|
||||
"columnsConstraintEditor.selectColumn": "Vybrať stĺpec",
|
||||
"command.about": "O aplikácii",
|
||||
"command.about.show": "Zobraziť",
|
||||
"command.about.toolbar": "O aplikácii",
|
||||
"command.app.checkForUpdates": "Skontrolovať dostupnosť aktualizácií",
|
||||
"command.app.disconnect": "Odpojiť",
|
||||
"command.app.loggedUser": "Prihlásený používateľ",
|
||||
"command.app.logout": "Odhlásiť sa",
|
||||
"command.application": "Aplikácia",
|
||||
"command.application.becomeSponsor": "Stať sa sponzorom",
|
||||
"command.application.documentation": "Dokumentácia",
|
||||
"command.application.maximize": "Maximalizovať",
|
||||
"command.application.minimize": "Minimalizovať",
|
||||
"command.application.openIssue": "Nahlásiť problém alebo požiadať o funkciu",
|
||||
"command.application.reload": "Znova načítať",
|
||||
"command.application.toggleDevTools": "Prepnúť vývojárske nástroje",
|
||||
"command.application.toggleFullScreen": "Prepnúť celú obrazovku",
|
||||
"command.application.unsetCurrentDatabase": "Zrušiť aktuálnu databázu",
|
||||
"command.application.web": "DbGate web",
|
||||
"command.application.zoomIn": "Priblížiť",
|
||||
"command.application.zoomOut": "Oddialiť",
|
||||
"command.application.zoomReset": "Obnoviť priblíženie",
|
||||
"command.archiveFile": "Archivný súbor",
|
||||
"command.archiveFile.save": "Uložiť",
|
||||
"command.archiveFile.saveAs": "Uložiť ako",
|
||||
"command.cloud": "Cloud",
|
||||
"command.cloud.logout": "Odhlásiť sa",
|
||||
"command.collectionData": "Údaje z kolekcie",
|
||||
"command.collectionData.collapseAll": "Zbaliť všetko",
|
||||
"command.collectionData.expandAll": "Rozbaliť všetko",
|
||||
"command.collectionData.save": "Uložiť",
|
||||
"command.commandPalette": "Paleta príkazov",
|
||||
"command.commandPalette.show": "Zobraziť",
|
||||
"command.copy": "Kopírovať",
|
||||
"command.dataForm": "Formulár dát",
|
||||
"command.dataForm.addToFilter": "Pridať do filtru",
|
||||
"command.dataForm.copyToClipboard": "Kopírovať do schránky",
|
||||
"command.dataForm.filterSelected": "Filtrovať túto hodnotu",
|
||||
"command.dataForm.goToFirst": "Prvý",
|
||||
"command.dataForm.goToLast": "Posledný",
|
||||
"command.dataForm.goToNext": "Ďalší",
|
||||
"command.dataForm.goToPrevious": "Predchádzajúci",
|
||||
"command.dataForm.redo": "Znova",
|
||||
"command.dataForm.removeField": "Odstrániť pole",
|
||||
"command.dataForm.revertRowChanges": "Vrátiť zmeny riadka",
|
||||
"command.dataForm.setNull": "Nastaviť NULL",
|
||||
"command.dataForm.undo": "Vrátiť",
|
||||
"command.dataGrid": "Dátová mriežka",
|
||||
"command.dataGrid.export": "Export",
|
||||
"command.dataGrid.openQuery": "Otvoriť dotaz",
|
||||
"command.dataGrid.reconnect": "Znovu pripojiť",
|
||||
"command.database": "Databáza",
|
||||
"command.database.changeRecent": "Zmeniť nedávne",
|
||||
"command.database.changeStatus": "Zmeniť stav",
|
||||
"command.database.chat": "Chat s databázou",
|
||||
"command.database.compare": "Porovnať databázy",
|
||||
"command.database.databaseSearch": "Hľadanie v databáze",
|
||||
"command.database.export": "Exportovať databázu",
|
||||
"command.database.search": "Hľadať",
|
||||
"command.datagrid": "Dátová mriežka",
|
||||
"command.datagrid.addJsonDocument": "Pridať JSON dokument",
|
||||
"command.datagrid.addNewColumn": "Pridať nový stĺpec",
|
||||
@@ -91,9 +149,69 @@
|
||||
"command.datagrid.viewJsonValue": "Zobraziť bunku ako JSON dokument",
|
||||
"command.datagrid.witchToTable": "Prepnúť na tabuľku",
|
||||
"command.datgrid.hideColumn": "Skryť stĺpec",
|
||||
"command.designer": "Návrhár",
|
||||
"command.designer.arrange": "Usporiadať",
|
||||
"command.designer.exportDiagram": "Exportovať diagram",
|
||||
"command.designer.remove": "Odstrániť",
|
||||
"command.designer.removeSelectedTables": "Odstrániť vybrané tabuľky",
|
||||
"command.diagram": "Diagram",
|
||||
"command.edit": "Upraviť",
|
||||
"command.edit.copy": "Kopírovať",
|
||||
"command.edit.cut": "Vystrihnúť",
|
||||
"command.edit.paste": "Prilepiť",
|
||||
"command.edit.redo": "Opakovať",
|
||||
"command.edit.selectAll": "Vybrať všetky",
|
||||
"command.edit.undo": "Krok späť",
|
||||
"command.execute": "Vykonať",
|
||||
"command.favoriteJsonEditor": "Obľúbený JSON editor",
|
||||
"command.favoriteJsonEditor.preview": "Náhľad",
|
||||
"command.favoriteJsonEditor.save": "Uložiť",
|
||||
"command.file": "Súbor",
|
||||
"command.file.exit": "Ukončiť",
|
||||
"command.file.import": "Importovať dáta",
|
||||
"command.file.open": "Otvoriť",
|
||||
"command.file.openArchive": "Otvoriť DB Model/Archív",
|
||||
"command.file.quit": "Ukončiť",
|
||||
"command.file.resetLayout": "Resetovať rozloženie a nastavenia",
|
||||
"command.file.resetLayoutConfirm": "Naozaj chcete resetovať údaje rozloženia? Všetky otvorené karty, nastavenia a údaje rozloženia budú stratené. Pripojenia a uložené súbory zostanú zachované. Po tejto akcii reštartujte DbGate, aby sa zmeny prejavili.",
|
||||
"command.find": "Hľadať",
|
||||
"command.folder": "Priečinok",
|
||||
"command.folder.openData": "Otvoriť priečinok dát",
|
||||
"command.folder.openLogs": "Otvoriť logy",
|
||||
"command.internal": "Interné",
|
||||
"command.internal.loadCampaigns": "Načítať zoznam kampaní",
|
||||
"command.internal.showCampaigns": "Zobraziť kampane",
|
||||
"command.jsonl.closePreview": "Zavrieť náhľad",
|
||||
"command.jsonl.preview": "Náhľad",
|
||||
"command.jsonl.previewNewTab": "Náhľad na novej karte",
|
||||
"command.jsonl.save": "Uložiť",
|
||||
"command.kill": "Ukončiť",
|
||||
"command.markdown.preview": "Náhľad",
|
||||
"command.new": "Nový",
|
||||
"command.new.application": "Aplikácia",
|
||||
"command.new.archiveFolder": "Archívny priečinok",
|
||||
"command.new.collection": "Kolekcia",
|
||||
"command.new.collectionToolbar": "Nová kolekcia/kontajner",
|
||||
"command.new.connection": "Pridať pripojenie",
|
||||
"command.new.connectionCloud": "Pripojenie na Cloude",
|
||||
"command.new.connectionFolder": "Priečinok pripojení",
|
||||
"command.new.connectionFolderToolbar": "Pridať priečinok pripojení",
|
||||
"command.new.diagram": "ER Diagram",
|
||||
"command.new.duckdbDatabase": "Nová DuckDB databáza",
|
||||
"command.new.jsonl": "JSON Lines",
|
||||
"command.new.markdown": "Markdown stránka",
|
||||
"command.new.modelCompare": "Porovnať DB",
|
||||
"command.new.modelTransform": "Transformácia modelu",
|
||||
"command.new.perspective": "Perspektíva",
|
||||
"command.new.query": "Dotaz",
|
||||
"command.new.queryDesign": "Návrh dotazu",
|
||||
"command.new.queryToolbar": "Nový dotaz",
|
||||
"command.new.shell": "JavaScript Shell",
|
||||
"command.new.sqliteDatabase": "Nová SQLite databáza",
|
||||
"command.new.table": "Tabuľka",
|
||||
"command.new.tableToolbar": "Nová tabuľka",
|
||||
"command.openQuery": "Otvoriť dotaz",
|
||||
"command.paste": "Prilepiť",
|
||||
"command.query": "Dotaz",
|
||||
"command.query.AiAssistant": "AI Asistent",
|
||||
"command.query.autocommitOffSwitch": "Automatické potvrdenie: VYPNUTÉ",
|
||||
@@ -109,12 +227,35 @@
|
||||
"command.query.toggleAutoExecute": "Prepnúť automatické vykonávanie",
|
||||
"command.query.toggleFixedConnection": "Prepnúť pevné pripojenie",
|
||||
"command.query.toggleVisibleResultTabs": "Prepnúť viditeľné výsledkové karty",
|
||||
"command.queryData": "Údaje z dotazu",
|
||||
"command.queryData.stopLoading": "Zastaviť načítavanie",
|
||||
"command.redo": "Opakovať",
|
||||
"command.replace": "Nahradiť",
|
||||
"command.save": "Uložiť",
|
||||
"command.saveAs": "Uložiť ako",
|
||||
"command.saveToDisk": "Uložiť na disk",
|
||||
"command.serverSummary": "Prehľad servera",
|
||||
"command.settings": "Nastavenia",
|
||||
"command.settings.change": "Zmena",
|
||||
"command.settings.exportConnections": "Exportovať pripojenia",
|
||||
"command.settings.importConnections": "Importovať pripojenia",
|
||||
"command.settings.shortcuts": "Klávesové skratky",
|
||||
"command.shell.copyNodeScript": "Kopírovať nodejs skript",
|
||||
"command.sidebar": "Bočný panel",
|
||||
"command.sidebar.show": "Zobraziť",
|
||||
"command.sidebar.toggleToolbar": "Prepnúť bočný panel",
|
||||
"command.sql": "SQL",
|
||||
"command.sql.generator": "SQL Generátor",
|
||||
"command.sqlObject": "SQL Objekt",
|
||||
"command.sqlObject.find": "Nájsť",
|
||||
"command.tableData": "Dáta tabuľky",
|
||||
"command.tableData.save": "Uložiť",
|
||||
"command.tableEditor": "Editor tabuliek",
|
||||
"command.tableEditor.reset": "Resetovať zmeny",
|
||||
"command.tableEditor.save": "Uložiť",
|
||||
"command.tabs": "Karty",
|
||||
"command.tabs.addToFavorites": "Pridať aktuálnu kartu do obľúbených",
|
||||
"command.tabs.changelog": "Zoznam zmien",
|
||||
"command.tabs.closeAll": "Zavrieť všetky karty",
|
||||
"command.tabs.closeTab": "Zavrieť kartu",
|
||||
"command.tabs.closeTabsButCurrentDb": "Zavrieť karty okrem aktuálnej DB",
|
||||
@@ -122,6 +263,23 @@
|
||||
"command.tabs.nextTab": "Ďalšia karta",
|
||||
"command.tabs.previousTab": "Predchádzajúca karta",
|
||||
"command.tabs.reopenClosedTab": "Znovu otvoriť zatvorenú kartu",
|
||||
"command.theme": "Téma",
|
||||
"command.theme.change": "Zmeniť",
|
||||
"command.theme.changeToolbar": "Zmeniť tému",
|
||||
"command.toggleComment": "Prepnúť komentár",
|
||||
"command.toolbar": "Panel nástrojov",
|
||||
"command.toolbar.hide": "Skryť",
|
||||
"command.toolbar.show": "Zobraziť",
|
||||
"command.undo": "Krok späť",
|
||||
"command.view": "Zobraziť",
|
||||
"command.view.reset": "Resetovať zobrazenie",
|
||||
"command.view.restart": "Reštartovať DbGate (alebo znovu načítať na webe) pre aplikovanie zmien",
|
||||
"commandModal.category": "Kategória",
|
||||
"commandModal.configure": "Konfigurovať príkaz",
|
||||
"commandModal.keyboard": "Klávesnica",
|
||||
"commandModal.keyboardShortcut": "Klávesová skratka",
|
||||
"commandModal.name": "Názov",
|
||||
"commandModal.showKeyCombination": "Zobraziť požadovanú klávesovú kombináciu a stlačiť ENTER",
|
||||
"common.addNew": "Pridať nový",
|
||||
"common.advanced": "Pokročilé",
|
||||
"common.archive": "Archivovať (JSONL)",
|
||||
@@ -140,6 +298,7 @@
|
||||
"common.delete": "Odstrániť",
|
||||
"common.description": "Popis",
|
||||
"common.erDiagram": "ER Diagram",
|
||||
"common.error": "Chyba",
|
||||
"common.execute": "Spustiť",
|
||||
"common.export": "Exportovať",
|
||||
"common.exportDatabase": "Exportovať databázu",
|
||||
@@ -147,19 +306,23 @@
|
||||
"common.general": "Všeobecné",
|
||||
"common.import": "Importovať",
|
||||
"common.kill": "Ukončiť",
|
||||
"common.loadingData": "Načítavanie dát",
|
||||
"common.name": "Názov",
|
||||
"common.notSelectedOptional": "(nezvolené - voliteľné)",
|
||||
"common.parameters": "Parametre",
|
||||
"common.passwordEncrypted": "Heslo je zašifrované",
|
||||
"common.perspective": "Perspektíva",
|
||||
"common.query": "Dotaz",
|
||||
"common.queryDesigner": "Návrhár dotazov",
|
||||
"common.queryEditor": "Editor SQL dotazov",
|
||||
"common.refresh": "Obnoviť",
|
||||
"common.remove": "Odstrániť",
|
||||
"common.reset": "Resetovať",
|
||||
"common.save": "Uložiť",
|
||||
"common.saveAndNext": "Uložiť a pokračovať",
|
||||
"common.saveToArchive": "Uložiť do archívu",
|
||||
"common.schema": "Schéma",
|
||||
"common.search": "Hledat",
|
||||
"common.searchBy": "Hľadať podľa:",
|
||||
"common.sqlGenerator": "SQL Generátor",
|
||||
"common.table": "Tabuľka",
|
||||
@@ -240,13 +403,25 @@
|
||||
"connection.user": "Používateľ",
|
||||
"connection.viewDetails": "Zobraziť detaily",
|
||||
"connection.windowsDomain": "Doména (zadajte pre použitie NTLM autentizácie)",
|
||||
"dataForm.loadingRowCount": "Načítavanie počtu riadkov...",
|
||||
"dataForm.noData": "Žiadne dáta",
|
||||
"dataForm.outOfBounds": "Mimo rozsahu: {current} / {total}",
|
||||
"dataForm.rowCount": "Riadok: {current} / {total}",
|
||||
"dataGrid.chooseValue": "Vybrať hodnotu z {field}",
|
||||
"dataGrid.codeHighlighting": "Zvýraznenie kódu:",
|
||||
"dataGrid.codeHighlighting.none": "Žiadne (neformátovaný text)",
|
||||
"dataGrid.columns": "Stĺpce",
|
||||
"dataGrid.dependentTables": "Závislé tabuľky",
|
||||
"dataGrid.editCellValue": "Upraviť hodnotu bunky",
|
||||
"dataGrid.filters": "Filtre",
|
||||
"dataGrid.formatJson": "Formátovať JSON",
|
||||
"dataGrid.formatJson.invalid": "Neplatný JSON",
|
||||
"dataGrid.macros": "Makrá",
|
||||
"dataGrid.multiColumnFilter": "Filter viacerých stĺpcov",
|
||||
"dataGrid.references": "Referencie",
|
||||
"dataGrid.referencesTables": "Referencie na tabuľky",
|
||||
"dataGrid.searchReferences": "Vyhľadať referencie",
|
||||
"dataGrid.value": "Hodnota",
|
||||
"database.backup": "Záloha #",
|
||||
"database.chooseArchiveFolderForDataDeployer": "Vybrať archívnu zložku pre data deployer",
|
||||
"database.closeConfirm": "Zatvorenie pripojenia zatvorí {count} otvorených kariet, pokračovať?",
|
||||
@@ -270,7 +445,7 @@
|
||||
"database.exportDbModel": "Exportovať DB model",
|
||||
"database.generateScript": "Generovať skript",
|
||||
"database.import": "Importovať",
|
||||
"database.newCollection": "Nová {collectionLabel}",
|
||||
"database.newCollection": "Nová kolekcia/kontajner",
|
||||
"database.newQuery": "Nový dotaz",
|
||||
"database.newTable": "Nová tabuľka",
|
||||
"database.perspective": "Perspektíva #",
|
||||
@@ -349,6 +524,48 @@
|
||||
"datagrid.searchMacros": "Vyhľadať makrá",
|
||||
"datagrid.setFormat": "Nastaviť formát: ",
|
||||
"datagrid.structure": "Štruktúra",
|
||||
"dbObject.collections": "Kolekcie/Kontajnery",
|
||||
"dbObject.confirmCloneCollection": "Naozaj vytvoriť kópiu kolekcie/kontajnera s názvom {name}?",
|
||||
"dbObject.confirmDropCollection": "Naozaj odstrániť kolekciu/kontajner {name}?",
|
||||
"dbObject.copyTableName": "Kopírovať názov tabuľky",
|
||||
"dbObject.createCollection": "Vytvoriť kolekciu/kontajner",
|
||||
"dbObject.createCollectionBackup": "Vytvoriť zálohu kolekcie/kontajnera",
|
||||
"dbObject.createTableBackup": "Vytvoriť zálohu tabuľky",
|
||||
"dbObject.designPerspectiveQuery": "Návrh perspektívneho dotazu",
|
||||
"dbObject.designQuery": "Návrh dotazu",
|
||||
"dbObject.diagram": "Diagram #",
|
||||
"dbObject.disable": "Zakázať",
|
||||
"dbObject.dropCollection": "Odstrániť kolekciu/kontajner",
|
||||
"dbObject.dropEvent": "Odstrániť udalosť",
|
||||
"dbObject.dropProcedure": "Odstrániť procedúru",
|
||||
"dbObject.dropTable": "Odstrániť tabuľku",
|
||||
"dbObject.dropTrigger": "Odstrániť trigger",
|
||||
"dbObject.dropView": "Odstrániť pohľad",
|
||||
"dbObject.enable": "Povoliť",
|
||||
"dbObject.functions": "Funkcie",
|
||||
"dbObject.matviews": "Materializované pohľady",
|
||||
"dbObject.newCollectionName": "Nový názov kolekcie/kontajnera",
|
||||
"dbObject.openData": "Otvoriť dáta",
|
||||
"dbObject.openJson": "Otvoriť JSON",
|
||||
"dbObject.openRawData": "Otvoriť surové dáta",
|
||||
"dbObject.openStructure": "Otvoriť štruktúru",
|
||||
"dbObject.procedures": "Procedúry",
|
||||
"dbObject.query": "Dotaz #",
|
||||
"dbObject.queryDesigner": "Návrhár dotazu",
|
||||
"dbObject.renameCollection": "Premenovať kolekciu/kontajner",
|
||||
"dbObject.renameProcedure": "Premenovať procedúru",
|
||||
"dbObject.renameTable": "Premenovať tabuľku",
|
||||
"dbObject.renameView": "Premenovať pohľad",
|
||||
"dbObject.schedulerEvents": "Plánované Udalosti",
|
||||
"dbObject.showDiagram": "Zobraziť diagram",
|
||||
"dbObject.showQuery": "Zobraziť dotaz",
|
||||
"dbObject.showSql": "Zobraziť SQL",
|
||||
"dbObject.sqlGenerator": "SQL generátor",
|
||||
"dbObject.sqlTemplate": "SQL šablóna",
|
||||
"dbObject.tables": "Tabuľky",
|
||||
"dbObject.triggers": "Triggery",
|
||||
"dbObject.truncateTable": "Orezanie tabuľky",
|
||||
"dbObject.views": "Pohľady",
|
||||
"error.driverNotFound": "Neplatné pripojenie k databáze, ovládač nenájdený",
|
||||
"error.selectedCloudConnection": "Vybrané pripojenie je z DbGate cloudu",
|
||||
"error.selectedNotCloudConnection": "Vybrané pripojenie nie je z DbGate cloudu",
|
||||
@@ -587,6 +804,7 @@
|
||||
"sqlObject.columnName": "Názov stĺpca",
|
||||
"sqlObject.databaseEmpty": "Databáza {database} je prázdna alebo štruktúra nie je načítaná, stlačte tlačidlo Obnoviť pre opätovné načítanie štruktúry",
|
||||
"sqlObject.loadingStructure": "Načítavanie štruktúry databázy",
|
||||
"sqlObject.newCollection": "Nová kolekcia/kontajner",
|
||||
"sqlObject.schemaName": "Schéma",
|
||||
"sqlObject.search.placeholder": "Hľadať v tabuľkách, pohľadoch, procedúrach",
|
||||
"sqlObject.searchBy": "Hľadať podľa:",
|
||||
@@ -654,6 +872,7 @@
|
||||
"tableEditor.yes": "ÁNO",
|
||||
"tableStructure.alter": "Úprava tabuľky",
|
||||
"tableStructure.create": "Vytvoriť tabuľku",
|
||||
"widget.collectionsContainers": "Kolekcie/kontajnery",
|
||||
"widget.databaseContent": "Obsah databázy",
|
||||
"widget.databases": "Databázy",
|
||||
"widget.keys": "Kľúče",
|
||||
|
||||
Reference in New Issue
Block a user